open:cnn

CNN(Convolutional Neural Network)

Receptive Field

생명과학 대백과사전에서 수용영역(Receptive Field)는 다음과 같이 정의가 된다.

정보처리와 관계되는 세포에 대해 응답을 일으키는 자극의 영역. 감각기의 수용 표면에서 감각자극이 단일감각신경에 반응, 즉 충격발생을 일으키는 영역이다 특히 눈의 망막편 광자극에 관계되는 것을 말하며, 개구리 망막에서 미셰조사법을 이용한 연구결과에 의해 명명된 용어이다. 넓이는 자극광 강도에 의존하고 역자극은 가장 민감한 중앙의 작은 부분에 한정되지만, 그 10^2^~10^3^배 강도에서는 2배 면적(1mm)으로 확대된다.

즉, 수용영역이란 외부 자극이 전체 영향을 끼치는 것이 아니라 특정 영역에만 영향을 준다는 뜻이다.

Locality(Local Connectivity)

CNN은 receptive field와 유사하게 local 정보를 활용한다. 공간적으로 인접한 신호들에 대한 correlation 관계를 비선형 필터를 적용하여 추출해 낸다. 이런 필터를 여러 개를 적용하면 다양한 local 특징을 추출해 낼 수 있게 된다. Subsampling 과정을 거치면서 영상의 크기를 줄이고 local feature들에 대한 filter 연산을 반복적으로 적용하면 점차 global feature를 얻을 수 있게 된다.

Shared Weights

Convolution의 개념을 설명할 때 보았던 것처럼, 동일한 계수를 갖는 filter를 전체 영상에 반복적으로 적용함으로 변수의 수를 획기적으로 줄일 수 있으며, topology 변화에 무관한 항상성(invariance)를 얻을 수 있게 된다.

  1. input
  2. Feature Extration
  3. Shift and distortion invariance
  4. Classification
  5. output

CNN의 과정은 크게 보면 다음과 같은 3단계 과정으로 이루어 진다.

  1. 특징을 추출하기 위한 단계
  2. topology 변화에 영향을 받지 않도록 해주는 단계
  3. 분류기 단계

CNN 처리 과정은 단순하게 분류기로 구성이 된 것이 아니라, 특징을 추출하기 단계가 내부에 포함이 되어 있기 때문에, raw image에 대해 직접 operation이 가능하며, 기존 알고리즘과 달리 별도의 전처리(pre-processing) 단계를 필요로 하지 않는다.

특징 추출과 topology invariance를 얻기 위해 filter와 sub-sampling을 거치며, 보통 이 과정을 여러 번을 반복적으로 수행하여 local feature로부터 global feature를 얻어낸다. 분류기 단계는 학습을 통해 다양한 경우에 대응할 수 있도록 해주는 것이 목표이며, 기존 신경망과 동일한 구조를 갖는다.

CNN 알고리즘을 통해 처리하고자 하는 과제에 따라 최종 convolution kernel의 계수가 달라질 수 있음을 뜻하며, 동일 과제일지라도 학습에 사용하는 학습 데이터에 따라서도 달라질 수 있고, 설정한 hyper-parameter의 값에 따라서도 달라질 수 있다는 것을 의미한다.

CNN에 대한 자세하고 친절한 설명 - 스탠포드 대학교 http://cs231n.github.io/neural-networks-3/

Hyperparameter 최적화에 관련된 논문
http://aad.informatik.uni-freiburg.de/papers/15-IJCAI-Extrapolation_of_Learning_Curves.pdf

조금 old 하지만 기본적인 설명이 잘 되어 있는 논문
https://arxiv.org/pdf/1206.5533v2.pdf

GoogleNet의 성능을 개선한 논문 Rethinking the Inception Architecture for Computer Vision

Yann LeCun이 1990년대에 발표한 구조로, 처음으로 CNN이라는 개념을 성공적으로 도입하였으며, 주로 우편 번호나 숫자 등을 인식하기 위해서 개발이 되었다.

컴퓨터 비전 분야에서 CNN이 널리 적용되도록 한 계기가 된 구조로, CNN 분야에서 유명한 Krizhevsky와 Hinton 등에 의해 개발이 되었다.

  • open/cnn.txt
  • 마지막으로 수정됨: 2020/06/02 09:25
  • 저자 127.0.0.1