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. 연산량감소
Channel 수를 줄였다가 다시 늘이는 부분을 Bottleneck 구조라고 표현하기도 한다.
위의 param의 갯수를 보면 1x1con를 사용한 것이 계산량이 많이 감소한 것을 확인할 수 있다.
2. global average pool (GAP)
이때까지의 대부분의 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 |