논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Network In Network

1 Introduction

  • CNN의 컨볼루션 필터는 데이터 패치(data patch)에 대한 일반화 선형 모델(generalized linear model, GLM)입니다.
  • 저자는 GLM에 의한 추상의 수준이 낮다는 의문을 제기하고 있습니다.
  • GLM 대신 좀 더 강력한 비선형성을 가지는 함수 추정기(approximattor)을 사용한다면 모델의 일부분(local model)의 추상력을 향상 시킬 수 있습니다.
  • GLM은 샘플들이 은닉 컨셉에서 선형으로 나눠질 수 있을 때에는 좋은 추상도를 달성합니다.
  • 따라서 CNN은 암시적으로 선형으로 나눌 수 있다는 가정에서 동작하고 있습니다.
  • 하지만 데이터는 비선형 매니폴드 위에서 놀고 있기 때문에, 그 표현 또한 일반적으로 높은 수준의 비선형 함수로 나타내어집니다.
  • NIN에서는 GLM을 비선형 함수 추정기인 "마이크로 네트워크"로 치환하였고, 마이크로 네트워크로써 다층 퍼셉트론을 사용하였습니다.
  • 이렇게 나온 구조를 mlpconv라고 부를 것입니다.
  • mlpconv 층이나 선형 컨볼루셔널(linear convolutional) 층 모두 지역 수용장(local receptive field)을 입력으로 하여 특징 벡터(feature vector)를 출력으로 내보냅니다.
  • mlpconv의 다층 퍼셉트론은 여러개의 fully connected 층과 비선형 활성 함수(activation function)로 이루어져 있습니다.
  • 모든 지역 수용장은 같은 다층 퍼셉트론을 공유합니다.
  • CNN과 같은 방식으로 MLP가 입력 층을 슬라이딩하면서 다음 층을 위한 출력 벡터를 계산합니다.
  • 여러 mlpconv 층을 쌓아서 NIN의 전체 구조를 만들었습니다.
  • 이러한 이유로 이를 Network In Network라고 부르게 되었습니다.
  • 기존 CNN에서 분류 작업(classification)을 위하여 fully connected 층을 붙였던 것 대신, 마지막 mlpconv 층에 global average pooling 층을 적용하여, 특징 맵의 지역 평균을 출력을 계산하고 이를 softmax 층에 넣었습니다.
  • 이 방법을 사용하면, 기존 CNN의 카테고리 레벨의 정보가 목적 함수 층에서 컨볼루셔널 층으로 넘어가는지 분석이 힘들었던 문제를 해결할 수 있습니다.
  • 또한 fully connected 층이 가지고 있는 오버피팅하기 쉬운 문제와 dropout regularization에 의존하고 있는 문제 또한 해결될 수 있습니다.

2 Convolutional Neural Networks

  • 앞에서 이야기한 것처럼 CNN의 선형 컨볼루션은 데이터가 선형적으로 분리될 수 잇다는 컨셉을 가정하고 있지만, 실제 데이터의 표현은 그렇지 않습니다.
  • 때문에 CNN에서는 over-complete한 필터 셋을 활용하여 은닉 컨셉의 모든 변화를 커버하도록 하여 이를 극복하고 있습니다.
  • 다음 층에서는 이전 층의 것들을 모두 조합해야 하므로, 너무 많은 필터를 갖는 것은 다음 층에서 부담으로 작용합니다.
  • 또한 CNN은 높은 레벨의 층일 수록 낮은 레벨의 컨셉을 포함하므로, 낮은 층에서 더 나은 추상을 가지는 것이 좋을 것입니다.

3 Network In Network

3.1 MLP Convolution Layers

  • 은닉된 컨셉 분포에 대한 사전 지식이 없어도 사용할 수 잇도록 일반적으로 통용되는 함수 추정기를 사용할 수 있는 것이 좋겠습니다.
  • 이를 위해 다층 퍼셉트론을 사용한 것에는 두가지 이유가 있습니다.
  • 먼저 다층 퍼셉트론은 학습 시 역전파를 그대로 사용할 수 있기 때문에 컨볼루셔널 신경망의 구조와 호환되는 구조입니다.
  • 두번째로 다층 퍼셉트론 모델은 특징의 재사용을 유지한다는 점에서 그 자체로도 깊은 모델이 될 수 있습니다.
  • mlpconv 층의 계산은 다음과 같이 이루어집니다.

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

$$\vdots$$

$$ f^n_{i, j, k_n} = \max ({w_{k_n}^n}^T f_{i,j}^{n-1} + b_{k_n}, 0) $$

  • 여기서 n은 다층 퍼셉트론의 수를 나타냅니다.
  • Rectified linear unit이 활성 함수로 사용되었습니다.
  • Cross channel (cross feature map) pooling의 관점에서 보면, 위의 식은 보통의 컨볼루셔널 층에 단계별 cross channel parametric pooling을 적용한 것과 동일합니다.
  • 각 pooling 층은 입력 특징 맵에서 가중치 선형결합을 수행하고, 이에 rectified linear unit으로 들어갑니다. 이 cross channel pooled 특징 맵은 다시 cross channel pooled되어 계속적으로 다음 층으로 이어집니다.

3.2 Global Average Pooling

  • 기존의 CNN에서는 분류 작업을 위해서 마지막 컨볼루셔널 층이 벡터화되어서 fully connected 층으로 들어가고, softmax logistic regression 층으로 입력됩니다.
  • 하지만 fully connected 층은 오버피팅이 나는 경향이 있고, 전체 네트워크의 일반화 능력을 방해합니다.
  • Hinton의 Dropout은 이러한 단점을 막기 위해 제안되었습니다.
  • 대신 이 논문에서는, 마지막 mlpconv 층의 각 특징맵이 각 카테고리의 분류를 담당하도록 생성하도록 하였습니다.
  • 따라서 fully connected 층 대신, 각 특징 맵을 평균하여 결과 벡터로 만든 다음 이를 softmax 층으로 넣도록 하였습니다.
  • 특징 맵과 카테고리가 대응되는 것이 자연스럽고, 이렇게 되도록 학습되도록 유도된다는 것이 이 방법의 장점 중 하나입니다.
  • 따라서 각 특징 맵은 카테고리의 confidence 맵으로 쉽게 해석될 수 있습니다.
  • 다른 한가지는 최적화 할 파라미터가 없기 때문에 오버피팅을 피할 수 있다는 것입니다.
  • 또한 지역 정보를 모두 더하는 연산으로 인하여 지역 이동(spatial translation)에 대하여 강해지는 장점이 있습니다.

3.3 Network In Network Structure

  • NI은 mlpconv 층을 쌓아서 만들엇으며, 최상위에는 global average pooling과 목적 함수 층을 두었습니다.
  • 또한 CNN과 maxout network와 마찬가지로 Sub-sampling 층을 각 mlpconv 층 사이에 둘 수 있습니다.
  • 각 mlpconv 층 사이에는 3개의 퍼셉트론 층을 두엇습니다.
  • 두 NIN사이의 층과 마이크로 네트워크의 수는 목적에 맞게 바꿀 수 있습니다.

4 Experiments

5 Conclusions


Add a Comment Trackback