논문리뷰

[논문 리뷰] ImageNet Classification with Deep Convolutional Neural Networks(AlexNet)

씨주 2024. 8. 28. 13:15

ImageNet Classification with Deep Convolutional Neural Networks

https://papers.nips.cc/paper_files/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf

 

0. Abstract

저자들은 120만개 고해상도 이미지를 LSVRC-2010 대회에서 1000개의 클래스로 분류했다. 테스트 결과 top-1 and top-5 error rates of 37.5% and 17.0% 성과를 거뒀고 최신 기술보다 나아졌다. 이 신경망은  60 million parameters and 650,000 neurons, five convolutional layers, max-pooling layers, and three fully-connected layers with a final 1000-way softmax로 구성되어 있다. 트레이닝 속도를 빠르게 하기 위해서는 non-saturating neurons와 효율좋은 GPU를 사용했다. 오버피팅 줄이기 위해서 dropout 이라는 정규화 방식을 사용했다. 저자들은 이 모델의 변형본으로 ILSVRC-2012 대회에서 2등이었던 error rate 26.2%와 비교하여 15.3%를 달성했다.

 

1. Introduction

현재 object recognition 접근 방법은 머신러닝을 필수적인 방법으로 사용했다. 수행을 향상시키기 위해 저자들은 대규모 데이터셋, 좋은 모델, 오버피팅을 막기위한 베스트 기술을 사용했다. 현재까지 레이블 데이터셋은 상대적으로 작다. 특히 라벨을 유지하며 증강된 경우(augmentation 된 경우) 간단한 recognition은 이런 작은 데이터셋사이즈로도 풀 수 있다. 

더보기

augmentation 이란? 

데이터셋을 수집하기에는 비용, 시간적으로 큰 부담이 된다.

이를 해결 하기 위해 데이터셋을 여러가지 방법으로 증강(augment)시켜 규모를 키우는 방법

 

데이터가 많아진다는 것은 과적합을 줄일 수 있다는 것을 의미하기도 함

데이터셋과 실제 입력값이 다를 경우 augmentation을 통해 입력값과 비슷한 분포를 만들어 낼 수 있다.

 

ex) 색상필터(Gray scale, Saturation, Brightness), 상하좌우 대칭(Flipping), 반전, 회전(Rotation), 확대(Center Crop)

 

참고 : https://velog.io/@xpelqpdj0422/3.-%EC%9E%98-%EB%A7%8C%EB%93%A0-Augmentation-%EC%9D%B4%EB%AF%B8%EC%A7%80-100%EC%9E%A5-%EC%95%88-%EB%B6%80%EB%9F%BD%EB%8B%A4

예를 들어 현재 가장 좋은 오차율 MNIST 숫자인식은 인간의 수행과 흡사하다. 그러나 현실에서는 객체가 상당한 변동성을 보여주므로 그들을 인식하기 위해서는 더 큰 학습셋이 필요하다. 실제로, 작은 이미지데이터셋의 단점은 널리 인식되고 있지만, 최근에서야 수백만개의 이미지로 레이블이 지정된 데이터 세트를 수집하는 것이 가능해졌다. 새로운 데이터셋에는 수십만개의 fully-segmented image로 구성된 LabelMe와 2200개 이상의 카테고리와 1500만 개 이상의 고해상도 이미지로 구성된 ImageNet이 포함된다.

 

수백만개의 이미지로부터 수천개의 객체를 학습시키기 위해서는 큰 학습 능력을 가진 모델이 필요하다. 그러나 object recognition의 엄청난 복잡성은 ImageNet처럼 큰 데이터셋으로도 명시할 수 없다. 그래서 모델은 저자들이 가지고 있지 않은 데이터에 대해서 보충해줄만한 사전 지식이 필요하다. CNN(Convolutional neural networks)은 이러한 모델들 중 하나이다. 그들의 능력은 그들의 depth, breadth를 변경함으로써 제어하고 이미지에 대해서 정확한 가정을 만들어낸다. 그래서 feedforward neural networks와 비교하여 CNNs는 이론적으로 성능이 약간 나빠질 수 있지만 훨씬 적은 connection과 parameter를 가지고 있어 학습시키기 쉽다. 

 

