본문 바로가기

논문 리뷰

AlexNet 논문 리뷰/번역

AlexNet

Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Communications of the ACM 60.6 (2017): 84-90.

 

AlexNet은 2012년 발표된 ImageNet Classification with Deep Convolutinal Neural Network 이라는 논문에서 처음 소개된다. CNN모델의 기초인 LeNet 탄생 후 14년만에 나온 후속 모델로 ImageNet Top-5 정확도를 73.8%에서 83.7%로 대폭 증가시킨 모델이다. 논문 본문 링크(ImageNet Classification with Deep Convolutinal Neural Network)

ILSVRC-2010, 2012에서 큰 격차로 2위를 따돌리며 우승한 모델이다. 현재는 GTX3070이상의 시리즈들이 나왔지만 당시에는 GTX580 2대로 실험을 진행하였고 5~6일이 소요되었다고 한다. 실험 결과로 더욱 큰 데이터셋과 좋은 GPU가 나온다면 정확도가 훨씬 높아질것으로 기대 했고 최근 Efficient-net 이 이를 입증했다. 또한 해당논문에서는 CNN의 깊이가 훈련속도 뿐만 아니라 정확도에도 영향을 미친다는 사실을 확인하였고 과대적합을 막기 위해 Dropout을 사용하였다. CNN에서는 tanh를 활성화 함수로 사용한다는 고정관념을 깨고 ReLU를 사용하였다.

 

 

 

saturate/saturating = 기울기가 0에 수렴하다는 의미

Abstract

우리는 ImageNet LSVRC-2010 대회의 1000가지 종류로 분류되는 120만개의 고해상도 이미지를 분류하기 위해 크고 깊은 CNN모델을 훈련시켰다. 테스트 데이터에서 우리는 기존 sota보다 상당히 나은 top1, top5에서의 에러율을 각각 37.5%, 17.0%를 기록하였다. 우리의 신경망은 6천만개의 파라미터, max-pooling 계층을 포함한 5개의 합성곱계층과 최종 1000-way의 softmax 계층을 포함한 3개의 완전연결계층에서 65만개의 뉴런으로 이루어져 있다.

 

우리는 빠른 훈련을 위해 non-saturating 뉴런을 사용하였고 gpu를 이용하여 효율적인 cnn연산을 구현하였다. 과대적합을 방지하기위해 드롭아웃을 이용하였고 우리는 조금 변형된 모델로 ILSVRC-2012에서 에러율 26.2%를 달성한 2위에 반해 15.3%를 달성하며 우승하였다.

 

1. Introduction

현재는 머신러닝 방식을 필수적으로 사용하여 객체를 탐지합니다. 우리는 성능향상을 위해 더 큰 데이터셋, 더 강력한 모델 그리고 과대적합을 막기위해 더 나은 기술들을 사용했다. 최근까지는 레이블된 이미지가 상대적으로 적었다. 이런 작은 데이터셋에서 간단한 recognition 작업들은 의외로 잘 작동한다. 예를 들어 현재 MNIST digit-recognition 작업의 최고 에러율은 인간이 직접 한것과 비슷합니다. 하지만 현실의 데이터는 매우 다양하기 때문에 그것들을 인식하기 위해서는 매우 큰 훈련세트가 필요하다. 실제로 소규모 데이터셋의 단점은 널리 알려져 있었지만 이젠 LabelMe, ImageNet과 같은 수백만개의 레이블된 이미지를 모을 수 있게 되었다. 

 

수천개의 object가 있는 수백만개의 이미지를 학습시키기 위해서는 매우 큰 용량의 모델이 필요하다. 그러나 recognitino 작업의 복잡성은 ImageNet과 같은 큰 데이터셋도 쉽게 해결하기 어렵습니다. 그래서 우리가 몰랐던 사전지식들을 통해 우리 모델을 보강해주어야 한다.

 

