Abstract
- 성과 요약
- ImageNet LSVRC-2010 대회의 120만 고해상도 이미지를 1000개의 다른 클래스로 분류하기 위해 대규모, 깊은 합성곱 신경망을 훈련시켰습니다.
- 테스트 데이터에서 top-1 오류율 37.5%, top-5 오류율 17.0%를 달성했는데, 이는 이전 최고 성능보다 훨씬 좋은 결과입니다.
- 이 신경망은 6000만 개의 파라미터와 65만 개의 뉴런으로 구성되어 있으며, 5개의 합성곱 레이어로 구성되어 있고, 일부는 최대 풀링 레이어에 의해 뒤따르며, 마지막에는 1000-way 소프트맥스를 가진 3개의 완전 연결 레이어가 있습니다.
-
훈련 과정
- 훈련을 더 빠르게 하기 위해, 포화되지 않는 뉴런을 사용했고, 합성곱 연산의 매우 효율적인 GPU 구현을 사용했습니다.
- 완전 연결 레이어에서 과적합을 줄이기 위해, 우리는 최근에 개발된 "드롭아웃"이라는 정규화 방법을 사용했습니다. 이 방법은 매우 효과적임이 입증되었습니다.
-
경쟁력 있는 결과
- 이 모델의 변형을 ILSVRC-2012 경쟁에도 출전시켰고, 15.3%라는 우승하는 top-5 테스트 오류율을 달성했습니다. 이는 두 번째로 좋은 성적을 낸 참가자가 달성한 26.2%에 비해 상당히 우수한 결과입니다.
1. Introduction
그 당시, 객체 인식(object recognition) 방법은 머신러닝 방법을 필수적으로 사용했는데요. 성능을 향상하기 위해서는 더 큰 데이터셋을 수집하고, 더 강력한 모델을 학습하며, 과적합 방지 기술을 개선해야만 했습니다.
하지만 과거에는 레이블이 있는 이미지 데이터셋을 찾기가 어려웠습니다. 간단한 인식 작업은 작은 데이터셋으로도 잘 해결할 수 있었지만, 현실 세계의 객체는 다양하게 변화하기 때문에 훨씬 더 큰 훈련 세트가 필요했습니다.
그 이후에는 LabelMe, ImageNet과 같은 수백만 개의 레이블이 붙은 고해상도 이미지를 포함하는 대규모 데이터셋을 수집할 수 있게 되었습니다. 수백만 개의 이미지로부터 수천 개의 객체를 학습하기 위해서는 큰 학습 용량을 가진 모델이 필요했는데요.
CNN은 이러한 모델 중 하나로 깊이와 너비를 조절함으로써 용량을 제어할 수 있었습니다. 이러한 특성으로 인해 CNN은 표준 신경망에 비해 연결과 파라미터 수가 적어 훈련이 쉽습니다. 또한 현재의 GPU와 2D 합성곱의 최적화된 구현은 대규모, 고해상도 이미지에 CNN을 적용할 수 있게 해주었습니다. 연구팀은 일부 ImageNet 데이터셋을 사용하여 역대 가장 큰 CNN 중 하나를 훈련시켰고, ILSVRC-2010과 ILSVRC-2012 대회에서 최고의 결과를 달성하였습니다.
2. The Dataset
ImageNet은 대략 22,000개 카테고리에 속하는 1500만 개 이상의 레이블이 붙은 고해상도 이미지로 구성되어 있습니다.
2010년부터 ImageNet Large-Scale Visual Recognition Challenge (ILSVRC)라는 연례 대회가 개최되고 있는데요. ILSVRC는 ImageNet의 부분집합을 사용하는데, 대략 1000개 카테고리 각각에 대해 약 1000개의 이미지가 있습니다. 총합으로는 약 120만 개의 훈련 이미지, 5만 개의 검증 이미지, 15만 개의 테스트 이미지가 있습니다.
ImageNet에는 다양한 해상도와 크기를 가진 이미지가 포함되어 있지만, 시스템은 일정한 입력 차원을 요구합니다. 따라서 이미지를 256 ×256 픽셀로 다운샘플링했으며, 훈련 세트에서 각 픽셀의 평균을 빼주었습니다.
3. The Architecture
3.1. ReLU Nonlinearity(렐루 등장!)
보통 뉴런의 활성화 함수로 주로 하이퍼볼릭 탄젠트(hyperbolic tangent)나 시그모이드(sigmoid)를 사용하는 것이 일반적입니다. 그러나 이러한 활성화 함수를 사용할 경우 경사 하강법으로 모델을 훈련시킬 때 렐루(ReLu) 함수와 비교했을 때 훨씬 더 느리게 수렴할 수 있다는 점에 유의해야 합니다.
ReLU(실습)를 사용한 네트워크가 CIFAR-10 데이터셋에 대한 훈련에서 25% 오류율에 도달하는 데, 하이퍼볼릭 탄젠트(점선)를 사용한 네트워크보다 여섯 배 빠른 것을 아래 그림으로 보여주고 있습니다.
3.2. Training on Multiple GPUs
GTX 580 GPU는 3GB의 메모리를 가지고 있습니다. 이 메모리는 신경망을 훈련시킬 때 필요한 데이터와 계산을 저장하는 데 사용됩니다. 하지만 3GB는 매우 큰 신경망을 훈련시키기에는 충분하지 않습니다. 예를 들어, 120만 개의 훈련 예제를 사용하는 큰 네트워크는 한 개의 GPU에 모두 들어갈 수 없습니다.
연구팀은 이 문제를 해결하기 위해 두 개의 GPU를 사용했습니다. 이를 통해 네트워크를 두 개의 GPU에 분산시켜 각 GPU가 네트워크의 일부를 처리하게 합니다.
각 층(layer)의 커널(kernel) 또는 뉴런(neuron)의 절반은 각기 다른 GPU에 할당됩니다. 간단히 말해, 어떤 층은 두 개의 GPU에서 모두 정보를 받아들이고, 다른 층은 오직 같은 GPU 내부의 정보만을 사용합니다.
예를 들어, 3번째 층의 커널들은 2번째 층의 모든 커널 맵으로부터 입력을 받습니다. 이 말은, 2번째 층의 커널 맵들이 두 개의 GPU에 분산되어 있더라도, 3번째 층은 이 두 GPU 모두로부터 정보를 받아들인다는 뜻입니다. 반면, 4번째 층의 커널들은 오직 같은 GPU 내에 있는 3번째 층의 커널 맵으로부터만 입력을 받습니다.
이러한 방식은 신경망의 오류율을 줄이는 데 도움을 주었고, 한 개의 GPU를 사용하는 것보다 약간 더 빠른 훈련 시간을 가능하게 했습니다.
이는 네트워크의 각 부분이 서로 다른 GPU에서 병렬로 작동하게 해, 더 큰 모델을 더 효율적으로 훈련시킬 수 있게 했습니다.
3.3.Local Response Normalization
ReLU의 장점 중 하나는 입력 데이터를 이미 정규화할 필요가 없다는 것입니다. ReLU 함수는 입력 값이 양수일 경우에만 활성화되어 그 값을 그대로 출력하기 때문이죠.
그럼에도 불구하고, 연구팀은 다음과 같은 로컬 정규화 방식이 일반화에 도움이 된다고 발견했습니다. 특정 위치(x, y)에서 커널 i를 적용하여 계산된 활성화 함수의 결과를 ai^(x, y)로 나타내고, 응답-정규화한 결과는 bi^(x, y)로 나타냈습니다.
여기서 합계는 같은 공간 위치에 있는, 하지만 다른 필터(커널)를 통해 생성된 n개의 커널 맵에 대해 이루어지며, N은 레이어의 총 커널 수입니다. 이러한 응답 정규화 방식은 신경망 내에서 서로 다른 커널을 통해 활성화된 뉴런들 사이에 일종의 경쟁을 만들어내는 것입니다. 이는 한 뉴런의 활동이 지나치게 강해지는 것을 방지하고, 네트워크가 더 균형있게 정보를 처리하도록 돕습니다. k, n, α, β는 하이퍼파라미터로, 검증 세트를 통해 결정됩니다. 해당 논문에서는 k=2, n=5, a=10^(-4), B=0.75를 사용했으며, 특정 층에서 ReLU를 적용한 후 이 정규화를 적용했습니다.
이 정규화 방식은 Jarrett 등이 제안한 로컬 대비 정규화 방식과 유사하지만, 평균 활성도를 빼지 않기 때문에 “밝기 정규화”라고 불릴 수 있습니다. 응답 정규화는 top-1과 top-5 오류율을 각각 1.4% 및 1.2% 줄였습니다. 또한, CIFAR-10 데이터셋에서 이 방식의 효과를 검증했습니다. 정규화 없이는 13%의 테스트 오류율을 보인 반면 정규화를 적용했을 때는 11%의 오류율을 달성했습니다.
3.4.Overlapping Pooling(지금은 안씀)
CNN에서 풀링 레이어는 같은 커널 맵의 내에서 인접하는 뉴런 그룹의 출력을 요약합니다. 전통적인 풀링 방식에서는 풀링 윈도우가 서로 겹치지 않습니다. 하지만 오버래핑 풀링은 이웃하는 풀링 유닛들이 겹치도록 합니다. 구체적으로, 풀링 레이어는 s 픽셀 간격으로 배치된 풀링 유닛의 그리드로 구성되며, 각 유닛은 풀링 유닛 위치를 중심으로 한 z × z 크기의 이웃을 요약합니다. s = z로 설정하면 전통적인 로컬 풀링이 되고, s(스트라이드) < z(풀링 윈도우의 크기)로 설정하면 오버래핑 풀링이 됩니다. 연구팀은 s = 2, z = 3으로 설정한 오버래핑 풀링을 사용했습니다.
오버래핑 풀링 방식은 동일한 차원의 출력을 생성하는 비오버래핑 방식 s = 2, z = 2와 비교하여 top-1 오류율을 0.4%, top-5 오류율을 0.3% 감소시킵니다. 또한, 오버래핑 풀링을 사용하는 모델이 과적합을 하는 것이 더 어렵습니다.
3.5.Overall Architecture
1. 네트워크 구조:
- 이 CNN은 총 8개의 가중치가 있는 레이어로 구성되어 있으며, 처음 다섯 개는 합성곱 레이어이고 나머지 세 개는 완전 연결 레이어입니다.
- 마지막 완전 연결 레이어의 출력은 1000개 클래스 레이블에 대한 분포를 생성하는 1000-way 소프트맥스에 공급됩니다.
- 이 네트워크는 다항 로지스틱 회귀 목표를 최대화하며, 이는 예측 분포 하에 올바른 레이블의 로그-확률의 훈련 케이스 평균을 최대화하는 것과 동일합니다.
2. 레이어 연결:
- 두 번째, 네 번째, 다섯 번째 합성곱 레이어의 커널은 이전 레이어의 같은 GPU에 위치한 커널 맵에만 연결됩니다.
- 세 번째 합성곱 레이어의 커널은 두 번째 레이어의 모든 커널 맵에 연결됩니다.
- 완전 연결 레이어의 뉴런은 이전 레이어의 모든 뉴런에 연결됩니다.
- 응답-정규화 레이어는 첫 번째와 두 번째 합성곱 레이어 뒤에 위치합니다.
- 최대 풀링 레이어는 응답-정규화 레이어와 다섯 번째 합성곱 레이어 뒤에 위치합니다.
- ReLU 비선형성은 모든 합성곱 및 완전 연결 레이어의 출력에 적용됩니다.
3. 레이어별 상세 정보:
- 첫 번째 합성곱 레이어는 224 × 224 × 3 입력 이미지를 11 × 11 × 3 크기의 96개 커널로 필터링합니다. 여기서 스트라이드는 4 픽셀입니다.
- 두 번째 합성곱 레이어는 첫 번째 합성곱 레이어의 (응답-정규화 및 풀링된) 출력을 입력으로 받아 5 × 5 × 48 크기의 256개 커널로 필터링합니다.
- 세 번째, 네 번째, 다섯 번째 합성곱 레이어는 풀링 또는 정규화 레이어 없이 서로 연결됩니다.
- 세 번째 합성곱 레이어는 두 번째 합성곱 레이어의 (정규화된, 풀링된) 출력에 연결된 3 × 3 × 256 크기의 384개 커널을 가집니다.
- 네 번째 합성곱 레이어는 3 × 3 × 192 크기의 384개 커널을, 다섯 번째 합성곱 레이어는 3 × 3 × 192 크기의 256개 커널을 가집니다.
- 완전 연결 레이어는 각각 4096개의 뉴런을 가집니다.
4. Reducing Overfitting
과적합을 줄이는 간단하고 흔히 사용하는 방법은 두 가지 다른 형태의 데이터 증강을 사용하는 것입니다. 이 두 가지 방법은 원본 이미지에서 파생된 이미지를 적은 계산으로 생성할 수 있어서 디스크에 따로 저장하지 않아도 됩니다. 우리는 이미지 변환 작업을 CPU에서 Python 코드를 사용하여 처리하고, 동시에 GPU를 사용하여 모델이 이전 이미지 배치에 대해 학습을 수행합니다. 이렇게 하면 추가적인 계산 비용 없이도 데이터 증강과 모델 학습을 병렬로 진행할 수 있어 효율적입니다.
4.1.Data Augmentation
이미지 데이터에서 과적합을 줄이는 가장 쉽고 흔한 방법은 레이블을 보존하는 변형을 통해 데이터 세트를 인위적으로 확장하는 것입니다.
우리는 두 가지 형태의 데이터 증강을 사용했으며, 이를 통해 원본 이미지에서 매우 적은 계산으로 변형된 이미지를 생성할 수 있습니다. 따라서 변형된 이미지를 디스크에 저장할 필요가 없습니다. 우리의 구현에서, 변형된 이미지는 CPU에서 Python 코드로 생성되며, GPU는 이전 배치의 이미지에 대해 훈련을 진행합니다. 따라서 이러한 데이터 증강 방식은 실질적으로 계산 비용이 없습니다.
1. 데이터 증강의 첫 번째 형태: 이미지 변환과 수평 반사 생성
- 256×256 이미지에서 무작위로 224×224 패치(및 그 수평 반사)를 추출하여 이러한 추출된 패치로 네트워크를 훈련시킵니다. 이것은 훈련 세트의 크기를 2048배 증가시킵니다.
- 이 방식 없이는 네트워크가 상당한 과적합에 시달려, 훨씬 더 작은 네트워크를 사용해야 했을 것입니다.
- 테스트 시, 네트워크는 다섯 개의 224×224 패치(네 모서리 패치와 중앙 패치)와 그 수평 반사(따라서 총 열 개의 패치)를 추출하여, 네트워크의 소프트맥스 계층에서 이 열 개의 패치에 대한 예측을 평균냅니다.
2. 데이터 증강의 두 번째 형태: 훈련 이미지의 RGB 채널 강도를 변경
- 구체적으로, ImageNet 훈련 세트 전체의 RGB 픽셀 값에 대해 PCA(주성분 분석)를 수행합니다.
- 각 훈련 이미지에는 발견된 주성분의 배수를 추가합니다. 이 배수는 해당 고유값에 0 평균 및 0.1 표준 편차를 갖는 가우시안에서 추출된 무작위 변수와 비례합니다.
- 따라서 각 RGB 이미지 픽셀 Ixy = [IR, IG, IB]T에 다음과 같은 수량을 추가합니다:
[p1, p2, p3][α1λ1, α2λ2, α3λ3]T
- 여기서 pi와 λi는 각각 RGB 픽셀 값의 3×3 공분산 행렬의 i번째 고유 벡터와 고유값이며, αi는 앞서 언급한 무작위 변수입니다. 각 αi는 특정 훈련 이미지의 모든 픽셀에 대해 한 번만 추출되며, 해당 이미지가 다시 훈련에 사용될 때 다시 추출됩니다.
- 이 방식은 자연 이미지의 중요한 특성인, 조명의 강도와 색상 변화에 대한 객체 식별의 불변성을 대략적으로 포착합니다.
- 이 방식은 top-1 오류율을 1% 이상 감소시킵니다.
4.2.Dropout
1. 드롭아웃 기법
드롭아웃은 각 은닉 뉴런의 출력을 0.5의 확률로 0으로 설정하는 것을 의미합니다. 이 방식으로 '드롭아웃'된 뉴런들은 순전파(forward pass)에 기여하지 않고 역전파(backpropagation)에도 참여하지 않습니다. 따라서 입력이 제시될 때마다 신경망은 다른 구조를 샘플링하지만, 모든 구조가 가중치를 공유합니다. 이 기술은 뉴런의 출력에 지나치게 의존하는 것을 방지합니다.
그런데 테스트(또는 추론) 시에는, 신경망의 모든 뉴런을 사용합니다. 훈련 중에는 일부 뉴런만 사용했기 때문에, 테스트 시에는 네트워크의 출력을 조정해야 합니다. 만약, 훈련 중에 뉴런의 절반만을 활성화시켰다면 (드롭아웃 확률이 0.5), 테스트 시에는 네트워크의 출력을 0.5 (즉, 절반)로 스케일링합니다.
이렇게 하는 이유는, 훈련 중에 각기 다른 드롭아웃 패턴으로 생성된 여러 네트워크들의 평균적인 효과를 모방하기 위함입니다. 출력을 조정함으로써, 테스트 시에는 드롭아웃으로 인해 생성되었을 수 있는 다양한 네트워크 구성의 평균적인 행동을 반영할 수 있습니다. 이는 신경망이 테스트 데이터에 대해 더 잘 일반화되고, 더 안정적인 성능을 보이게 하는 데 도움을 줍니다.
2. 드롭아웃의 적용
- 그림 2의 첫 두 개의 완전 연결 레이어에서 드롭아웃을 사용합니다.
- 드롭아웃 없이는 우리의 네트워크가 상당한 과적합(overfitting)을 보입니다.
- 드롭아웃을 사용하면 신경망이 최적의 성능에 도달하기 위해 필요한 훈련 시간이나 에포크 수가 증가합니다.
5. Details of learning
1. 모델 훈련 방법:
- 사용한 방법: 확률적 경사 하강법 (Stochastic Gradient Descent, SGD)
- 배치 크기: 128개의 예시
- 모멘텀: 0.9
- 가중치 감소(Weight Decay): 0.0005
- 가중치 감소는 단순히 정규화(regularization) 역할만 하는 것이 아니라 모델의 훈련 오차를 줄이는 데 도움을 줍니다.
2. 가중치 업데이트 규칙:
- 여기서 i는 반복 횟수를 나타내며, v는 모멘텀 변수, ε는 학습률(learning rate)입니다. 그리고 Di는 i번째 미니배치(Di)에서 w에 대한 목적 함수의 도함수(derivative)의 평균을 나타냅니다. 이 값은 wi에서 평가됩니다.
3. 가중치 초기화:
- 모든 레이어의 가중치는 표준 편차가 0.01인 0 평균 가우시안 분포로 초기화됩니다.
- 두 번째, 네 번째, 다섯 번째 합성곱(convolutional) 레이어와 완전 연결된(hidden) 레이어의 뉴런 편향은 1로 초기화됩니다. 이 초기화는 ReLU 활성화 함수를 사용하는 뉴런에 양수 입력을 제공하여 학습을 가속화했습니다.
- 다른 레이어의 뉴런 편향은 0으로 초기화됩니다.
4. 학습률 관리:
- 모든 레이어에 동일한 학습률을 사용했으며, 훈련 중에 수동으로 조절했습니다.
- 검증 오류율이 현재 학습률로 더 이상 개선되지 않을 때 학습률을 10으로 나누는 방식으로 조정했습니다.
- 학습률은 처음에 0.01로 설정되었고, 종료 전에 세 번 줄어들었습니다.
5. 훈련 기간 및 하드웨어:
- 네트워크는 약 90번의 훈련 주기 동안 120만 개의 이미지 훈련 세트를 학습했습니다.
- 이 작업은 두 개의 NVIDIA GTX 580 3GB GPU에서 약 5~6일이 걸렸습니다.
6. Results
1. ILSVRC-2010 결과
- 해당 네트워크는 top-1과 top-5 테스트 세트 오류율이 각각 37.5%와 17.0%를 달성했습니다.
- ILSVRC-2010 대회에서 가장 좋은 성능은 47.1%와 28.2%였으며, 이는 여섯 개의 sparse-coding 모델의 예측을 평균한 결과였습니다.
- 그 이후 가장 좋은 공개 결과는 두 개의 분류기의 예측을 평균한 45.7%와 25.7%였으며, 이는 두 종류의 밀집 샘플링(densely-sampled) 특징(feature)에서 계산된 피셔 벡터(Fisher Vectors)를 사용했습니다.
2. ILSVRC-2012 결과
- 해당 대회에서는 테스트 세트 레이블이 공개되지 않아 모든 모델에 대한 테스트 오류율을 보고할 수 없습니다.
- 이 논문에서 설명된 CNN은 top-5 오류율이 18.2%였습니다.
- 유사한 다섯 개의 CNN의 예측을 평균하면 오류율은 16.4%가 됩니다.
- 하나의 CNN을 추가적인 여섯 번째 합성곱 층을 포함하여 2011년 가을 ImageNet 전체 릴리스(1500만 이미지, 2.2만 카테고리)에 대해 훈련시킨 후, ILSVRC-2012에 "fine-tuning"을 실시하면 오류율이 16.6%가 됩니다.
- 전체 2011년 가을 릴리스에서 사전 훈련된 두 개의 CNN과 앞서 언급한 다섯 개의 CNN의 예측을 평균하면 오류율은 15.3%가 됩니다.
- 두 번째로 좋은 대회 참가 결과는 여러 분류기의 예측을 평균한 26.2%였으며, 이는 다양한 유형의 밀집 샘플링 특징에서 계산된 피셔 벡터를 사용했습니다.
3. ImageNet Fall 2009 결과:
- ImageNet Fall 2009 (1만 184개 카테고리, 890만 이미지)에서는 이미지의 절반을 훈련에, 절반을 테스트에 사용합니다.
- 이 데이터셋에서 최종 풀링 레이어 위에 추가적인 여섯 번째 합성곱 레이어를 가진 위에서 설명한 네트워크로 달성한 top-1과 top-5 오류율은 각각 67.4%와 40.9%였습니다.
- 이 데이터셋에 대한 가장 좋은 공개 결과는 78.1%와 60.9%였습니다.
6.1.Qualitative Evaluations(CNN의 학습 결과와 정성적 평가)
1. **학습된 커널의 특성**:
- 그림 3은 네트워크의 두 데이터 연결 레이어에 의해 학습된 합성곱 커널을 보여줍니다.
- 네트워크는 다양한 주파수 및 방향 선택 커널과 여러 가지 색상의 덩어리를 학습했습니다.
- 두 GPU의 특화는 섹션 3.5에서 설명된 제한된 연결성의 결과로 나타납니다. GPU 1의 커널은 대체로 색상에 무관한 반면, GPU 2의 커널은 대체로 색상에 특화되어 있습니다. 이러한 특화는 가중치 초기화 방식과는 독립적이며, GPU의 구조적 특성 때문에 발생합니다.
2.ILSVRC-2010 및 ILSVRC-2012 대회 결과
- 표 1과 표 2는 각각 ILSVRC-2010과 ILSVRC-2012 테스트 세트에서의 오류율을 비교한 것입니다.
- ILSVRC-2010에서 단일 CNN은 top-1과 top-5 오류율이 각각 39.0%와 18.3%였으며, 다섯 개의 유사한 CNN을 평균하면 16.4%의 오류율을 보여줍니다.
- ILSVRC-2012에서는 단일 CNN이 top-5 오류율 18.2%를 달성했고, 2011년 가을 이미지넷 전체 릴리스에서 사전 훈련된 CNN들을 포함한 여러 CNN들의 평균은 15.3%의 오류율을 보였습니다.
3. 네트워크가 학습한 내용의 정성적 평가
- 그림 4의 왼쪽 패널에서는 8개의 테스트 이미지에 대한 네트워크의 top-5 예측을 계산하여 네트워크가 무엇을 학습했는지 평가합니다.
- 상단 왼쪽의 진드기와 같이 중심에서 벗어난 객체도 네트워크에 의해 인식될 수 있습니다.
- 대부분의 top-5 레이블은 합리적으로 보입니다. 예를 들어, 표범에 대해 고려되는 가능한 레이블은 다른 종류의 고양이뿐입니다.
- 그릴과 체리 사진에서는, 신경망이 이미지의 진정한 초점을 파악하는 데 어려움을 겪을 수 있습니다. 이는 이미지가 복잡하거나, 여러 객체가 중첩되어 있어서 신경망이 어떤 부분이 주요 대상인지 분명하게 구분하기 어렵기 때문일 수 있습니다. 이러한 모호성은 신경망이 예측을 내릴 때, 오류를 범하거나 관련 없는 레이블을 제시할 가능성을 높입니다.
4. 네트워크의 시각적 지식 탐구
- 마지막 은닉 레이어는 이미지에 대한 고차원적인 특징을 포착하는데, 이 경우 4096개의 값(차원)으로 이루어진 벡터로 표현됩니다.
- 두 이미지가 비슷한 벡터를 생성하면, 신경망이 두 이미지를 비슷하다고 '생각'합니다. 이때 '비슷하다'는 것은 특징 활성화 벡터 간의 유클리드 거리(즉, 각 차원의 값들을 각각 빼서 제곱한 후, 그 결과를 모두 더하고 제곱근을 취한 값)가 작다는 것을 의미합니다.
- 그림 4는 테스트 세트에서 선택된 다섯 개의 이미지와, 그 이미지들과 특징 활성화 벡터가 가장 유사한 훈련 세트의 여섯 개 이미지를 보여줍니다. 이렇게 하여 신경망이 이미지의 어떤 특징을 기반으로 유사성을 판단하는지 시각적으로 확인할 수 있습니다.
- '픽셀 수준'이란 이미지의 실제 색상과 구조를 말합니다. 훈련 이미지들이 쿼리 이미지와 유사하다고 신경망이 판단했더라도, 실제 픽셀 값이 서로 매우 다를 수 있습니다. 예를 들어, 신경망이 검색한 개와 코끼리 이미지는 서로 다른 자세를 취하고 있을 수 있지만, 신경망은 여전히 그들의 특징 활성화 벡터가 유사하다고 판단할 수 있습니다.
5. 딥러닝 기술의 효율성
논문은 고차원 벡터를 비교하기 위해 유클리드 거리를 사용하는 것이 비효율적이라고 지적합니다. 가능한 해결책으로, 이 벡터들을 짧은 이진 코드로 압축하기 위해 오토인코더를 훈련시킬 수 있습니다. 이 방법은 원시 픽셀에 직접 오토인코더를 적용하는 것보다 훨씬 효율적인 이미지 검색 방법을 제공할 것입니다. 이 방법은 이미지 레이블을 활용하여 의미적 유사성을 고려하지 않고 가장자리 패턴만으로 이미지를 검색하는 한계를 피할 수 있습니다.
7.Discussion
1. 주요 결과
- 우리의 결과는 대규모, 심층 합성곱 신경망이 순수하게 지도 학습을 통해 매우 도전적인 데이터셋에서 기록적인 결과를 달성할 수 있음을 보여줍니다.
- 특히, 네트워크에서 단 하나의 합성곱 레이어를 제거하는 것만으로도 성능이 저하되는 것이 주목할 만합니다.
- 예를 들어, 중간 레이어 중 하나를 제거하면 네트워크의 top-1 성능이 약 2% 손실됩니다. 따라서 깊이는 우리의 결과를 달성하기 위해 정말 중요합니다.
2. 실험의 단순화
- 연구자들은 실험을 더 간단하게 하기 위해 비지도학습(unsupervised learning)을 사용하지 않았다고 합니다. 비지도학습은 레이블이 없는 데이터로부터 학습하는 기법이에요.
- 연구팀은 만약 충분한 컴퓨터 계산 능력이 있었다면, 신경망의 크기를 더 키워서 성능을 향상시킬 수 있었을 것이라고 생각합니다. 즉, 더 큰 네트워크를 훈련시킬 수 있었다면 더 좋은 결과를 얻을 수 있었을 거라는 예상이죠, 심지어 더 많은 레이블이 붙은 데이터 없이도 말이에요.
- 그들이 지금까지 얻은 결과에 따르면, 신경망을 더 크게 만들고 더 오래 훈련시킬수록 성능이 개선되었지만, 인간의 시각 시스템과 비슷한 수준에 도달하기 위해서는 아직 신경망을 훨씬 더 크게 만들어야 한다고 합니다.
3. 최종 목표
- 연구팀의 궁극적인 목표는 정적 이미지보다는 비디오 시퀀스에서 작동하는 크고 깊은 합성곱 신경망을 사용하는 것입니다. 비디오는 시간에 따라 변화하는 구조, 즉 시간적 구조를 가지고 있어서 추가적인 정보를 제공합니다. 정적 이미지에는 이런 시간적 구조가 없거나 잘 드러나지 않습니다. 연구팀은 이 시간적 구조를 포착할 수 있는 깊은 신경망을 개발하여, 비디오 데이터에서 더욱 풍부한 정보를 학습하고 이해하고자 합니다.
요약
- 활성화 함수로 ReLU 함수를 처음 사용
- Maxpooling 으로 Pooling 적용 및 Overlapping Pooling 적용
- Local Response Normalization 사용
- Drop out Layer, Weight Decay 기법 적용(overfitting 개선)
- Data Augmentation 적용(좌우 반전, Crop, PCA 변환)