CNNs의 매력적인 부분과 아키텍처의 효율성에도 불구하고 고해상도의 큰 이미지에서는 적용시키기 버겁다. 다행히도 현재 GPU는 많은 레이블 예시를 가지고 있는 ImageNet같은 최근 데이터셋도 CNNs를 학습시키기에 충분하다.

 

이 paper로 기여한 바는 다음과 같다. 저자들은 ImageNet같은 큰 데이터셋으로 학습시킨 CNNs로 ILSVRC-2010 and ILSVRC-2012에서 좋은 성적을 거뒀다. 2D convolution의 Highly optimized GPU와 CNN을 학습시키기 위한 operation을 공개했다.

더보기

이 신경망은 수행능력을 향상시키고 학습시간을 줄이는 새롭고 일반적이지 않은 요소들이 포함되어 있다. 신경망 사이즈가 오버피팅을 유발하므로 오버피팅을 막기 위해 여러가지 기술을 접목시켰다. 최종 네트워크는 five convolutional and three fully-connected layers 를 포함한다. convolutional layer 중 어떤 layer를 제거해도 성능이 떨어진다. 끝으로 네트워크 사이즈는 현재 GPU의 메모리와 학습시간에 제한적이다. 네트워크는 two GTX 580 3GB GPUs 기준 5~6일 정도 소요된다. 빠른 GPU와 더 큰 데이터셋이 나옴에 따라 결과가 향상될 것이다.

 

2. The Dataset

ImageNet은 22000카테고리 1500만개 이상의 레이블된 고해상도사진 데이터셋이다. 이미지들은 웹과 아마존의 Mechanical Turk crowd-sourcing tool을 이용하여 사람이 직접 레이블하여 모았다. 2010년부터 Pascal Visual Object Challenge(ImageNet Large-Scale Visual Recognition Challenge (ILSVRC))가 년마다 개최되고 있다. ILSVRC는 1000개의 이미지, 1000개의 카테고리로 구성된 ImageNet을 사용한다. 통합적으로 대략 1200만개의 학습이미지, 50000개의 검증 이미지, 150000개의 테스트 데이터로 구성되어 있다. 

ILSVRC-2010은 test set 레이블만 가능한 ILSVRC의 유일한 버전이기에 본 실험에서 많이 사용한 버전이다. 저자들의 모델로 ILSVRC-2012 대회에 참여한 이후로 레이블을 사용할 수 없는 이 버전의 데이터 세트에 대한 결과도 Section6에서 기록했다. ImageNet에서 2가지 에러를 기록하는 것이 관례이다. top-1 and top-5 (top-5오차율은 5개의 레이블 중 올바른 레이블이 없는 테스트 이미지의 비율이다.)

ImageNet은 시스템에 필요한 일정한 입력 차원의 다양한 해상도 이미지로 구성되어 있다. 그래서 저자들은 256 * 256 고정된 해상도 이미지를 down-sample 했다. 사각형의 이미지가 주어지면 저자들은 먼저 가장 짧은 면을 256로 rescale하고 중앙의 256*256패치를 뽑아냈다. training set의 각 픽셀에 평균을 빼는 작업을 제외하고 전처리를 하지 않았다. 그래서 저자들은 픽셀의 RGC값을 가지고 네트워크를 학습시켰다.

 

3. The Architecture

아키텍처는 eight learned layers — five convolutional and three fully-connected를 포함한다. 

3.1 ReLU Nonlinearity

입력 x의 Neuron 출력 f를 모델링하는 표준적인 방법은 f(x) = tanh(x) or f(x) = (1 + e^ −x )^ −1 이다. gradient descent를 이용한 학습시간 관점에서 saturating 비선형은 non-saturating 비선형(f(x) = max(0, x))보다 느리다. Nair와 Hinton에 따라 ReLUs라는 비선형방법을 가지고 뉴런들을 참조했다. ReLUs를 이용한 Deep CNNs는 tanh보다 빠르다. CIFAR-10 dataset for a particular four-layer convolutional network에서 25% 학습에러를 위해 필요로 하는 반복횟수를 Figure 1 에서 볼 수 있다. 고전적인 saturating 뉴런모델로는 이러한 큰 신경망 실험을 할 수 없다는 것을 보여준다.

