논문에서 기존 CNN을 generalized linear model(GLM) 이라고 언급하며, nonlinear(비선형) 함수 추정치를 사용하면 특성 추출 성능을 향상시킬 수 있을 것이라고 한다. 그래서 논문의 저자들은 multilayer perceptron을 사용하여 mlpconv layer라 불리는 micro network를 linear convolution layer 사이에 추가하였다고 한다. 그리고 일반적으로 CNN 층 뒤에 사용하는 fully-connected layer를 사용하지 않고 global average pooling layer와 softmax layer를 사용하여 바로 출력값을 만들어 내었다고 한다.
Convolutional Neural Networks
기존의 CNN은 linear(선형성인)한 연산을 수행하기 때문에 input data의 nonlinear(비선형성)한 특징을 처리하기 위해서 많은 수의 filter를 사용하고, 그로 인해 다음 layer에 매우 많은 연산량을 부과하게 된다고 주장한다.
latent concept이 매우 복잡한 분포를 가지고 있을 때, local patch들로 부터 더욱 추상적인 특징들을 얻어낼 수 있도록 convolution layer 사이에 micro network를 도입하는 Network In Network 구조를 제시하였다.
Network In Network
MLP Convolution Layers
MLP를 micro network로 사용한 이유
mutlilayer perceptron은 convolutional neural network과 함께 역전파 학습이 가능
multilayer perceptron은 그 자체로 매우 깊은 모델이 될 수 있음
1x1 크기 kernel을 가진 convolution layer의 연산과 동일하다고 한다.
Global Average Pooling
일반적으로 CNN에서 얻은 feature vector를 fully-connected layer와 연결하여 사용하는데, 이는 over-fitting을 일으켜 신경망의 일반화 성능을 방해한다고 논문의 저자들은 주장하였다.
위의 FC layer에서 발생하는 문제를 해결하기 위해 global average pooling을 사용하였다고 한다.
global average pooling은 쉽게 이해할 수 있고, 파라미터가 없어 over-fitting을 피할 수 있다는 장점이 있다고 주장한다. 그리고 공간 정보(spatial information)를 합치기 때문에 input의 공간번역(spatial translation)의 관점에서 robust하다고 하였다.
Experiments
논문에서는 CIFAR-10, CIFA-100, SVHN, MNIST 등 여러 데이터셋을 사용하여 실험을 진행하였다.
3겹의 mlpconv layer를 maxpooling과 함께 사용하였고, regularization을 위해 마지막 mlpconv layer에는 dropout을 사용하였다고 한다.
앞서 나왔듯 FC layer 대신 global average pooling을 사용하였고, weight decay도 규제항으로 추가하였다고 한다.
결과적으로 여러 데이터셋에서 SOTA 모델보다 좋은 성능을 거두었고, dropout을 사용했을 때 그 성능이 더 향상되었다고 한다.
Global Average Pooling as a Regularizer
global average pooling의 규제효과를 확인하기 위하여 Hinton의 기존 CNN모델에서 비교실험을 진행하였다고 한다.