Network in Network 2013 

 

계산량을 줄일 수 있는 1x1 conv를 제안한 논문

 

가장큰 특징이라 한다면 1x1 conv와 global average pooling 을 실시했다는 점이다. 

 

 

1. 1x1conv 의 효과 

  • weight와 비선형성 추가 가능
  • channel의 크기를 마음대로 조절가능
  • 연산량감소

 

1-1. 비선형성 추가 와 weigt 추가

 1x1 conv이후에도 여느 conv처럼 relu같은 activa을 거치게 되는데 이는 비선형성을 추가 하게 된다. 즉 다양한 특징을 추출이 가능하다는 것이다.

 

 그렇다면 왜 선형 act을 쓰지않는 것일가 

 간단히 말하면  Wx+b도 W(Wx+b)+b도 W(W(Wx+b)+b)+b도 결과적으로는 선형식이기 떄문에 비슷한 가중치를 가질 수 밖에 없지만  W(f(Wx+b))+b 이렇게 중간에 f라는 비선형함수를 넣으면 더 풍부한 표현이 가능하기 때문이다.,

 

1-2. weight 추가

위의 그림을 예를들어 1x1conv의 계산과정을 보면 각 channel마다 1x1x32의 값이 곱해저 6x6x32의 output을 내게 된다.

즉 각 층의 위치마다의 선형결합을 의미하는 값이라는 것이다. 이는 같은 위치의 값에 대한 mlp의 fc와 비슷한 효과를 내게 되고  이후 비선형성도 추가하기떄문에 하나의 층을 더 쌓는 의미가 있다

본 논문에서는  mlpconvlayer라는 표현으로 표현하고있다.

 

1-3. channel크기의 조절

 

일반적으로 이미지의 row와 column을 줄이고 싶다면 pooling을 사용한다. channel에 대해 줄이는 것이 바로 1x1 conv이다.

만약 위의 예처럼 192개의 채널이 너무 크다 싶으면 1x1x32필터를 이용하여 채널을 줄일 수 있다.

채널의 개수를 유지할 경우에는 위 1-1,1-2의 의미가 있다.

 

1-4. 연산량감소 

 

https://hwiyong.tistory.com/45

Channel 수를 줄였다가 다시 늘이는 부분을 Bottleneck 구조라고 표현하기도 한다.

위의 param의 갯수를 보면 1x1con를 사용한 것이 계산량이 많이 감소한 것을 확인할 수 있다.

 

 

 

2. global average pool (GAP)

 

https://alexisbcook.github.io/2017/global-average-pooling-layers-for-object-localization/

이때까지의 대부분의 CNN모델은 후의 FC레이어들에서 많은 파라미터수를 차지했는데 GAP는 학습해야할 파라미터가 없다. 학습파라미터가 별로 없다는 것은 과적합을 방지한다는 측면으로 해석될 수 있기도하다. 그리고 

global average pool은 각각의 feature map을 평균한 것 이기 때문에 feature map의 특성을 가지고 있다고 할 수 있는데 이는 모델의 해석에 도움을 줄 수 있는 특징을 가진다.

 

위의 시도는 GAP이전의 단계에서 특징을 잘 추출했다는 가정하에 이루어질 수 있는 시도이지만 연산량을 많이 줄일 수 있는 기법이라는데에서 의미가 있다.

 

 

 

 

https://www.youtube.com/watch?v=c1RBQzKsDCk 

 

위영상을 많이 참고했다.

'CV > classification' 카테고리의 다른 글

[CV] ResNet  (0) 2022.05.03
[CV] GoogLeNet  (0) 2022.05.02
[CV] VGG Net 리뷰  (0) 2022.05.02
[CV] ZF Net 리뷰  (0) 2022.05.01
[CV] Alex Net 리뷰  (0) 2022.05.01

+ Recent posts