본문 바로가기

AI 논문 정리/Computer Vision 논문

[Paper Review 2] Network In Network

해당 논문은  Min Lin et al. 의 Network In Network (arxiv.org/abs/1312.4400) 입니다.

 

1. Introduction


 

NIN (Network In Network)의 기본적인 structure는 다수의 mlpconv layer를 쌓아올린 형태이다. mlpconv layer 안에 micro networks (MLP)가 있기 때문에, structure를 Network In Network라고 부르는 것이다. 

 

Classification을 위하여 fully connected layers를 adopting 하는 방식을 사용하지 않고, last mlpconv layer의 feature maps의 spatial average를 바로 output하여 resulting vector를 softmax layer에 입력하는 방식을 사용한다.

 

2. Convolutional Neural Network


좋은 abstraction을 성취하는 representation들은 전반적으로 input data의 non-linear functions인 경우가 많다. 전통적인 CNN에서는 over-complete set of filters를 사용하여 latent concepts의 variation을 커버했을 수 있지만,  higher level concepts로 합치기 전에 각각의 local patch에 abstraction을 하는 것이 더 효율적일 것이라고 이야기 한다. 

 

3. Network in Network


3.1 MLP Convolution Layers

해당 논문에서 Multilayer perceptron을 선택한 데에는 두가지의 이유가 있다. 첫째, multilayer perceptron은 back-propagation 을 통하여 train이 된 convolutional neural networks의 구조와 호환이 된다. 둘째, multilayer perceptron은 그 자체로 deep model이 될 수 있기 때문에, feature re-use에 적합하다. 

 

 

3.2 Global Average Pooling

해당 논문에서 전통적인 fully connected layers를 대체하기 위해서 global average pooling이라는 전략을 사용하였다.

 

이 전략은 마지막 mlpconv layer의 classification task의 각각의 corresponding category로 부터 하나의 feature map을 생성하는 것을 목표로 한다. 각각의 feature map의 평균치를 구하여, resulting vector를 softmax layer에 바로 입력을 시킨다.

 

이러한 방식을 사용하면, 

1. Convolution structure를 그대로 따름으로써 feature map과 category간의 관련성을 높인다.

 

2. optimize를 해야 하는 parameter가 없기 때문에, overfitting을 방지할 수 있다는 장점이 존재한다.

 

3. average pooling의 경우 spatial information에 대하여 더하고 평균을 내는 것이기 때문에, 입력 data의 spatial translation에 대하여 robust하다는 특징을 가지고 있다. 

3.3 Network In Network Structure

NIN은 mlpconv layer가 쌓여있으면서, 위에 global average pooling layer와 objective cost layer가 있는 structure를 가지고 있다. 

 

 

4. Experiments 


4.1 CIFAR-10

각각의 mlpconv layer에 있는 feature map의 개수는 corresponding maxout network에 있는 값과 동일하게 설정이 되었다. Validation set을 이용하여 local receptive field size와 weight decay 값을 tuning하였다. 

 

해당 실험을 통하여, mlpconv layers 사이에 dropout을 활용하는 것이 generalization ability을 보완하면서 network performance를 증진시킬 수 있다는 것을 보여주었다. 

 

Dropout을 사용했을 때의 testing error가 더 작다는 것을 확인할 수 있다.

 

4.2 Street View House Numbers

해당 dataset의 목표는 image의 가운데에 있는 숫자를 classify하는 것이다. 여기에서 validation set은 model training에서 활용하지 않는다. 

 

SVHN에서 사용된 structure와 parameter는 CIFAR-10와 유사하다. 

 

Test Error rate은 2.35%가 나왔다.

 

4.3 MNIST

CIFAR-10보다 적은 수의 parameter들이 사용되었고, data augmentation을 사용하지 않고 testing을 진행하였다. 해당 논문에서 0.47%의 performance를 성취하였다.

 

4.4 Global Average Pooling as Regularizer

Conventional CNN 모델에서 Global Average Pooling을 사용한 것이 Dropout Regularizer보다 error가 더 발생한다. 논문에서는 Global Average Pooling이 rectified activation이 있는 linear filter를 필요로 하기 때문에 linear convolution layer에 다소 까다로울 수 있다고 주장한다. 

 

 

5. Conclusion


NIN은 multilayer perceptron들을 사용하는 mlpconv layer와 conventional CNN에서 사용되는 fully connected layer를 대체한 global average pooling layer로 구성되어 있다.

 

Mlpconv layer는 local patch에 대한 모델링에 좋고, global average pooling layer는 overfitting을 방지하는 regularizer로 사용된다.