1. AlexNet 이미지넷 대회 스케일에서는 간단한 구조(layer가 별로 없음) 연산량은 간단한 편인데 성능은 최하위 그런데 model의 memory size가 큰 편임 2. VGGNet 3*3 Convolutional layer로만 구성했다 그런데 연산이 매우 느리면서도 model의 memory size가 매우 크다는 것이 특징 근데 많이쓰는데..? 3. GoogleNet inception module과 auxiliary classifier를 사용함 그 뒤로 다양한 변형(exception 등)이 나왔고 그 중 inception v4는 ResNet 152보다 성능도 좋고 memory size도 적으며 연산도 빨라 4. ResNet layer는 152개로 가장 많은데도 VGG보다 연산은 빠르면서 mem..
1. motivation 자동차나 물건같은 것은 따로 따로 움직이는 형태가 없는데 사람이나 동물들은 팔, 다리가 상대적으로 위치를 변경하면서 움직일 수 있다 해당 이미지의 회전된 이미지, 반전된 이미지같은 변형된 이미지도 여전히 원본과 label은 같다 이미지에서 large object나 small object 등 여러가지가 있는데 고정된 크기의 convolution filter을 사용하는 것이 효과적인가? 그래서 filter의 크기를 유동적으로 변경시키는 deformable convolution 방법이 등장하였다 2. idea offset field를 학습시키기 위한 convolution layer와 feature map을 뽑는 convolution layer 2개가 존재한다 offset field를 ..
0. computer vision은 왜 발전했을까 YOLO는 실시간으로 object detection을 가능하게 만들었다 길, 사람, 자동차 등을 segmentation하여 더욱 수준 높은 self driving을 구현하려고 노력하고 있다 이것은 어떻게 가능했을까? ImageNet이라는 대형 dataset이 등장한 것이 엄청난 영향력을 행사했다고 말할 수 있다 고도화된 알고리즘이나 모델이 아닌 약 1400만개의 image와 20000개의 category를 보유한 단순한 대용량의 대형 dataset 실생활에서 발견할 수 있는 다양한 variance들을 다 충족할 수 있는 엄청 큰 대형 dataset 그래서 획기적인 알고리즘 개발이 물론 중요하지만 ImageNet에 검증을 못하면 그런 알고리즘도 실생활에 쓸..
1. convolution은 미분해도 여전히 convolution convolution을 미분하면 도함수와 convolution이 된다. 앞에 있는 f가 커널이라는 거 알지? 2. convolution의 직관적인 계산 그림 처음에는 w1,w2,w3가 x1,x2,x3에 만나서 o1 다음으로 한칸 옆으로 가서 x2,x3,x4를 만나서 o2 다음으로 한칸 옆으로 가서 x3,x4,x5를 만나서 o3 backpropagation을 위해 미분을 해보면 여전히 kernel과의 convolution이 된다는 것을 위에서 보였으므로 왜 x로 전달되느냐 oi의 미분이 xi이기 때문임 $\delta$는 loss를 o로 편미분한 값이다. loss를 w로 미분한것이 $\delta$와 x의 곱으로 나타남 convolution을 ..
1. CNN 등장 CNN(Convolutional neural network)은 이미지나 영상을 다루는 컴퓨터 비전에서 가장 대표적으로 사용되는 인공신경망 1980년대 얀 르쿤(Yann LeCun)이 우편번호와 수표의 숫자 필기체를 인식하는 LeNet이라는 모델을 개발하면서 처음 소개 알고리즘이 성공적으로 동작했으나, 10개의 숫자도 학습하는데 3일이나 걸렸음 30년이 지난 후, 과적합과 학습 시간 문제를 해결하면서 지금은 이미지 분류는 기본이고 얼굴 인식, 자율주행같은 어려운 과제인 객체 인식에서도 효과적으로 CNN이 사용 2. 정형데이터와 이미지데이터의 차이? 정형데이터는 데이터베이스 시스템의 테이블과 같이 고정된 칼럼(column)과 개체(observation)의 관계로 구성 이미지는 사람의 눈으로..
1. idea MobileNet v1의 핵심 아이디어는 depthwise separable convolution 일반적인 convolution 연산을 2단계로 분리하여 depthwise convolution을 수행하고 pointwise convolution을 수행 계산량이 일반적인 convolution에 비해 줄어드는데 정확도는 오히려 좋아지거나?? 아주 조금 손해를 보는 정도 2. 일반적인 convolution M channel 커널이 M channel input에 한번에 convolution을 수행함 원래 depthwise separable이 연산량이 높을수도 있다고 생각했는데 지금부터 항상 감소한다는 것을 증명할 것이다. kernel size를 $D_{k} \times D_{k}^{'}$, inpu..