CNNs의 대안책으로 고전적인 뉴런모델을 첫 번째로 고려한 건 아니다. 예를 들어 Jarrettet al.는 비선형 f(x) = |tanh(x)| 은 특히 Caltech-101 데이터셋에서 local average pooling에 따라오는 contrast normalization 타입에서 잘 동작한다고 주장했다. 그러나 이 데이터셋에서 주요 고민은 오버피팅을 예방하는 것이고 저자들이 관찰한 효과는 ReLUs를 사용할 때 기록한 학습 세트에 맞게 가속하는 능력이기에 차이가 있다. 빨리 학습하는 것은 큰 데이터셋에서 큰 모델의 수행능력에 좋은 영향을 가진다.

 

3.2 Training on Multiple GPUs

single GTX 580 GPU는 네트워크를 학습시킬 수 있는 최대사이즈를 제한하는 3GB 메모리를 가진다. 120만개의 학습예시들은 하나의 GPU로 학습시키기에 너무 큰 네트워크를 학습시키는데 충분하다는 것이 밝혀졌다. 그래서 저자들은 2개의 GPU로 나눴다. host machine memory없이 각각의 메모리가 직접적으로 읽고, 쓰고 하면 되기 때문에 현재 GPU들은 GPU간 병렬처리를 하는 것이 적합하다. 병렬처리 방법은 각각의 GPU들에 커널을 반으로 나누어 할당하고 1개의 트릭을 추가적으로 두는 것이다. GPU들은 특정 레이어만 소통한다. 예를 들어 lay3의 커널은 lay2의 모든 커널맵들을 통해 input을 받는다. 그러나 layer4의 커널은 같은 GPU에 있는 layer3의 커널에서만 input을 받는다. 연결패턴을 선택하는 것은 cross-validation(교차검증) 문제이지만 이는 계산 양의 비율이 수용가능할 때까지 정확하게 소통할 양을 튜닝하게 해준다.

결과 아키텍처는 저자들의 columns가 독립적이지 않다는 것을 제외하고 Ciresanet al에 의해 제시된 CNN columnar과 흡사하다. 이 스키마는 각각의 합성레이어들의 커널수가 절반인 네트를 하나의 GPU로 학습한 것과 비교하여 top-1 and top-5 오차율을 1.7%, 1.2% 줄여준다. 2개의 GPU net는 1개의 GPU net보다 학습시간이 적게 걸린다.

 

3.3 Local Response Normalization

ReLUs는 saturating을 막기 위해 input normalization(정규화)이 필요없는 가치있는 특성을 가지고 있다. 적어도 일부의 학습예시들이 ReLU에서 긍정적인 입력을 만든다면, 학습은 neuron에서 이루어질 것이다. 그러나 저자들은 local normalization scheme가 일반화를 돕는다는 것을 찾았다. (x, y)의 위치에서 커널 i와 ReLU 비선형화를 채택함으로써 뉴런의 활동을 계산하는 것을 a^i_x, y로 보여준다. b^i_x, y 정규화 활동은 sum은 인접한 n개의 커널 맵에서 실행되며 N은 레이어의 커널 총합인 아래의 표현과 같다.

커널맵의 순서는 임의적이며 학습 시작하기 전에 결정된다. 이런 종류의 response 정규화는 lateral inhibition형태를 구현한 것으로 다른 커널에서 계산되는 ouput 뉴런간의 경쟁을 유발한다. s k, n, α, β는 validation set을 사용하며 결정된 값인 하이퍼파라미터이다. 저자들은 k = 2, n = 5, α = 10−4, β = 0.75를 사용했다. 저자들은 특정 레이어에서 ReLU를 적용한 후 해당 정규화를 적용하였다. 이 스키마는 Jarrett et al의 local contrast 정규화와 흡사하다. 그러나 저자들은 mean activity를 제거하지 않았기 때문에 brightness normalization으로 정의한다. response normalization은 top-1, top-5 오차율을 1.4%. 1.2% 감소시킨다. 저자들은 또한 CIFAR-10 데이터셋에서 해당 스키마를 효율성을 증명하였다. 4 layer CNN은 정규화 없이 13% test error, 정규화 후 11% test error를 성취하였다.

 

