논문 정보
저자:
- Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton
소속:
- University of Toronto
인용:
- 2024.06.21 기준 129982
논문 업데이트 내역
- 게시 : 2012.12 (NIPS 2012)
논문 & Github 링크
논문
- github의 경우 이전 논문이라 공식적인것은 없음 (구현의 경우 https://github.com/dansuh17/alexnet-pytorch/tree/d0c1b1c52296ffcbecfbf5b17e1d1685b4ca6744 참고)
Abstract
120만개의 고해상도 이미지를 1,000개 클래스에 분류하는 'large, Deep Convolutional Neural Network' 훈련
ILSVRC-2010 테스트 데이터에서 top-1 오차율 37.5%, top-5 오차율 17.0% 달성
ILSVRC-2012 대회에서 top-5 테스트 오차율 15.3% 달성 (2위의 경우 26.2%)
신경망 구조의 경우
- 6천만 개의 매개변수와 65만 개의 뉴런
- 다섯 개의 convolutional layers (일부는 max-pooling layers 포함)
- 세 개의 fully-connected layers (최종적으로 1,000-way softmax)
훈련 가속을 위해 non-saturating neurons 및 매우 효율적인 GPU 기반 convolution 연산 사용
fully-connected layers에서 과적합 감소를 위해 'Dropout' 정규화 방법 사용
1. Introduction
최근까지 라벨이 붙은 이미지 데이터셋은 상대적으로 작아 수만 개의 이미지 정도였다. (NORB, Caltech-101/256, CIFAR-10/100 등).
현실에서는 객체들이 상당한 변동성을 보이기 때문에 더 큰 학습 세트가 필요하다.
최근 대규모 데이터셋(ex) ImageNet)이 등장하며 더 큰 학습 세트로 개개체 인식을 학습할 수 있게 되었다.
수백만 개의 이미지에서 수천 개의 객체를 학습하려면 큰 학습 용량을 가진 모델이 필요하다.
객체 인식 작업의 복잡성 때문에 ImageNet처럼 큰 데이터셋으로도 이 문제를 완전히 규명할 수 없기 때문에 모델에는 많은 사전 지식이 필요하다.
'Convolutional Neural Netoworks (CNN)'는 이미지의 특성에 맞춰 설계된 모델로, 상대적으로 적은 연결과 파라미터를 사용해 효율적으로 학습할 수 있다.
그러나 대규모 고해상도 이미지에 CNN을 적용하기에는 비용이 너무 많이 든다.
다행히 현재의 GPU와 최적화된 2D 컨볼루션 구현 덕분에 큰 CNN 모델을 학습시키는 것이 가능해졌으며, ImageNet과 같은 최근의 데이터셋은 이러한 모델을 심각한 과적합 없이 학습시킬 수 있는 충분한 라벨이 붙은 예시를 포함하고 있다.
ImageNet 하위 집합을 사용하여 대형 CNN 모델을 학습시켜 ILSVRC-2012 및 ILSVRC-2012 대회에서 SOTA 성능
2D 컨볼루션 및 CNN 학습에 필요한 모든 연산을 최적화된 GPU 구현을 작성하여 공개
네트워크 성능 향상 및 학습 시간을 줄이는 몇 가지 새로운 특징 포함, 3장에서 설명
과적합을 방지하기 위한 몇 가지 효과적인 기법 사용, 4장 설명
최종 네트워크는 다섯 개의 Convolution layers와 세 개의 FC를 포함하며, 깊이가 그 성능에 중요한 영향을 미친다.
네트워크 크기는 현재 GPU의 가용 메모리와 학습 시간에 의해 제한된다.
2. Dataset
ImageNet은 약 22,000개 카테고리에 속하는 1,500만 개 이상의 라벨이 붙은 고해상도 이미지들로 구성된 데이터셋
웹에서 수집되었고, Amazon의 Mechanical Turk 크라우드소싱 도구를 사용해 사람들이 라벨링을 했다.
2010년부터 Pascal Visual Object Challenge의 일환으로 매년 ImageNet Large-Scale Visual Recognition Challenge (ILSVRC) 대회가 열린다.
ILSVRC는 약 1,000개 카테고리마다 1,000장 정도의 이미지를 포함하는 ImageNet의 하위 집합을 사용
총 120만 개 학습 이미지, 50,000개 검증 이미지, 150,000개의 테스트 이미지가 있다.
ImageNet에서는 top-1과 top-5 오차율을 확인하는 것이 일반적
top-5 오차율은 모델이 가장 가능성이 높다고 간주한 다섯 개의 라벨 중 올바른 라벨이 포함되지 않은 비율을 의미
ImageNet은 해상도가 다양한 임지ㅣ들로 구성되어 있으며, 시스템은 고정된 입력 차원을 요구한다.
따라서 이미지를 고정된 해상도인 256 x 256 으로 다운샘플링을 진행했다.
직사각형 이미지를 짧은 변의 길이가 256이 되도록 재조정한 후, 중앙 256 x 256 패치를 잘라냈다.
이미지 전처리 과정에서 학습 세트의 각 픽셀 값에서 전체 학습 세트의 평균 픽셀 값을 뺀 것을 제외하고는 추가적인 전처리 과정을 거치지 않았다.
따라서, 네트워크는 이러한 중앙 정렬된 원시 RGB 값의 픽셀을 입력으로 받아 학습하게 된다.
3. The Architecture
네트워크 아키텍처는 그림 2에 나타나있다.
네트워크는 총 여덟 개의 학습된 layer로 구성되어 있으며, 이 중 다섯 개는 합성곱 층, 세 개는 전결합 층이다.
3.1~3.4는 중요도에 따라 정렬되어 있으며, 가장 중요한 것부터 설명한다.
3.1 ReLU Nonlinearity
신경망에서 뉴런의 출력을 모델링하는 전통적인 방법은 입력 $x$에 대한 함수 $f(x)$를 다음과 같이 정의
- $f(x) = tanh(x)$
- $f(x) = (1 + e^{-x})^{-1}$
그러나 이러한 'saturating 비선형성'은 gradient descent를 사용한 학습 시간 측면에서' non-saturating 비선형성'인 $f(x) = max(0, x)$보다 훨씬 느리다.
Nair와 Hinton의 연구를 따라, 이러한 비선형선을 가진 뉴런을 'Rectified Linear Units (ReLUs)'라고 부른다.
ReLU를 사용한 deep convolutional neural networks는 tanh 유닛을 사용한 동등한 네트워크보다 몇 배 더 빠르게 학습된다.
이는 Figure 1에서 볼 수 있는데, 특정 4층 convolutional network가 CIFAR-10 dataset에서 25% 학습 오차에 도달하는 데 필요한 iteration 수를 보여준다.
CNN에서 전통적인 뉴런 모델의 대안을 고려한 것은 우리가 처음이 아니다.
예를 들어, Jarrett 등은 $f(x) = |tanh(x)|$ 비선형성이 그들의 contrast noramlization과 local average pooling 방식과 함께 Caltech-101 dataset에서 특히 잘 작동한다고 주장한다.
그러나 이 dataset에서는 과적합 방지가 주요 관심사이므로, 그들이 주장한 효과는 우리가 ReLU를 사용할 때 보고하는 학습 세트 적합 능력의 가속화와는 다르다.
더 빠른 학습은 대규모 dataset에서 훈련된 대규모 모델의 성능에 큰 영향을 미친다.
Figure 1 설명
ReLU와 tanh 뉴런을 사용한 CNN의 학습 속도 비교
이 그래프는 4층 convolutional nerual network에서 ReLU(실선)와 tanh 뉴런(점선)을 사용했을 때의
삭습 속도 차이를 보여준다.
정리
ReLU의 사용은 학습 속도를 크게 향상시키며, 이는 특히 대규모 모델과 dataset에서 중요하다.
이러한 속도 향상은 더 복잡하고 깊은 네트워크의 실험과 개발을 가능하게 한다.
3.2 Training on Multiple GPUs
대규모 신경망 학습을 위한 다중 GPU 활용 전략
GPU 메모리 제한 문제
- 단일 GTX 580 GPU는 3GB 메모리로 제한되어 있어 학습 가능한 네트워크 크기에 한계가 있다.
- 1.2백만 개의 학습 예제로도 단일 GPU에 맞지 않는 대규모 네트워크를 학습할 수 있다.
다중 GPU 활용 전략
- 네트워크를 두 개의 GPU에 분산시켜 학습한다.
- 현대 GPU는 host 메모리를 거치지 않고 직접 서로의 메모리에 읽고 쓸 수 있어 cross-GPU 병렬화에 적합하다.
병렬화 구조
- 각 GPU에 kernel(또는 neuron)의 절반을 배치
- 특정 layer에서만 GPU 간 통신이 이루어진다.
- ex) layer 3의 kernel은 layer 2의 모든 kernel map에서 입력을 받지만, layer 4의 kernel은 같은 GPU에 있는 layer3의 kernel map에서만 입력을 받는다.
연결 패턴 최적화
- 연결 패턴 선택은 cross-validation 문제
- 통신량을 계산량의 적절한 비율로 조정 가능
구조적 특징
- Cireşan et al.의 "columnar" CNN과 유사하지만, 완전히 독립적이지 않은 column 구조를 가진다 (Figure 2 참조).
성능 향상
- 이 방식으로 top-1 error rate를 1.7%, top-5 error rate를 1.2% 감소시킴
- 비교 대상 : 각 convolutional layer에 절반의 kernel을 가진 단일 GPU 네트워크
학습 시간
- 두 개의 GPU를 사용한 네트워크가 단일 GPU 네트워크보다 약간 더 빠르게 학습된다.
3.3 Local Response Normalization
ReLU의 특성 ReLU(Rectified Linear Unit)는 입력 정규화 없이도 saturating 상태를 방지할 수 있는 장점이 있다.
학습 예제 중 일부가 ReLU에 입력을 제공하면 해당 뉴런에서 학습이 일어남
ReLU와 함께, Local Response Normalization 기법을 도입하면 모델의 일반화 능력을 더욱 향상시킬 수 있다.
정규화 수식 Local Response Normalization
$$b_{x, y}^i=a_{x, y}^i /\left(k+\alpha \sum_{j=\max (0, i-n / 2)}^{\min (N-1, i+n / 2)}\left(a_{x, y}^j\right)^2\right)^\beta$$
- $b^i_{x,y}$ : 응답 정규화된 활성화
- $a^i_{x,y}$ : kernel i를 위치(x,y)에 적용하고 있는 ReLU 비선형성을 적용한 뉴런의 활성화
- $k, alpha, beta, n$: 하이퍼파라미터
- $N$ : 해당 layer의 총 kernel 수
- $k = 2$ : 정규화 식에서 사용되는 상수
- $n = 5$ : 정규화에 포함되는 인점 kernel map의 수
- $alpha = 10^{-4}$ : 정규화 강도를 조절하는 스케일 파라미터
- $beta = 0.75$ : 정규화 효과의 비선형성을 조절하는 지수 파라미터
정규화의 특성화 효과
- 실제 뉴런에서 영감을 받은 lateral inhibition의 형태를 구현
- 서로 다른 kernel을 사용해 계산된 뉴런 출력 간에 큰 활성화에 대한 경쟁을 유도
- 이는 특정 feature에 대한 과도한 반응을 억제, 다양한 feature를 고르게 학습하도록 돕는다.
특정 layer에서 ReLU 비선형성 적용 후 이 정규화를 수행한다.
Jarrett의 local contrast normalization과 유사하지만, 평균 활성화를 빼지 않아, "brightness normalization"이라고 볼 수 있다.
성능 향상
- Top-1 error rate : 1.4% 감소
- Top-5 error rate : 1.2% 감소
- CIFAR-10 dataset 검증
- 4층 CNN 에서 정규화 없이 13% 테스트 오분류율
- 정규화 적용 시 11% 테스트 오분류율
정리
Local Response Normalization은 ReLU와 함께 사용될 때 CNN의 성능을 효과적으로 향상시킨다.
이 기법은 뉴런 간의 경쟁을 유도하여 모델의 일반화 능력을 개선하며, 다양한 데이터셋에서 오류율을 감소시키는 데 기여한다.
ReLU의 장점을 유지하면서도 추가적인 성능 향상을 이끌어낼 수 있어, CNN 구조 설계 시 고려해볼 만한 중요한 요소
3.4 Overlapping Pooling
CNN에서 중요한 역할을 하는 pooling layer는 같은 kernel map 내의 인접한 뉴런 그룹의 출력을 요약하는 기능을 한다.
전통적으로 pooling unit들이 요약하는 영역을 서로 겹치지 않았다. 하지만 이 연구에서는 overlapping pooling이라는 새로운 접근법을 제안
Pooling layer의 구조를 살펴보면, 이는 $s$ 픽셀 간격으로 배치된 pooling uniit의 그리드로 구성된다.
각 unit은 자신의 위치를 중심으로 $z * z$크기의 영역을 요약한다. 여기서 두 가지 경우를 고려할 수 있다.
- $s = z$ : 전통적인 local pooling (non-overlapping)
- $s < z$ : Overlapping pooling
이 연구에서는 $s = 2, z = 3$으로 설정하여 overlapping pooling을 구현, 이를 통해 pooling unit들이 서로 겹치는 영역을 갖게 되었다.
이 방식의 효과를 검증하기 위해, 동일한 출력 크기를 생성하는 non-overlapping scheme(s = 2,z=2)와 비교했다.
- overlapping pooling 사용 시
- Top-1 error rate가 0.4% 감소
- Top-5 error rate가 0.3% 감소
또한, Overlapping pooling을 사용한 모델이 일반적으로 과적합에 더 강한 모습을 보였다. 이는 이 기법이 일반화 능력을 향상시키는 데 도움이 될 수 있음을 시사한다.
정리
overlapping pooling 기법은 CNN의 성능을 향상시키는 효과적인 방법이다.
동일한 출력 크기를 유지하면서도 error rate를 감소시키고 overfitting을 억제하는 데 도움을 준다.
따라서 CNN 구조를 설계할 때 고려해볼 만한 중요한 요소라고 할 수 있다.
3.5 Overall Architecture
AlexNet의 전체 구조는 8개의 가중치 층으로 구성되어 있다.
처음 5개 층은 convolutional layer이고, 나머지 3개 층은 fully-connected layer이다.
출력 층
- 맘지막 fully-connected layer의 출력은 1000-way softmax에 입력된다.
- 이는 1000개의 클래스 레이블에 대한 확률 분포를 생성한다.
목적
- 다항 로지스틱 회귀 목적 함숨를 최대화한다.
- 이는 예측 분포하에서 정확한 레이블의 로그 활률의 평균을 최대화하는 것과 동일하다.
층간 연결
- 2,4,5번째 convolutional layer의 커널은 같은 GPU에 있는 이전 층의 커널 맵에만 연결된다.
- 3번째 convolutional layer의 커널은 2번째 층의 모든 커널 맵에 연결된다.
- Fully-connected layer의 뉴런은 이전 층의 모든 뉴런에 연결된다.
정규화와 풀림
- Response-normalization layer가 1,2 번째 convolutional layer 뒤에 위치한다.
- Max-pooling layer가 두 response-normalization layer와 5번째 convolutional layer뒤에 위치한다.
활성화 함수
- ReLU 비선형성이 모든 convolutional layer와 fully-connected layer에 적용된다.
첫 번째 Convolutional Layer
- 224×224×3 크기의 이미지를 입력받음
- 96개의 11×11×3 커널 사용, stride는 4픽셀
두 번째 Convolutional Layer
- 첫 번째 층의 정규화 및 풀링된 출력을 입력으로 받음
- 256개의 5×5×48 커널 사용
세 번째 Convolutional Layer
- 두 번째 층의 정규화 및 풀링된 출력을 입력으로 받음
- 384개의 3×3×256 커널 사용
네 번째 Convolutional Layer
- 384개의 3×3×192 커널 사용
다섯 번째 Convolutional Layer
- 256개의 3×3×192 커널 사용
Figure 2 CNN 구조에 대한 그림으로, 두 GPU 간의 병렬 처리를 명시적으로 보여준다.
한 GPU는 그림 상단의 층 부분들을 실행하고, 다른 GPU는 하단의 층 부분들을 실행한다.
GPU들은 특정 층에서만 통신한다.
네트워크의 입력은 150,528이며, 네트워크의 나머지 층들의 뉴런 수는
253, 440-186, 624-64, 896-43, 264-4096-4096-1000 이다
4. Reducing Overfitting
AlexNet의 신경망 구조는 6천만 개의 매개변수를 가지고 있는 대규모 모델
ILSVRC 데이터 셋은 각 예제당 10비트의 정보를 제공하지만, 이는 과적합을 완전히 방지하기에는 부족하다.
해당 논문에서는 과적합 문제를 해결하기 위해 두 가지 주요 전략을 사용했다.
4.1 Data Augmentation
이미지 데이터의 과적합을 줄이는 가장 쉽고 일반적인 방법은 레이블을 보존하는 변환을 사용하여 인위적으로 데이터셋을 확장하는 것이다.
두 가지 distinct한 형태의 데이터 증강을 사용했다.
1. 이미지 평행이동 및 수평 반사
- 256x256 이미지에서 무작위로 224x224 패치를 추출
- 추출된 패치의 수평 반사본도 사용
- 학습 세트 크기를 2048배 증가시켰다.
- 테스트 시 : 5개의 224x224 패치(4개의 모서리 패치와 중앙 패치) 및 수평 반사를 사용하여 예측
2. RGB 채널 강도 변경
- ImageNet 학습 세트의 RGB 픽셀 값에 대해 PCA 수행
- 각 학습 이미지에 주성분의 배수를 추가
- 이 방식은 자연 이미지의 중요한 특성(조명의 강도와 색상 변화에 대한 객체 정체성의 불변성)을 포착
- Top-1 error rate를 1%이상 감소시킴
RGB 채널 강도 변경 수식
$$ [[p_1, p_2, p_3][\alpha_1\lambda_1, \alpha_2\lambda_2, \alpha_3\lambda_3]^T]$$
- $p_i와 \lambda_i$는 각각 RGB 픽셀 값의 3x3 공분산 행렬의 i번째 고유벡터와 고유값이다.
- $\alpha_i$는 평균 0, 표준편차 0.1의 가우시안 분포에서 추출한 무작위 변수다.
이 방법들의 장점은 계산 비용이 거의 없다는 점이다. Python으로 CPU에서 이미지를 생성하는 동안 GPU는 이전 배치를 학습하므로, 추가 계산 시간이 들지 않는다.
이러한 데이터 증강 기법들은 과적합을 크게 줄이고 모델의 성능을 향상시키는 데 중요한 역할을 했다.
4.1 Dropout
Dropout은 과적합을 줄이는 효과적인 방법
여러 모델의 예측을 결합하는 것이 test error를 줄이는 데 매우 성공적이지만, 학습에 이미 며칠씩 걸리는 대형 신경망에는 너무 비용이 많이 든다.
Dropout은 이러한 모델 결합의 효율적인 버전이라고 볼 수 있다.
Dropout의 특징
작동 원리
- 각 hidden neuron의 출력을 0.5의 확률로 0으로 설정
- "Dropout"된 neuron은 forward pass에 기여하지 않고 backpropagation에 참여하지 않는다.
효과
- 입력이 제시될 때마다 neural network는 다른 구조를 샘플링
- 모든 구조가 가중치를 공유
- neuron 간의 복잡한 co-adaptation을 줄임
- 더 견고한 feature 학습을 유도한다.
테스트 시 적용
- 모든 neuron을 사용하지만 출력에 0.5를 곱함
- 이는 exponentiially many dropout network가 생성한 예측 분포의 기하 평균을 취하는 것의 합리적인 근사
적용 위치
- Figure 2의 첫 두 fully-connected layer에 적용
성능
- Dropout 없이는 상당한 overfitting 발생
- Dropout 사용 시 수렴에 필요한 iteration 수가 약 2배로 증가
Dropout은 학습 시간을 약 2배로 증가시키지만, 과적합을 크게 줄이고 모델의 일반화 능력을 향상시키는 강력한 정규화 기법이다.
특히 대규모 신경망에서 효과적이며, AlexNet의 성공에 중요한 역할을 했다.
5. Details of learning
stochastic gradient descent를 사용하여 모델을 학습시켰다.
주요 학습 매개변수는 다음과 같다.
- Batch size : 128
- Momentum : 0.9
- weight decay : 0.0005
- Weight decay는 단순한 regularize가 아니라 모델의 training error를 줄이는 데 중요한 역할을 했다.
가중치 $w$에 대한 업데이트 규칙
$$ v_{i+1} := 0.9 \cdot v_i - 0.0005 \cdot \epsilon \cdot w_i - \epsilon \cdot \left\langle\frac{\partial L}{\partial w}|{w_i}\right\rangle{D_i} $$
$$ w_{i+1} := w_i + v_{i+1} $$
- $i$: iteration index
- $v$: momentum 변수
- $\epsilon$: learning rate
- $\left\langle\frac{\partial L}{\partial w}|{w_i}\right\rangle{D_i}$: i번째 batch $D_i$에 대한 목적 함수의 w에 대한 편미분의 평균
초기화
- 각 layer의 가중치 : 평균 0, 표준편차 0.01의 가우시안 분포에서 초기화
- 2,4,5 번째 convolutional layer와 fully-connected hidden layer의 neuron bias: 1로 초기화
- 나머지 layer의 neuron bias: 0 으로 초기화
Learning rate 조정
- 모든 layer에 동일한 lr 적용
- Validation error rate가 개선되지 않을 때 lr를 10으로 나눔
- 초기 lr은 0.01, 학습 중 3번 감소했다.
학습 과정
- 1.2백만 이미지의 traning set을 약 90 cycle 동안 학습
- 두 대의 NVIDIA GTX 580 3GB GPU로 5-6일 소요
6. Results
ILSVRC-2010에서 결과는 아래 Table 1와 같다
Table 1 : ILSVRC-2010 test set 결과 비교
Model | Top-1 | Top-5 |
Sparse coding | 47.1% | 28.2% |
SIFT + FVs | 45.7% | 25.7% |
CNN | 37.5% | 17.0% |
ILSVRC-2012 대회 결과 (Table 2):
- 단일 CNN: Top-5 error rate 18.2%
- 5개 유사 CNN 예측 평균: 16.4%
- ImageNet Fall 2011 release로 사전 학습 후 fine-tuning: 16.6%
- 사전 학습된 2개 CNN + 기존 5개 CNN 예측 평균: 15.3%
- 2위 참가자 성능: 26.2% (다양한 densely-sampled features로 계산된 FVs로 학습된 여러 분류기 예측 평균)
Model | Top-1(val) | Top-5(val) | Top-5(test |
SIFT + FVs [7] | — | — | 26.2% |
1 CNN | 40.7% | 18.2% | — |
5 CNNs | 38.1% | 16.4% | 16.4% |
1 CNN* | 39.0% | 16.6% | — |
7 CNNs* | 36.7% | 15.4% | 15.3% |
- (*) 표시된 모델은 ImageNet 2011 Fall release 전체로 "사전 학습"됨
ImageNet Fall 2009 버전 (10,184 카테고리, 8.9백만 이미지) 결과:
- Top-1 error rate: 67.4%
- Top-5 error rate: 40.9%
- 기존 발표된 최고 성능: 78.1%(Top-1), 60.9%(Top-5)
6.1 Qualitative Evaluations
Figure 3. 첫 번째 convolutional layer에서 학습된 96개의 convolutional kernel
커널 크기 11x11x3 입력 이미지 크기 224x224x3
위 48개 커널은 GPU1에서 학습, 아래 48개 커널은 GPU2에서 학습
Figure 3은 네트워크의 두 데이터 연결 층에서 학습된 convolution kernel을 보여준다.
학습된 특징을 보면 다양한 주파수 및 방향 선택적 패턴, 다양한 색상의 blob
GPU별 특화는 GPU1의 경우 주로 색상 독립적 kernel, GPU2의 경우 주로 색상 특정적 kernel이다.
Figure 4 AlexNet의 예측 및 특징 유사도 시각화
ILSVRC-2010 테스트 이미지 8개와 모델이 예측한 상위 5개 레이블
Figure 4를 보면 좌측 8개의 경우 테스트 이미지에 대한 네트워크의 top-5 예측 평가를 설명한다.
중심에서 벗어난 객체(ex 좌측 상단의 진드기)도 인식 가능하고 대부분의 top-5 레이블이 합리적이다.
다만, 일부 이미지(그릴, 체리)에서는 의도된 초점에 대한 모호성이 존재한다.
우측 패널의 경우 테스트 5개 이미지와 각각에 가장 유사한 훈련 세트 6개 이미지다.
픽셀 수준에서는 검색된 훈련 이미지가 쿼리 이미지와 L2 거리상 가깝지 않다.
검색된 이미지들(ex 개, 코끼리)이 다양한 포즈로 나타난다.
현재 4096 차원 실수 벡터 간 유클리드 거리 계산의 비효율성이 존재한다.
제안 방법 : 자동 인코더를 사용해 벡터를 짧은 이진 코드로 압축
해당 방법의 장점의 경우 계산 효율성 향상, 원시 픽셀에 자동 인코더를 적용하는 것보다 더 나은 이미지 검색이 가능해지며 의미적 유사성 기반 검색이 가능해진다.
7. Discussion
연구 주요 성과
- 대규모, 심층 CNN이 순수한 지도 학습만으로 매우 도전적인 데이터셋에서 기록적인 결과 달성
네트워크 구조의 중요성
- 단일 covolutional layer 제거 시 성능 저하 발생
- 중간 layer 하나 제거 시 top-1 성능에서 약 2% 손실
- 네트워크의 깊이가 결과 달성에 매우 중요함을 확인
실험 단순화
- 비지도 사전 학습을 사용하지 않음
- 사전 학습 사용 시 성능 향상 예상, 특히 레이블된 데이터 증가 없이 네트워크 크기를 크게 늘릴 수 있는 경우
성능 향상 추세
- 네트워크 크기 증가 및 학습 시간 연장에 따라 결과 개선
- 인간 시각 시스템의 하측두 경로에 도달하기까지 여전히 큰 격차 존재
향후 연구 방향
- 매우 크고 깊은 convolutional network를 비디오 시퀀스에 적용
- 시간적 구조가 제공하는 유용한 정보 활용(정적 이미지에서는 누락되거나 덜 명확한 정보)