본문 바로가기
[독파하기] 논문

# 1. Network In Network

by Bebsae 2022. 3. 28.

Abstract

본 논문에서는 수용장에서의 로컬 패치에 대한 모델의 분류 성능을 강화하기 위해 "Network In Network"라는 구조를 제안한다. 전통적인 컨볼루션 레이어는 입력을 스캔하기 위한 비선형 활성화 함수가 뒤따르는 선형 필터를 사용한다. 하지만, 수용장(커널)에서의 데이터의 추상화를 위해서 더 복잡한 구조인 micro nerual network를 설계했다. micro neural network는 MLP(multilayer perceptron)이 포함되어 있다. 그리고, 전통적은 FC 레이어 대신에 해석과 오버피팅 방지가 쉬운 GAP(global average pooling)을 활용했다.

 

Introduction

CNN에서의 컨볼루션 필터는 GLM(generalized linear model)에 속하고, GLM의 추상화 능력은 낮다. 그래서 GLM을 potent nonlinear function approximator (MLP가 포함된 "micro network")로 대체하는 것은 모델의 추상화 능력을 강화시킬 수 있다. 애초에 GLM(전통적인 CNN)은 잠재 공간상의 데이터들이 선형적으로 분류가 가능하다는 전재가 깔려있다. 하지만, 실제 데이터는 비선형 매니폴드에 분포해있다. 

 

우측이 MLP가 포함된 "micro network" = Mlpconv

CNN의 분류를 위한 전통적인 FC 레이어를 적용하는 대신, 마지막 Mlpconv에서 나온 feature map의 공간 평균(width, height 축에 대한 값들의 평균)을 GAP(global average pooling)통해 출력한다. 이러한 방법은 의미 있고 해석이 가능하게끔하며, 자체적으로 regularizer 역할을 하여 오버피팅을 방지할 수 있다. (파라미터 수가 늘어나는 것을 방지)

 

Convolutional Neural Netowrks

$f_{i, j, k} = max(w_k^Tx_{i, j}, 0)$

 

$i$, $j$ $x_{i, j}$ $k$
feature map의 픽셀의 인덱스 중심이 $(i, j)$인 패치(커널에 해당하는 입력 feature map의 채널의 인덱스

 

예를 들어, RGB 3채널의 w, h 이미지가 들어왔을 때, 필터 하나의 사이즈는 (c, w, h)가 될 것 이다. 컨볼루션 연산의 결과 feature map의 인덱스는 이러한 필터의 갯수로 결정이 된다. 즉, k개의 필터가 존재한다면 필터의 shape은 (k, c, w, h)가 될 것이다. 위 그림은 k=5라고 가정하고, 주황색의 연결들은 1번째 필터의 컨볼루션 연산을 나타낸 것이다. 해당 컨볼루션 연산은 위 식을 의미한다. (크게 보면 convolution을 full-connected로 해석할 수 있음.)

+ 각각의 필터는 새로운 특징을 뽑아내기 위한 다른 관점으로 해석할 수 있다. 고로, 위의 예시에서는 RGB 채널에 5개의 필터를 적용한 것은 5가지의 다른 관점으로 보겠다는 의미이다.

 

MLP Convolutional Layers

Perceptron

우선 해당 섹션을 이해하기 위해서는 퍼셉트론에 대해 숙지해야 한다. 각각의 입력 $x_1$ ~ $x_n$은 벡터 $X$로, 그에 대응하는 가중치 $w_1$ ~ $w_n$은 벡터 $W$로 표현할 수 있다. 벡터 $W$에 전치(Transpose)를 취한 다음, 벡터 $X$와 곱하고 ReLU를 적용한 퍼셉트론은 위 그림과 같다.

 

$f^1_{i, j, k_1} = max((w^1_{k_1})^T x_{i, j} + b_{k_{1}}, 0)$

.

.

.

$f^n_{i, j, k_n} = max((w^n_{k_n})^T f^{n-1}_{i, j} + b_{k_{n}}, 0)$

 

해당 수식이 Mlpconv를 표현한 식이다. $n$은 MLP의 레이어 갯수를 의미한다.

 

위 그림은 수식을 의미한다. 수식을 재귀적으로 반복된다.  먼저 $f^{n-1}_{i, j}$는 이전 feature map의 $k$개의 모든 레이어를 의미한다. 그림에서 주황색 연결이 $f^n_{i, j, k_n}$을 의미한다. 즉, $n$ 번째 가중치 $w^n_{k_n}$과 이전 feature map의 모든 레이어 $f^{n-1}_{i, j}$와 가중치 곱을 수행했다고 볼 수 있다.

 

cascaded cross channel parametric pooling
1 x 1 convolution

$f^n_{i, j, k_n}$은 CCCPP(Cascaded Cross Channel Parametric Pooling)에 해당한다. CCCPP는 채널을 가로지른 풀링이다. 그리고 $1 \times 1$ 컨볼루션 연산과 동일한 효과를 지닌다. $1 \times 1$ 컨볼루션 연산은 locality를 고려하지 않는 컨볼루션 연산이다. 고로, 필터의 갯수를 어떻게 설정하느냐에 따라 채널 사이의 정보를 압축 및 연산의 횟수가 줄어들 수 있다.

 

Global Average Pooling

위 그림은 NIN의 전체적인 아키텍처이다. Mlpconv를 모두 거치고 나온 feature map의 각 채널에 대해 평균값으로 풀링을 진행하는 것이 global average pooling이다. 그 결과는 바로 softmax 레이어에 연결되어 클래스별 확률 분포를 출력한다. 

 

global average pooling의 장점

  • feature map과 categoies 사이의 연관성을 강화시키기 때문에 categories confidence 해석이 쉬워진다.
  • 파라미터가 별도로 필요하지 않기 때문에 오버피팅을 방지할 수 있다.
  • 구조적으로 regularizer 역할을 한다.

 

참고

https://arxiv.org/abs/1312.4400

 

Network In Network

We propose a novel deep network structure called "Network In Network" (NIN) to enhance model discriminability for local patches within the receptive field. The conventional convolutional layer uses linear filters followed by a nonlinear activation function

arxiv.org

https://hwiyong.tistory.com/45

 

1x1 convolution이란,

GoogLeNet 즉, 구글에서 발표한 Inception 계통의 Network에서는 1x1 Convolution을 통해 유의미하게 연산량을 줄였습니다. 그리고 이후 Xception, Squeeze, Mobile 등 다양한 모델에서도 연산량 감소를 위해 이..

hwiyong.tistory.com

 

댓글