3.4 Overlapping Pooling

CNN에서 Pooling 레이어는 같은 커널맵 내의 이웃한 뉴런 그룹의 output을 요약한 것이다. 전통적으로, 인접한 pooling unit으로 요약된 이웃들은 overlap되지 않는다. 더 정확하게 하기 위해 pooling layer는 s 픽셀만큼 이격한 pooling 유닛 그리드로 구성되며, 각각은 pooling unit을 중심으로 z*z 사이즈로 요약된 이웃들이라고 생각할 수 있다. s = z로 설정한다면, 저자들은 CNN에서 흔히 사용하는 전통적인 local pooling을 얻을 수 있다. s < z라면, 저자들은 overlapping pooling을 얻을 수 있다. 이는 s = 2, z = 3 저자들의 네트워크를 통해 사용한 수치와 같다. 해당 스키마는 동등한 차원의 output으로 생성한 overlapping되지 않는 s=2, z=2 스키마와 비교하여 top-1, top-5 오차율을 0.4%, 0.3% 감소시킨다. 저자들은 일반적으로 학습동안 overlapping pooling한 모델이 overfit이 되지 않는다는 것을 확인하였다.

 

3.5 Overall Architecture

Figure 2에 묘사된 것처럼 네트워크는 가중치를 가진 5개의 convolutional, 3개의 fully connected로 8 layer를 포함한다. 최근 fully-connected layer 출력은 1000개 클래스 라벨의 분포로 구성된 1000-way softmax가 적용된다. 네트워크는 다차원 로지스틱회귀의 목적인 예측분포 하에 올바른 레이블의 로그 확률에 대한 학습 케이스 평균을 최대화하는 것이다.

2, 4, 5번째 convolutional layer의 커널은 같은 GPU내의 이전 layer인 그들의 커널과만 연결되어 있다. fully-connected 레이어의 뉴런들은 이전의 layer에 있는 모든 뉴런과 연결되어 있다. Response-normalization 레이어들은 1, 2번째 convolutional layer의 뒤를 따른다. 3, 4세션에 묘사되어있는 Max-pooling layer들은 5번째 convolutional layer와 같이 esponse-normalization layer의 뒤를 따른다. ReLU는 모든 convolutional and fully-connected layer의 ouput에 적용된다.

1번째 convolutional 레이어는 224*224*3 input 이미지를 11*11*3 사이즈 4픽셀 stride의 96커널로 필터링한다. (stride는 커널맵 내의 이웃한 뉴런의 receptive field의 중심들 사이의 거리이다.)

2번째 convolutional layer는 첫번째 convolutional layer의 출력값을 입력값으로 받아 5*5*48의 256개 커널로 필터링한다. 3, 4, 5번째 convolutional layer들은 intervening pooling 이나 normalizaition layer없이 서로 연결된다.

3번째 convolutional layer는 2번째 convolutional layer의 출력값과 연결된 3*3*245의 384개 커널을 가진다. 4번째 convolutional layer는 3*3*192의 384개 커널, 5번째 convolutional layer는 3*3*192dml 256개 커널을 가진다. fully-connected layer는 4096개의 뉴런을 가진다.

 

4. Reducing Overfitting

뉴런 네트워크 아키텍처는 6천만개의 파라미터를 가진다. ILSVRC 1000개의 클래스가 각각 학습 example가 이미지의 라벨로부터의 mapping에 10bit의 제약이 되지만, overfitting없이 많은 파라미터를 학습하기에 불충분한 것으로 밝혀졌다. 아래, 저자들이 overfitting을 방지하기 위한 2가지 주요한 방법을 설명한다.

 

4.1 Data Augmentation