CNN모델은 깊이와 너비를 다양하게 조절 가능하고 이미지에 대해 대부분 정확한 예측을 한다. 그러므로 기존의 비슷한 크기의 신경망에 비해 CNN은 더 적은 연결과 파라미터로 훈련이 가능하고 이론상 더 좋은 효과를 보인다.

이런 CNN의 성능과 상대적으로 효율적인 구조에도 고해상도의 큰 데이터셋에 적용하기에는 여전히 힘들었다. 

 

운이 좋게도 현재의 GPU는 2D합성곱 연산에 매우 최적화 되어있고 CNN을 훈련시키기에 충분하다. 또한 ImageNet은 심각한 과대적합을 예방하기 위한 충분한 레이블링된 이미지를 갖고 있다.

 

이 논문의 성과는 다음과 같다 :

우리는 매우 큰 CNN을 이용하여 ILSVRC-2010, 2012 에서 기존의 기록보다 훨씬 높은 점수를 기록했다.

우리는 2D 합성곱에 최적화된 GPU를 훈련에 사용하여 공식적으로 이것이 가능함을 증명했다.

우리의 신경망은 성능을 올리고 훈련시간을 줄일 수 있는 새로운 특징을 발견했다.

우리의 신경망은 매우 커서 심각한 과대적합이 문제였지만 그것을 막기위한 다양한 기술들을 사용하였다.

우리는 5개의 합성곱 계층과 3개의 완전연결 계층을 사용하였는데 이 깊이는 매우 중요하다는 것을 깨달았다. 단 하나의 아무 합성곱 계층을 제거했는데 (전체 파라미터의 1%도 차지하지 않는다) 더 열등한 성능을 나타냈다.

 

마지막으로 우리는 GTX580 3GB GPU 2개를 이용하여 5~6일동안 훈련을 진행하였고 우리의 실험은 더욱 빠른 GPU와 큰 데이터셋이 있다면 더욱 향상될것으로 기대된다.

 

2. The Dataset

ImageNet은 22000개의 카테고리로 이루어진 150만개의 라벨링된 고해상도 이미지 데이터셋이다. 이미지들은 웹상에서 수집되었고 아마존 크라우드소싱을 이요하여 사람에 의해 라벨링 되었다. 그 중 ILSVRC에서 쓰인 1000개의 클래스, 120만개의 훈련 데이터, 5만개의 검증 데이터, 15만개의 테스트 데이터로 이루어진 데이터셋을 사용하였다.

 

우리의 실험은 대부분 ILSVRC-2010에서 이루어 졌고 이 대회는 테스트셋에도 라벨링이 된 유일한 대회이다. 우리는 테스트셋에 라벨링이 되어있지 않은 ILSVRC-2012대회에도 참가하였고 섹션6에 그 결과가 적혀있다. ImageNet은 일반적으로 top-1, top-5 에러율을 보고하는데 top-5에러율은 모델이 예측한 상위 5가지 결과 중 정답이 없는 비율이다.

 

ImageNet은 다양한 해상도의 이미지를 포함하지만 우리의 신경망은 일정한 크기를 입력으로 받기 때문에 256 X 256 크기의 이미지로 다운샘플링 작업을 실시하였다. 우리는 각 픽셀에 대해 훈련세트의 평균을 빼는 것을 제외하고는 이외의 전처리 작업은 진행하지 않았고 RGB 값을 갖는 픽셀들로 훈련을 진행하였다.

 

3. The Architecture

우리의 신경망은 다음 그림과 같다.

이 절에서는 우리의 신경망에 쓰인 특징들을 설명하겠다.

 

3.1 ReLU Nonlinearity

입력 x 에 대해 f를 출력하는 기본적인 방법은 f(x) = tanh(x) 혹은 f(x) = \((1 + e^{-x})^{-1}\) 이다. 경사하강법을 이용한 훈련시간면에서 이러한 방법은 f(x) = max(0,x) 보다 느리다. Nair and Hinton에 따르면 이러한 비선형성을 가진 뉴런을 ReLU라고 부른다. DCNN에서 ReLU는 동등한 갯수의 tanh보다 몇배는 빠른 훈련이 가능하다. Figure1을 보면 4개의 ReLU를 이용한 4개의 CNN계층만으로도 CIFAR-10 데이터에 대해 6번 에포크만에 25%의 에러율을 달성하였다.

