Boostcamp AI Tech

[Boostcamp Day-25] Computer Vision - Image Classification 1

ju_young 2021. 9. 6. 23:07
728x90

Image Classification

- Classifier

함수 f()에의해 입력 이미지가 category level로 mapping된다.

- k Nearest Neighbors (k-NN)

기존 데이터 안에서 현재 데이터로부터 가까운 k개의 데이터를 찾아 k개의 label 중 가장 많이 분류된 값으로 현재의 데이터를 분류하는 알고리즘이다. 하지만 데이터가 많을수록 시간, 공간복잡도가 비례해서 커지게되기 때문에 실험이 불가능하다.

- Convolutional Neural Networks

  • single fully connected layer networks를 사용할 경우 layer가 한 층이라 단순해서 평균된 이미지들 이외에는 표현이 안되는 문제가 있다. 또한 test time에서 이미지의 일부분만 inference한다면 잘못된 결론을 뱉어내게 된다.
  • locally connected layer networks은 국부적인 영역들만 connection을 고려한 것으로서 fully connected layer networks에서 모든 영역을 고려한 것보다 parameter가 획기적으로 줄어든다.

CNN architecture

1. LeNet-5

  • 전체적인 구조 : Conv - Pool - Conv - Pool - FC - FC
  • Convolution : 5x5 filters with stride 1
  • Pooling : 2x2 max pooling with stride 2

2. AlexNet

  • LeNet-5와 비슷하지만 더 깊은 구조를 가지고 있다. (7 hidden layers, 605k neurons, 60 million parameters)
  • ImageNet으로 학습됨
  • activation function : ReLU, regularization technique : dropout
  • 전체적인 구조 : Conv - Pool - LRN - Conv - Pool - LRN - Conv - Conv - Conv - Pool - FC - FC - FC
  • 11x11 convolution filter를 사용했지만 최신 CNN에서는 더 작은 filter size를 사용한다.

* Receptive field : 특정 부분의 CNN feature의 input space를 말한다. [참고]

3. VGGNet

  • 더 깊은 구조로 16과 19 layers로 쌓아져있다.
  • 하지만 더 간단하게 3x3 Conv filters block과 2x2 max pooling으로 구성되어있다.
  • 작은 크기의 커널 사이즈로 많이 쌓으면 큰 receptive field를 얻을 수 있다. -> input의 이미지 영역의 많은 부분을 고려할 수 있다. -> 적은 parameter와 더 깊은 layer를 가지며 복잡은 network를 만들 수 있다.
728x90