연구/논문 리뷰

[CVPR 2015] Going Deeper with Convolutions (GoogLeNet)

xeskin 2020. 6. 11. 23:26
반응형

Introduction

GoogLeNet network

ILSVRC2014에서 1위한 GoogLeNet을 소개하는 논문이다. 성능을 높이기 위해 네트워크를 깊게 쌓고는 싶은데 computation cost가 많이 들어 이에 대한 고민을 슬슬 했던 것 같다. 모델에 Inception module을 도입했는데, dimension reduction을 통해 연산량을 줄이려고 1x1 conv를 도입한 것이 특징이다. 더불어 레이어를 깊게 쌓았을 때는 gradient vanishing이 생긴다. 이를 해결하기 위해 중간중간 inception module 뒤에 auxiliary classifier를 두었다.

 

Achitecture Details

Inception module

Inception module은 여러 사이즈의 필터를 모아놓은 모듈이다. 이때 크기가 다른 필터를 거친 뒤에 채널 방향으로 concat한 것을 확인할 수 있다. 크기가 다른 필터를 사용한 것은 다양한 receptive field를 나타내기 위함이다. 이는 naive한 버전인데, 3x3 conv나 5x5 conv의 경우에는 많은 연산량이 필요로 하기 때문에 하드웨어 리소스가 어엄청 많은 게 아니라면 학습시키는 것조차 힘들 것이다. 그래서 3x3, 5x5 conv하기 이전에 1x1 conv를 두어 dimension reduction을 하여 연산량을 줄이려는 시도를 했다. Dimension reduction을 하였다는 것은 feature map의 개수, 즉 output channel의 개수를 줄였다는 뜻이다. Dimension reduction을 한 이후에 3x3, 5x5 conv에서는 다시 feature map의 개수를 늘렸다. 그럼 이걸 하면 연산량이 얼마나 줄어들까?

 

예를 들어, 28x28x128의 크기를 갖는 input data를 64개의 output channel을 갖게끔 5x5 conv로 연산한다고 생각해보자. 그냥 연산한다면 (28x28x64)x(5x5x128)=160,563,200만큼 computation cost가 필요하다. 하지만, output channel의 개수를 32개로 줄이는 1x1 conv를 중간에 넣으면 (28x28x32)x(1x1x128)=3,211,264만큼 연산하고 5x5 conv를 돌릴 때는 32개의 input channel을 받아 (28x28x64)x(5x5x32)=40,140,800만큼 computation cost가 든다. 이를 합쳐도 1x1 conv를 추가하기 전 연산량의 약 1/4이 되는 것을 확인할 수 있다.

 

연산량뿐만 아니라 1x1 conv는 feature map을 인풋으로 받는 레이어 하나짜리 fully-connected neural network라고 생각할 수 있다. Activation function으로 ReLU와 같은 비선형 함수를 사용한다면 추가적인 비선형성까지 얻을 수 있다.

 

1. 여러 사이즈의 필터를 사용해 receptive field를 나타냄

2. 1x1 conv를 추가해 연산량을 줄임

 

Auxiliary Classifier

1x1 conv를 통해 연산량을 줄였으니 동일한 hardware budget에서는 레이어를 더 깊게 쌓을 수 있게 됐다. 하지만, 레이어를 깊게 쌓았기 때문에 output과 가까운 쪽이 아니라면 즉, input layer 부근에는 gradient가 0에 가까워진다. Gradient descent를 사용해서 전파할 때 error전해지는 부분이 chain rule쓰는 거 생각해보면 된다. 여튼, 이걸 gradient vanishing이라고 하는데, 여기서는 이를 해결하기 위해 중간중간에 auxiliary classifier를 두어 중간중간에서 error가 전파되도록 만들었다고 한다. 그런데, 이는 학습 중에만 사용되고 추론 시에는 사용하지 않았고 한다.

 

*Introduction에 있는 피규어 중간에 노란 블록에 SoftmaxActivation에 해당하는 부분이 Auxiliary Classifier다.

 

 

반응형