Figure1. 4개의 CNN계층을 가진 신경망에서 ReLU(실선)를 이용한 경우가 tanh(점선) 을 이용하였을 때 보다 매우 빠르게 25%의 에러율에 도달하였다.

CNN모델에서 전통적으로 쓰인 방법을 바꾸려고 한것은 우리가 처음이 아니다. Jarrett은 Caltech-101 데이터셋에 대해 local average pooling으로 정규화 했을 경우 f(x) = |tanh(x)| 가 부분적으로 효과적이였다고 주장했다. 그러나 그들은ReLU를 사용했을 때 훈련시간이 빨라졌다기 보다는 과대적합을 방지하는 것이 목적이였기 때문에 우리와는 조금 다른 측면이였다. 빠른 학습은 큰 모델과 많은 데이터셋에서 매우 효과적이다.

 

3.2 Training on Multiple GPUs

하나의 GTX580 GPU는 3GB의 메모리만 갖기 때문에 120만개의 샘플을 가진 신경망을 학습시키기에 벅차다. 그렇기에 우리는 2개의 GPU를 사용하였다. 현재의 GPU는 병렬화에 잘 작동하고 주메모리에 접근할 필요 없이 서로의 메모리에서 읽고 쓰기가 가능하다. 우리는 각 GPU에 특정한 layer만 할당함으로써 각각 절반의 뉴런들만을 할당시켰다. 예를 들어 layer3의 입력은 모든 커널의 layer2에서 받지만 layer4의 입력은 같은 GPU에 있는 layer3에서만 입력을 받는다. 이러한 방법은 교차검증에서 문제가 되지만 방대한 양의 계산이 가능하게 되었다.

 

결론적으로 우리의 신경망 구조는 Cire¸san 의 "columnar" CNN 모델과 비슷하지만 우리의 column은 독립적이지 않다. 이런 구조가 에러율을 더욱 낮춰주었고 2개의 GPU를 사용하여 훈련시간을 축소시켰다.

 

3.3 Local Response Normalization

ReLU는 saturating을 막기위해 입력을 정규화할 필요가 없다. 적어도 몇개의 샘플에서 양수의 입력이 들어오면 그 뉴런은 활성화 될 것이다. 그러나 우리는 아래의 local normalization가 일반화를 일으키는 것을 발견했다.

수학적인 부분이라 해석이 어렵네요 ㅜ

이러한 방법은 Jarrett의 정규화 방법과 비슷하지만 우리는 평균을 빼지 않았기 때문에 "brightness normalization"이라고 부르는 것이 더 정확하다. 우리는 이를 통해 top-1 / top-5 에러율 1.4% / 1.2% 를 달성했으며 CIFAR-10 데이터셋에 대해 비정규화 13%, 정규화 11%의 에러율을 달성했다.

 

3.4 Overlapping Pooling

풀링계층은 같은 커널맵내의 인접한 뉴런들을 압축하여 출력을 내보낸다. 전통적으로 인접한 뉴런들은 중복되지 않게 풀링계층을 통과시킨다. 정확하게 말하면 s픽셀단위로 이루어진 풀링 그리드가 중심에서 z x z 크기의 인접 뉴런들을 요약합니다. 만약 s = z 으로 설정한다면 CNN의 전통적인 풀링방식이 됩니다. 하지만 우리는 s = 2, z = 3으로 s<z이되게 설정하여 풀링되는 뉴런들의 중복을 허용하였습니다. 이 방법은 s=2, z=2 였을 때보다 top-1/top-5 에서 각 0.4%/0.3만큼의 에러율을 낮추었습니다. 또한 일반적으로 이러한 방법이 과대적합되기 더욱 어렵다는것도 발견했습니다.

 

3.5 Overall Architecture

