본문 바로가기

Machine Learning/Vision

Popular CNN Architecture (2) - GoogLeNet

반응형
GoogLeNet



inception Module이 핵심이다.

Inception module의 장점(특징)
  1. AlexNet처럼 한 단계가 여러 레이어로 분화된 것이 특징인데, AlexNet과 달리, 각각의 layer의 filter가 상이함.
여러 갈림길로 분화되어 receptive field가 넓어(좀 더 다양한 filter를 취합해서 각단계를 접근하게되니 성능향상이 기대가 됨)져 좀 더 넓은 영역을 보고 input의 포괄적인 정보를 인지할 수 있다.
( * (b)가 실제로 사용된 모델이다.)
  1. (b)모델을 보면 알 수 있듯이 1x1의 conv를 사용하여, 한 단계를 두 단계로 나누어 channel 수를 획기적으로 줄여 준다.
=> dimension reduction



  1. Dimension Reduction에 관해.


(a)filter concatnation 필터를 channel-wise로 더함.
(N+2P-F)/S + 1
=> 이때, 2P = F 로 잡아서, 모든 output의 WxH를 동일하게 만들어줄 수 있음.

(b) (a)와 달리 1x1 conv가 추가 되었고, 이를 통해 dimension reduction이 발생한 것임. 

★채널의 수를 중간에 줄였을 때, 네트워크를 정의하는 parameter 수가 줄어든다.

왼쪽 모델 : 3x3x18의 필터가 30개 총 parameter (bias 제외) = 4860
오른쪽 모델 : 1x1x18의 필터가 총 5개 + 3x3x5의 필터가 총 30개 = 90 + 1350 = 1440

layer를 늘리고, conv횟수도 한번이나 증가했는데 parmeter수가 반이상 줄음.
conv는 동일한 filter가 돌아다니면서 찍음. conv layer의 parameter를 결정하는 것은 input channel 과 output channel.

conv하는 곳의 channel이 줄면 parameter가 줄음.
가령, 첫단에서 3x3의 filter를 이용하면 의미가 없어지지만, 1x1을 이용해서 적은 수의 parameter로 줄일 수 있고(channel감소) 감소된 channel에서 conv를 하여 전체적인 parameter를 줄임.

Network in Network 구조

dimension reduction! -> 채널수를 줄임.


  1. 한 Layer를 여러 갈래길로 만들어냄


일반적으로 오른쪽에 3-layered NN을 보면(주황선) input image가 최종적으로 3x3conv를 통해 마지막 한 픽셀에 미치는 영향(receptive field 파란 사각형)은 첫 layer에서 3x3 두번째 layer에서 5x5 세번째 layer에서 7x7이다.
결국, 최종단의 output에서 임의의 한 pixel은 input image의 특정 7x7의 영역(receptive field)만을 보게 된다.

갈림길을 만들게되면, 최종 입력단 (or 상위단) 입력 image의 정보가 취합되는 범위 (receptive field) 매우 넓어지게 되어 다양한 receptive field를 보고 다양한 결과를 얻어낼 수 있음.

channel 수를 획기적으로 줄여 parameter를 매우 줄여주고, 매우 vgg에 비해 deep하게 설계하여 좋은 성능을 보임.
layer
vgg -> 19 
googLeNet -> 24
parameter
googLeNet x2 < VGG 


Inception vx

inception v4 모델에서는 parameter를 줄이기위해 더욱 노력함. 5x5를 사용하지 않음.
receptive field를 늘리기 위해 온갖 노력을 한 흔적이보임. 특히나 1x7과 7x1을 써서, 14개의 parameter만 사용하여 7x7을 만들어 내기도함.

max-pool -> avg-pool
5x5 -> 3x3 *2

14x14를 receptive field를 갖는데 28개의 parameter만을 이용하기도 함. (오른쪽 끝)

Inception 모듈의 방식을 참고하여, ResNet을 다시 만들기도 함. 
receptive field를 늘리고(1x3, 3x1), channel을 줄이는(1x1 (192)) 흔적을 볼 수 있음.



정리

AlexNet - cnn의 시발점 ReLU
VGGNet - 간단한 구조 3x3 conv
GoogLeNet - 인셉션 모듈 
1) 서로 다른 receptive field를 만들기 위해, 여러 filter를 병렬적으로 통과시키고 concatnate시키는 과정을 반복적으로.
2)1x1 conv를 통해 dimension reduction을 구현했다. 채널의 수를 줄이고 이를 통해 parameter를 획기적으로 줄임.
Inception vx - GoogLeNet의 inception 모듈을 활용하여 아키텍쳐를 발전시킴.


반응형

'Machine Learning > Vision' 카테고리의 다른 글

Popular CNN Architecture (3) - ResNet  (0) 2019.01.08
Popular CNN Architecture (1) - AlexNet, VGG  (0) 2019.01.06