논문

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

UFLDL Tutorial 11. Supervised Convolutional Neural Network – Pooling

http://deeplearning.stanford.edu/tutorial/

Pooling

Pooling: Overview

Convolution을 이용해서 특징을 얻어낸 후에는, 다음 단계로 분류를 위해서 그것들을 사용해야 합니다. 이론적으로는 softmax 분류기에서처럼 추출된 모든 특징들을 분류기에 모두 사용할 수 있지만, 계산이 많아 어려운 상황이 될지도 모릅니다. 이미지의 크기가 96 * 96라고 하고, 8 * 8크기의 입력으로부터 400개의 특징이 학습되어 있는 상황을 생각해 봅시다. 이때, Convolution 결과는 $ (96 - 8 + 1) * (96 - 8 + 1) = 7921$의 출력을 갖게 됩니다. 또한 Convolution 마다 400개의 특징을 갖고자하므로, 샘플마다 총 $89^2 * 400 = 3,168,400$ 크기의 벡터 특징을 가지게 됩니다. 3백만개의 특징을 갖는 입력으로 분류기를 학습시키는 것은 부담스럽고, 오버피팅이 되기 쉽습니다.

이 문제를 다루기 위해서, 먼저 이미지가 "stationarity" 속성이 있기 때문에 convolved 특징을 얻기로 한 것을 상기시켜봅시다. 이것은 한 영역에서 유용한 특징은 다른 영역들에서도 유용하다는 것을 내포하고 있습니다. 다라서 큰 이미지를 설명하기 위한 한가지 방법은 이미지의 모든 영역에서 우리가 사용하는 특징들의 통계량을 통합하여 모두 사용하는 것입니다. 에를 들면, 이미지의 영역에서 대해 구해진 어떤 한 특징의 평균 혹은 최대 값을 계산하는 것도 한가지 방법입니다. 이러한 요약된 통계량은 원래의 특징보다 훨씬 작은 차원을 갖고, 오버피팅을 적게 발생시켜 결과가 좋도록 만듭니다. 이 통합하는 과정을 "pooling"이라고 하며 연산의 종류에 따라 "mean pooling", "max pooling" 등으로 부르게 됩니다.

아래 그림은 이미지에서 서로 겹치지 않는 4개 영역에서 pooling이 어떻게 이루어지는지 보여주고 있습니다.

"Pooling"

Pooling for Invariance

만약 이미지를 다룰 때 Pooling을 인접한 영역 영역에서 수행하거나, 동일한 은닉 유닛들로부터 생성된 특징들을 pool할 경우가 있습니다. 그렇게 하면 그 pooling unit들은 "translation invariant"하게 됩니다. 이것은 이미지가 이동이 발생할 경우 pool된 특징들이 활성화 된다는 뜻입니다. Translation-invariant 특징은 물체 검출이나 소리 인식 등 많은 영역에서 요구되는 기능입니다. 이미지가 이동이 되더라도 샘플은 같은 레이블을 할당받아야만 합니다. MNIST 숫자 데이터베이스를 가져다가 왼쪽 오른쪽으로 이동시켜도, 분류기는 그것들을 이동이 없었던 때와 같은 수준으로 높은 정확도로 분류할 수 있어야 합니다.

Formal description

다시 정리해 봅시다. 이전에 공부한 대로 convolved 특징을 얻어낸 후에, 이 convolved 특징으로부터 pool을 수행할 영역의 크기 $m \times n$을 결정합니다. 그리고 나서 convolved 특징들을 서로 겹치지 않는 $m \times n$영역으로 나눈 다음 그 영역의 평균 혹은 최대값을 선택하여 특징을 활성화시켜 pooled convolved 특징을 얻습니다. 이 pooled 특징은 분류를 위해서 사용될 수 있습니다.

다음 시간에는 이렇게 "pool"된 특징들을 모아 분류를 위한 더 나은 특징들을 얻을 수 있는 방법을 알아보겟습니다.


Tags:
Add a Comment Trackback