이미지데이터의 overfitting을 줄이기 위한 가장 쉽고 흔한 방법은 인위적으로 label-preserving transformation을 이용하여 데이터셋을 늘리는 것이다. 저자들은 거의 계산을 하지 않고 원래의 이미지에서 생성된 transformed 이미지, 그래서 transformed 이미지가 디스크에 저장될 필요가 없는 두개의 data augmentation 형태를 사용했다. 저자들의 구현에서 transformed 이미지들은 GPU는 이전의 image batch를 학습하는 동안 CPU에서 python 코드로 생성되었다. 그래서 이 data augmentation schemes는 사실상 계산적으로 자유롭다.

1번째 data augmentation 형태는 이미지 변환 및 수평반사로 구성된다. 저자들은 이것을 256*256 이미지에서 무작위의 224*224 patch를 추출하고 이 patch들을 네트워크에 학습시킨다. 2048배 증가시킨 학습셋은 결과적으로 매우 상호의존적이다. 이러한 scheme없었다면 네트워크는 overfitting으로 인해 더 작은 네트워크를 사용할 수 밖에 없었을 것이다. 테스트 당시 네트워크는 5개의 224*224 patch들과 수평반사를 추출하고 10개의 patch로부터 네트워크의 softmax layer로부터 만들어진 예측을 평균화함으로써 예측하였다.

2번째 data augmentation형태는 학습데이터에서 RGB채널의 강도를 변환하여 구성한다. 특히 저자들은 ImageNet 학습셋에서 RGB 픽셀값에 대해 PCA로 수행하였다. 각각의 학습이미지의 고유값에 비례하는 크기와 평균 0, 표준편차 0.1의 가우시안에서 추출한 랜덤변수를 사용하여 찾은 주성분의 배수를 추가한다. 그래서 각 RGB 이미지 픽셀에 아래와 같은 양을 추가한다.

pi와 λi는 각각 RGB 픽셀값의 3*3 covariance matrix의 고유벡터 및 고유값이고 αi는 랜덤변수이다. 각 αi는 특정 학습 이미지의 모든 픽셀에 대해 한번만 그려지고, 해당 이미지가 다시 훈련에 사용될 때까지 그려진다. 이 scheme은 natural image의 중요한 속성, object identity가 조명의 강도, 색상 변화에 변하지 않는다는 것을 이용한다. 이 scheme는 top-1 error rate를 1% 이상 줄였다.

 

4.2 Dropout

많은 다른 모델들의 예측을 합치는 것은 test error를 줄이는 성공적인 방법이지만 며칠을 학습시키는 큰 neural network를 위해 큰 비용을 지불해야 한다. 그러나 학습시키는 동안 2배의 비용만 드는 효율적인 model combination 버전이 있다. dropout이라고 불리는 최근에 발표된 기술은 0.5의 확률로 각각의 hidden neuron의 출력값을 설정한다. 이러한 방식으로 dropped out한 neuron들은 forward pass에 기여되지 않고 back propagation에 참여하지 않는다.

더보기

따라서 입력값이 제시될 때마다 뉴런 네트워크는 다른 아키텍처를 샘플링하지만 모든 아키텍처는 가중치를 공유한다. 이 기술은 뉴런이 특정 다른 뉴런의 존재에 의존하지 않기 때문에 뉴런의 공동적응의 복잡성을 줄인다. 따라서 다른 뉴런의 다양한 랜덤 subset과 함께 유용한 더 많은 robust 요소들을 배워야 한다. 테스트 당시, 저자들은 모든 뉴런을 사용했지만 출력에 0.5을 곱하였는데, 이는 지수함수적으로 많은 dropout 네트워크로 인해 생성된 예측가능한 분배의 기하학적 평균을 수행하는 것에 대한 합리적인 근사치이다.

저자들은 Figure 2의 첫번째 2개의 fully-connected layer에 dropout을 사용하였다. dropout없이, 저자들의 네트워크는 상당한 overfitting을 보인다. dropout은 대략 수렴에 필요한 반복횟수를 2배로 증가시킨다. 

 

5. Details of learning