이제 우리의 전체적인 CNN모델을 설명드리겠습니다. 신경망은 5개의 합성곱계층과 3개의 완전연결계층을 포함한 총 8개의 계층으로 구성됩니다. 마지막 softmax 계층은 1000개의 클래스를 구별하기 위해 1000-way로 구성하였습니다. 우리의 신경망은 다항 로지스틱회귀 목표를 극대화하는 이는 올바른 레이블에 대한 예측분포에서 로그 확률에 대한 훈련케이스의 평균을 최대화 하는것과 같다.

 

2, 4, 5번째 합성곱 계층의 커널은 오직 같은 GPU에 있는 이전 계층의 커널만 연결된다. 3번째 계층은 모든 2번째 계층과 연결된다. 완전연결계층의 뉴런들 또한 이전계층의 모든 뉴런들과 연결된다. response-normalization 계층은 1, 2번째 계층뒤에 따르고, 3.4절에서 설명한 풀링계층은 response-normalization과 5번째 계층뒤에 따른다. 비선형적 ReLU는 모든 합성곱, 완전연결계층의 출력에 적용된다. (Figure2 참고)

Figure2. 우리의 CNN모델의 전체적인 구조이다. 두 GPU간의 할당된 계층을 명확하게 보여준다. 하나는 위쪽의 작업을 담당하고 나머지 하나는 아래쪽을 담당한다. GPU는 특정한 계층에서만 통신한다. 신경망의 입력은 150, 528차원이고, 나머지 네트워크들의 뉴런은 253, 440-186, 624-64, 896-64, 896-43, 264-4096-4096-1000 이다.

 

첫번째 합성곱 계층은 224 X 224 X 3 의 이미지 데이터를 입력으로 받아 stride=4, 11 X 11 X 3 크기의 96개의 커널을 출력한다. 두번째 합성곱 계층은 (response-normalization과 풀링계층을 통과한) 첫번째 합성곱 계층을 입력으로 받아 5 X 5 X 48 크기의 256개의 커널을 출력한다. 3, 4, 5번째 합성곱 계층은 풀링계층이나 정규화 없이 서로 연결된다. 3번째 합성곱 계층은 (정규화, 풀링을 통과한) 2번째 계층을 입력으로 받아 3 X 3 X 256 크기의 384개의 커널을 출력하고, 

4번째 계층은 3 X 3 X 192 크기의 384개 커널, 5번째 계층은 3 X 3 X 192 크기의 256개의 커널로 이루어져있다. 각각의 완전연결계층은 4096개의 뉴런들로 구성되어있다.

 

 

4. Reducing Overfitting

우리 신경망은 6천만개의 파라미터로 이루어져 있다. 1000개의 클래스를 가진 ILSVRC는 각각의 훈련샘플들을 레이블링 하는데 10비트의 제약이 있지만 상당한 과적합 없이 수많은 파라미터를 학습시키기엔 어려움이 있었다. 아래에서 과적합을 막은 2가지 방법을 소개하겠다.

 

 

4.1 Data Augmentation

이미지 데이터에 대해 과적합을 막기 위한 쉽고 가장 흔한 방법은 라벨-보존 변환을 이용하여 데이터셋을 늘리는 것이다. 우리는 두가지 방법으로 데이터를 증강시켰는데, 우리는 원본데이터에 아주 약간의 변형을 주어 디스크에 적재할 필요 없이 변환된 이미지를 생성하였다. 우리는 이전 배치에서 GPU가 훈련중일때 Python코드를 이용하여 CPU를 이용해 이미지를 생성하도록 구현하였다. 그렇기 때문에 데이터 증강을 위한 계산비용은 들지 않는다.

 

