convolution은 'Network in network'라고도 불리며, Convolutional Network를 design할 때 매우 유용하다.
채널의 수가 너무 많은 경우 이를 (늘리거나) 줄일 수 있다. (Pooling layer의 경우 width와 height를 줄일 수 있는 반면)
채널의 수를 그대로 유지하더라도 한 층을 더해주며 비선형성까지 더해주기 때문에 더욱 복잡한 함수를 학습할 수 있게 된다.
이때 위 그림처럼 convolution을 활용할 경우 계산 비용을 12.4M으로 줄일 수 있다.
여기서 중간의 을 bottleneck layer라고 부른다.
bottleneck layer를 적절하게 설정한다면 성능에 큰 지장 없이 계산 비용을 줄일 수 있다.
Inception network는 inception module이 반복되는 네트워크이다.
side branch에서는 softmax를 계산하며 이는 네트워크에 regularization effect를 가져다 주고, overfitting을 방지한다.
📙 참고