저자들은 128개의 예시로 batch size, 0.9 momentum, 0.0005 weight decay로 확률적 경사 하강법을 사용한 모델을 학습시켰다. 저자들은 작은 양의 weight decay가 모델의 학습에 중요하다는 것을 찾았다. 다시 말해, weight decay는 단순한 정규화가 아니다. 이것은 모델의 학습률을 낮춘다. 

i는 iteration index, v는 momentum variable, E는 학습률, 미분값은 wi에서 평가된 w에 대한 목적의 파생물의 i번째 batch Di의 평균값이다.

저자들은 표준편차가 0.01인 가우시안 분포의 zero-mean으로부터 각각의 layer의 가중치를 초기화했다. 저자들은 2, 4, 5번째 convolutional layer의 뉴런 bias와 fully-connected hidden layer을 상수 1로 초기화했다. 이 초기화는 ReLu에 positive input을 제공함으로써 학습의 초기단계를 가속화한다. 남은 layer의 뉴런 bias를 상수 0으로 초기화했다.

모든 layer에서 동등한 학습률을 사용했으며, 학습 전반에 걸쳐 수동으로 조절했다. 저자들이 따랐던 heuristic은 validation error rate가 현재의 학습률에서 향상되지 않을 때 학습률을 10으로 나눈다. 학습률은 처음에는 0.01이고 종료 전에 3번 감소한다. 저자들은 120만개의 이미지로 구성된 학습셋을 통해 대략 90싸이클의 네트워크를 학습했으며, 2개의 NVDIA GTX 580 3GB GPU로 5~6일 소요되었다.  

 

6. Results

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

top-1, top-5 test set 오차률은 37.5%, 17%이다. ILSVRC-2010에서 가장 좋은 성능은 다른 기능에 대해 학습시킨 6개의 sparse-coding 모델으로부터 생성된 예측들의 평균값으로 접근한 47.1%, 28.2%였다. 그 후 발표된 가장 좋은 결과는 2개의 타입에 대해 조밀하게 샘플링된 특징들로부터 계산된 Fisher Vectors(FVs)로 학습시킨 2개의 classifiers의 예측값의 평균값으로 접근한 45.7%, 25.7%였다.

또한 저자들은 ILSVRC-2012에서 저자들의 모델로 참가하였고, 결과는 Table 2와 같다.

ILSVRC-2012의 test set label은 공식적으로 사용할 수 없기 때문에, 저자들은 저자들이 시도한 모든 모델에 대해 test 오차률을 보고할 수 없었다. 이 단락의 나머지에서는 저자들은 validation, test 오차률을 교환하여 사용하였는데 이 값이 0.1% 이상 다르지 않기 때문이다. CNN은 top-5 오차률에서 18.2%로 나타났다. 5개의 비슷한 CNN의 예측을 평균하면 오차률은 16.4%로 나타난다. 마지막 pooling layer에 추가 6번째 convolutional layer를 가진 CNN을 학습시켜 ImageNet Fall 2011 release(15M image, 22K categories)를 분류한 다음 이거를 ILSVRC-2012에서 fine-tuning하면 오차률 16.6%로 나타난다. 언급한 5개 CNN으로 Fall 2011 release로 pre-train한 2개 CNN의 예측값의 평균값은 15.3%로 나타난다. 2번째로 좋은 대회의 성취는 오차률 26.2%이며, 밀도있게 샘플링된 다른 타입들로부터 계산된 FVs로 학습시킨 여러가지 classifier의 예측값의 평균이다. 최종적으로 Fall 2009버전의 10184 categories, 8.9M image ImageNet에서 오차률을 보고했다. 이 데이터셋에서 저자들은 학습을 위핸 이미지 반을 사용하였고 테스트를 위해 반을 사용하였다. 테스트셋이 없기 때문에 이전의 저자가 나눈 것과 현 저자들이 나눈 것은 다르지만 결과의 정확성엔 영향을 끼치지 않는다. 이 데이터셋의 top-1, top5 오차률은 67.4%, 40.9%이고, 마지막 pooling layer에 6번째 convolutional layer를 추가한 방식이다. 이 데이터셋의 공식적인 best 결과는 78.1%, 60.9%이다.

 