데이터 증강의 첫번째 방법은 image translations 과 horizontal reflections 이다. 우리는 256 X 256 크기의 이미지에서 랜덤하게 224 X 224 크기의 데이터를 추출하고(또한 이것의 horizontal reflections도 같이) 이를 훈련시켰다. 이로 인해 훈련샘플들은 당연하게도 높은 상호의존성을 보였지만 훈련세트는 2048배나 증가하였다. 하지만 이방법이 아니였다면 우리는 과적합을 막기위해 더 작은 신경망을 만들기 위해 노력했을 것이다. 테스트 시에는 각 모서리 4곳과 가장 중앙의 1곳, horizontal-reflections까지 합한 총 10개로 증강된 이미지의 예측을 softmax계층에서 평균함으로써 예측한다.

 

두번째 방법은 훈련 데이터의 RGB채널의 강도를 바꿈으로써 데이터를 증강시킨다. 구체적으로, 우리는 훈련세트의 RGB값에 대해 PCA를 수행한다. 각 훈련 이미지에, 우리는 평균이 0이고 표준 편차가 0.1인 가우시안값에 비례하는 크기의 랜덤 변수와 이미지에서 발견된 주요 구성요소의 배수를 더한다. 따라서 각 RGB픽셀

에 대하여
를 더한다.

\(p_i\) 와 \(λ_i\) 는 i번째 고유벡터와 RGB픽셀의 3X3 공분산 행렬의 고유값이고 \(a_i\) 는 앞서 언급한 랜덤 변수이다. 각 \(a_i\)는 특정 훈련 이미지가 다시 훈련될때 모든 픽셀에 대해 한번만 그려진다. 이 방법은 원본이미지에 대해 대략적으로 중요한 특성을 뽑아내고 조명의 세기와 색상의 변화에 대해 변하지 않는다. 또한 top-1 에러율을 1%넘게 낮춰주었다.

 

4.2 Dropout

서로 다른 모델의 예측값을 합치는 것은 테스트에러를 줄이는 좋은 방법이다. 하지만 훈련하는데만 수일이 걸리는 큰 신경망에는 매우 비싼 비용이 든다. 하지만 훈련비용은 2배이지만 매우 효과적으로 모델을 합치는 방법이 있다. '드롭아웃'이라고 불리는 이 최신 기술은 각 은닉층의 뉴런들을 0.5의 확률로 0을 출력하게 한다. '드롭아웃' 된 뉴런들은 순전파와 역전파에 모두 관여하지 않는다. 그러므로 신경망에 입력값이 전달될때마다 다른 구조를 띄지만 동일한 weight를 공유한다. 이 기술은 특정 뉴런이 다른 뉴런에 의존할수 없기 때문에 뉴런들의 복잡한 공동적응(가중치조절을 뜻하는듯 합니다...?)을 감소시켜준다. 그렇기 때문에 생겨난 많은 뉴런들의 결합 집합들로부터 특성을 학습하는데 초점을 맞출 수 있다. 테스트 시에 우리는 출력된 뉴런들에 50%만 사용하였는데, 이는 많은 드롭아웃 네트워크에 의해 생성된 예측 분포의 기하학적 평균을 취하는 것에 대한 합리적인 근사치이다.

 

5. Details of learning

우리는 batch_size=128, momentum=0.9, weight_decay=0.0005 의 확률적 경사하강법을 이용하였다. 우리는 작은 weight_decay를 사용하는 것이 학습에 중요하다는 것을 깨달았다. 이는 weight_decay가 단순히 규제 작용을 할 뿐만 아니라 모델의 훈련에러도 줄여주었다.

가중치 w에 대해 다음과 같이 업데이트 되는데,

가중치 w에 대한 업데이트

i는 반복횟수를 뜻하고, v는 모멘텀 변수, \(\epsilon\)은 학습률,

는 \(w_i\)에서 계산된 목적 도함수 w 에 대하여 i번째 배치의 평균인 \(D_i\)를 뜻한다.

우리는 각 layer에 대해 평균이 0이고 표준편차가 0.01인 가우시안 분포로 가중치를 초기화 하였다. 우리는 2,4,5번째 합성곱 계층과 완전연결계층의 편향(biases)을 상수 1로 초기화 했다. 이는 ReLU에 양수의 입력을 주어 초기단계의 학습을 가속시켜준다. 나머지 계층의 편향은 모두 0으로 초기화 하였다.

 

