[DL Basic] CNN

Convolution Neural Networks

Convolution

두 개의 함수를 섞어주는 operator이다. 합성곱.

5*5*3 이미지 필터로 32*32*3 이미지(텐서)를 컨볼루션하면 28*28*1 피쳐가 나온다. 세 번째 숫자는 뎁스를 가리킨다. feature맵의 channel 숫자는 convolution filter channel에 따른다. 아래 그림에서 4 5*5*3의 4는 output channel 수이다.
input channel과 output channel의 수를 알면 filter의 수를 알 수 있는데, output channel이 n개라면 filter의 개수도 n개이다.

뉴럴네트워크 성능을 향상시키기 위해 레이어에 투입되는 파라미터를 줄이려는 노력이 있다.

  • Stride : 얼마나 건너뛰면서 도장 찍을지 1이면 한 칸씩 옮겨다니는 것
  • Padding : 도장 찍기를 위해 가장자리 부분에 어떤 값을 추가하는 것
  • 파라미터 수 계산: kernel size * input channel 개수 * output 채널 개수

-Convolution layer : feature를 추출한다.

  • Pooling layer : feature를 추출한다.
  • Fully connected layer : 분류 따위에서 원하는 출력값을 결정. 최근 추세는 파라미터 감소를 위해 이걸 최소화하려는 추세다

dimension reduction을 위해 1 by 1 convolution에 집중하는 추세다. convolution 레이어를 깊게 쌓는 동시에 파라미터를 줄인다.


Modern Convolution Neural Networks

AlexNet

  • ReLU
  • 2 GPU
  • Data Augmentation
  • Dropout

VGGNet

Receptive field를 유지하는 동시에 더 깊은 네트워크 구성 Receptive field : convolution 결과값이 영향을 받은 input의 크기

GoogLeNet

  • NIN 구조 : network in network
  • Inception block으로 patameter 수 감소

ResNet

parameter가 많으면 training error은 줄어들지만 test error는 늘어나서 overfitting 발생. 그래서 만약에 네트워크가 커진다면 학습이 잘 안 된다.

  • convolution layer output에 input을 더해서 convolution layer가 residual(input과의 차이)만 학습한다. 이를 통해 네트워크가 커져도 학습이 잘 이루어진다.
  • Bottlenect architecture

DenseNet

  • Dense block
  • Transition block


Computer Vision Applications

Semantic Segmentation

이미지 픽셀마다 어떤 label에 속하는지 분류한다. 자율주행, 운전 보조장치 등에 사용된다.

fully convolutional network

Convolutionalization : dense layer를 없앤 것. 근데 convolutionalize 해도 파라미터 개수는 같다. 히트맵 결과를 얻을 수 있다.

deconvolution : spatial dimension 키워준다. 사실 convolution의 역연산이 아니다.

Detection

bounding box로 이미지 안에서 물체를 찾는다.

  • R-CNN
  • SPPNet : cnn이 한 번만 실행됨
  • Fast R-CNN
  • Faster R-CNN : region proposal network + fast r-cnn
  • YOLO
    1. 이미지를 S by S개의 grid로 나눔
    2. 각각의 cell은 B개의 bounding box를 예측
    3. 위와 동시에 각각의 cell은 C개의 class 확률 예측
    4. 결국 S * S * (5 * B + C) size의 tensor가 나온다.

semantic segmentation 문제랑 detection 문제 해결을 위한 노력에 집중하자.