6.1 Qualitative Evaluations

Figure3은 convolutional 커널은 2개의 data connected layer 네트워크로부터 배운다는 것을 보여준다. 

네트워크는 다양한 frequency와 orientation selective한 커널과 다양한 색상의 blob를 배운다. Section 3.5에서 설명한 제한된 연결성으로부터 온 결과인 2개의 GPU에서 보여준 특별함을 기억해라. GPU 1의 커널은 color-agnostic(색상에 구애받지 않는)이고 GPU 2의 커널은 color-specific(색상에 구애받는)이다. 이러한 전문성은 모든 수행 중에 나타나고 특정한 랜덤 가중치 초기치에 독립적이다. 

Figure 4의 왼쪽 panel은 네트워크가 8개의 test이미지에서 top-5 예측값을 계산하여 네트워크가 학습한 것을 평가한다. 왼쪽 상단에 있는 mite(진드기)와 같은 off-center객체까지 네트워크에 의해 인지된다는 것을 기억하라. 대부분의 top-5 라벨은 합리적인 것으로 보인다. 예를 들어 고양이의 다른 타입은 laopard(표범)와 같은 그럴듯한 라벨로 고려된다. 몇몇의 경우(grille, cherry), 사진의 의도된 초점에 대해 모호하다.

네트워크의 시각적인 지식을 조사하는 다른 방법은 4096 dimensinal hidden layer에서 이미지로부터 유도된 요소들의 활성치를 고려하는 것이다. 2개의 이미지가 small Euclidean separation가 작은 특징 활성치 벡터를 생성하면, 뉴런 네트워크의 높은 레벨이 유사한 것으로 간주한다. Figure 4는 이 방법으로부터 테스트셋의 5개 이미지와 학습셋의 6개 이미지 각각 유사한 이미지를 보여준다. 픽셀 레벨에서 검색된 학습 이미지들은 일반적으로 1번째 column의 쿼리이미지와 L2가 근접하지 않다는 것을 인지해라. 예를 들어, 학습된 강아지와 코끼리는 다양한 pose로 나타난다. 이 결과는 supplementary material에서 많은 테스트 이미지에 대한 결과로 나타난다.

2개의 4096 dimensional 실수값 벡터 사이의 Euclidean 거리를 사용하여 유사성을 계산하는 것은 비효율적이지만 short binary codes로 벡터들을 압축하도록 자동 인코더를 학습시킴으로써 효율적이게 만들 수 있다. 이미지라벨을 사용하지 않고 의미적으로 유사한지에 관계없이 유사한 패턴의 엣지를 가진 이미지를 검색하는 경향이 있는 raw pixel로 자동 인코더를 적용하는 것보다 더 나은 이미지 검색방법을 생성할 수 있다.

 

7. Discussion

large deep convolutional 뉴런 네트워크는 매우 challenging한 데이터셋에서 purely supervised learning을 사용함으로써  기록적인 결과를 달성할 수 있다는 것을 보여준다. single convolutional layer를 제거한다면 네트워크의 수행이 저하된다는 것이 눈에 띈다. 예를 들어 어떤 middle layer 제거한 결과는 네트워크의 top-1 수행에서 2%의 loss를 발생시킨다. 그래서 depth는 논문의 결과를 성취하기 위해 중요하다. 

실험을 단순화하기 위해, 저자들은 특히 많은 양의 라벨 데이터를 증가시키지 않고 네트워크의 사이즈가 증가되는 충분한 계산능력을 얻는 경우 도움이 될 것이라고 예상함에도 어떠한 unsupervised pretraining을 사용하지 않았다. 그래서 인간의 시각시스템의 시간 내 경로를 일치하기 위해 여전히 많은 규모가 필요하지만 네트워크를 크게 만들고 길게 학습시킴에 따라 결과는 개선되었다. 궁극적으로 시간 구조가 정적인 이미지에서 잃거나 명백하지 않은 효과적인 정보를 제공하는 비디오에서 large, deep convolutional을 사용하면 좋을 것으로 보인다.