우리는 모든 계층에서 동일한 학습률을 적용하였고 훈련내내 수동으로 조정하였다. 우리는 검증 에러가 현재 학습률에서 더 나아지지 않을 때 학습률을 10으로 나누는 휴리스틱을 따랐다. 학습률은 0.01로 시작하여 종료되기까지 3회 감소하였다. 우리는 2개의 NVIDIA GTX 580 3GB GPUs 를 이용하여 5~6일에 걸쳐 120만개의 이미지를 90epoch정도 학습시켰다.

 

6. Results

ILSVRC-2010에 대한 결과는 다음과 같다.

Table 1: ILSVRC-2010의 테스트 세트에 대한 결과, 이탤릭체(기울어진 글꼴)은 다른 팀의 결과이다.

우리의 신경망은 테스트셋에서 Top-1 37.5%, Top-5 17.0% 의 에러율을 기록하였다. 47.1%, 28.2%를 기록한 팀은 6개의 희소코딩된 모델의 예측을 평균하여 기록을 달성하였고 45.7%, 25.7%의 모델은 2가지 종류의 밀접한 특성을 이용한 Fisher Vectors를 계산하여 2개의 분류기의 예측을 평균하여 기록을 내었다.

 

우리는 ILSVRC-2012에도 참가하였는데 그에 대한 기록은 Table 2 에 나와있다.

Table 2: ILSVRC-2012 대회의 검증, 테스트셋에 대한 결과, 이탤릭체(기울어진 글꼴)은 다른팀의 결과이다. * 표시가 있는 모델은 ImageNet2011의 전체 데이터에 대해 사전학습된 모델이다.

ILSVRC-2012의 테스트셋은 라벨링이 되어있지 않아서 우리가 시도한 모든 모델들의 에러율을 기록하지는 못했다. 이 단락의 마지막 부분에서는 val 과 test의 에러율이 0.1%의 차이를 보이므로 둘을 같은 결과로 사용했다. CNN은 top-5 에러율 18.2%를 기록했다. 비슷한 CNN 5개의 예측을 평균한 모델은 16.4%를 기록했다. ImageNet 2011 Fall 데이터를 분류하기 위해 만든, 풀링계층 이후에 6개의 합성곱 계층을 추가한 CNN 모델을 미세조정(fine-tuning) 시켰을 때 16.6% 에러율을 달성했다. 방금 언급한 미세조정한 모델과 CNN5개의 예측을 평균한 모델을 더해 또다시 예측을 평균하였더니 15.3%의 에러율을 기록하였다. 다양한 종류의 밀접한 특성을 이용하여 Fisher Vectors를 계산하여 여러 분류기의 예측을 평균한 모델은 26.2% 에러율을 기록하며 2위를 달성했다.

 

마지막으로 우리는 10184 클래스, 890만개의 이미지를 가진 ImageNet Fall 2009의 에러율을 발표하겠다. 이 데이터셋에 대해서는 문헌에 따라 데이터의 절반은 훈련에, 절반은 테스트에 사용했다. 공식적인 테스트셋이 없기 때문에 이전 저자들이 사용한 데이터셋과 다르지만 결과에 미치는 영향은 없다. 우리는 위에서 언급한 풀링계층 이후에 6개의 추가적인 합성곱 계층을 이은 모델로 Top-1 67.4%, Top-5 40.9% 에러율을 기록하며, 기존 78.1%, 60.9%의 기록보다 나은 결과를 보였다.

 

6.1 Qualitative Evaluations

Figure3 은 신경망내 2개의 데이터가 연결되는 계층에서의 합성곱 커널을 보여준다.

Figure 3: 224X224X3 의 이미지 입력을 받아 11X11X3 크기의 96개의 커널을 가진 첫번째 합성공계층을 통과한 것이다. 위 48개는 GPU1에서, 아래 48개는 GPU2에서 작동한 것이다.

이 network에서는 다양한 주파수, 방향, 색상들을 학습했다. 섹션 3.5에서 언급한 두개의 GPU간의 제한된 연결을 떠올려보세요. GPU1의 커널은 주로 색깔정보가 없지만 GPU2의 커널은 다양한 색상을 담고있다. 이런 특성은 랜덤한 가중치 초기화와는 무관하게 매 실행마다 발생한다.

 

Figure 4: (왼쪽) 8개의 ILSVRC-2010 테스트 이미지에 대해 우리 모델이 예측한 가장 유력한 5가지 라벨이다. 정답은 각 이미지의 아래에 표시되어 있고 그에 대한 확률도 빨간색 바로 표시되어있다. (오른쪽) 첫번째 열은 ILSVRC-2010의 테스트 이미지이다. 나머지 각 열마다 5개의 이미지는 마지막 은닉계층에서 특성벡터에 대한 유클리드 최소거리를 이용하여 얻은 훈련 이미지이다.

Figure 4의 왼쪽 판넬은 8개의 테스트 이미지에 대해 신경망이 내놓은 Top-5예측을 평가한 지표이다. 심지어 중앙에서 떨어진, 왼쪽에 있는 진드기 조차도 신경망에서 감지할 수 있었다. 대부분의 Top-5 는 일리있는 예측을 보였다. 예를들어 고양이종에 속하는 다른 것들만이 표범의 하위 라벨들로 예측되었다. 때때로는(grille, cherry) 의도된 초점보다는 애매모호성을 띄기도 한다.

 

신경망의 시각적인 지식을 확인하는 또다른 방법은 마지막 4096개의 은닉층에서 이미지에 의해 유도된 특성 활성화이다. 만약 두 이미지가 작은 Euclidean separation으로 특성이 활성화 되었다면, 우리는 신경망이 매우 높은 수준으로 그 둘이 비슷하다고 생각한다. Figure4는 이 방법에 따르면 테스트셋의 5개의 이미지와 6개의 훈련이미지가 매우 비슷하다는 것을 보여준다. 픽셀 수준에서 생각하면, 검색된 훈련 이미지는 첫번째 열의 이미지와 L2에서 비슷하지 않다는 것을 알아라. 예를 들어, 개와 코끼리 사진은 다양한 포즈로 검색됐다.

 

두개의 4096차원에서 실수값 벡터의 유클리드 거리의 유사도를 계산하는 것은 비효율적이지만, 오토인코더를 이용하여 짧은 이진코드로 벡터를 압축하여 훈련하면 효율적일 것이다. 이미지 라벨을 사용하지 않기 때문에 의미상으로 비슷하던 말던 모서리에서의 패턴 유사도를 통해 이미지를 검색하는 경향이 있는 raw 픽셀에 오토인코더를 적용하는 것보다 훨씬 좋은 이미지 검색방법일 것이다.

 

7 Discussion

우리는 순전히 지도학습만으로 크고 넓은 CNN이 엄청난 기록을 깨는 성과를 보였다. 하나의 합성곱계층만 제거해도 결과가 나빠지는것 또한 발견했다. 예를 들어, 중간에 하나의 계층만 제거해도 top-1 에러율이 2%가 나빠진다. 그렇기에 깊이 또한 우리의 결과에 매우 중요하다.

 

요약하면, 라벨이 부착된 데이터의 양을 늘리지 않고 네트워크의 크기를 크게 늘릴 수 있는 충분한 계산 능력을 얻을 수 있을 것으로 예상하더라도 비지도 사전 훈련을 사용하지 않았다. 지금까지 우리의 결과는 네트워크를 더 크게 만들고 더 오래 훈련시킴으로써 개선되었지만 인간의 시각기능을 담당하는 infero-temporal pathway(아래관자피질? 의학용어인듯합니다.)에 비해 많은 노력이 필요하다. 궁극적으로 우리는 정적이거나 일시적인 형태에서 매우 많은 정보를 주는 비디오 시퀀스에서 크고 넓은 CNN을 적용하고 싶다.