https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf
오늘 리뷰할 논문은, AlexNet으로 유명한 딥러닝 아키텍처 논문이다. 2012년 ImageNet 데이터셋을 분류하는 경진대회에서 1등을 차지했다.
Introduction
최근 머신러닝 방법론의 발전으로 학습을 위한 더 큰 데이터셋을 수집하고, 더 강력한 모델을 학습하며, 과적합을 방지하기 위한 개선된 기술을 사용할 수 있게 되었다. 이전에는 레이블이 있는 이미지 데이터셋이 수만 개의 이미지로 제한되었고, 이는 간단한 인식 작업에는 적합했으나 복잡한 물체 인식을 위해선 더 큰 데이터셋이 필요하다는 점이 언급된다. 더 많은 물체를 인식하기 위해서는 대규모 데이터셋으로 학습할 필요성이 생긴 것이다.
대표적으로 CNN(Convolutional Neural Networks)은 복잡한 이미지를 학습하는 데 기여하며, 깊이(depth)와 폭(breadth)을 조절함으로써 모델의 용량을 제어할 수 있다. 본 논문에서 제시하는 CNN(AlexNet) 구조는 이전의 모델보다 물체 인식에서 더 나은 결과를 제공하고, CNN을 기반으로 한 기술의 유용성을 입증하고자 한다.
Dataset
- ImageNet : 1500만 개 이상의 고해상도 이미지를 포함하는 데이터셋으로, 약 22,000개의 카테고리가 있다. AlexNet이 1위를 차지한 ILSVRC 경진대회는 ImageNet의 하위 집합을 사용하며, 각 카테고리에는 약 1000개의 이미지가 포함되어 있다.
- 이미지 수 : 훈련 이미지 약 120만 개, 검증 이미지 50,000 개, 테스트 이미지 150,000 개
- 오류율 : ImageNet에서는 일반적으로 두 가지 오류율을 다루는데, 아래와 같다.
- Top-1 오류율: 예측한 라벨과 실제 라벨이 일치하는 비율
- Top-5 오류율: 가장 가능성 있는 5개의 라벨 안에 실제 라벨이 포함되지 않을 확률
Architecture
AlexNet은 기존 CNN 모델과 몇 가지 차이점을 지니며 이는 이미지 분류 성능 향상에 기여한다. 논문에서는 아래 기술된 순서대로 모델의 성능 향상에 큰 영향을 주었다고 기술되어 있다.
1. ReLU Nonlinearity
- ReLU(Rectified Linear Unit): 비선형 활성화 함수로, 입력이 0보다 크면 입력 값을 그대로 출력하고, 0 이하일 경우 0을 출력
일반적인 비선형 함수(tanh 등)는 학습 속도가 느리지만, ReLU는 Neuron의 saturating 문제를 피할 수 있어 빠른 학습이 가능하다. 논문의 실험에서는 ReLU를 사용하는 네트워크가 tanh를 사용하는 네트워크보다 25% 훈련 오류율을 빠르게 도달하는 것을 보여준다.
2. Training on Multiple GPUs
다중 GPU 사용의 필요성, GPU 병렬 학습의 중요성을 설명하고 있다. 이 연구에서는 두 개의 GTX 580 GPU를 사용하여 네트워크를 훈련했다. 모델을 훈련시킬 데이터는 충분하지만 모든 데이터를 학습시킬 리소스가 부족한 상태인 것이다. 단일 GTX 580 GPU로 120만 개 훈련 샘플과 큰 네트워크를 학습시키는 데에 한계가 있기 때문에, 두 개의 GPU가 서로의 메모리에 직접 접근 가능하여 병렬 훈련하는 구조를 채택했다. 이는 모든 뉴런을 두 개의 GPU에 나누어 배치하며, 특정 레이어에서만 통신하여 계산 효율성을 유지하는 구조이다.
3. Local Response Normalization
이 논문에서는 ReLU 활성화 함수를 사용했음에도 불구하고 일반화 성능을 향상하기 위해 LRN이라는 기법을 도입했다. LRN은 인접한 커널 맵 간의 경쟁을 유도하여 큰 활성값을 갖는 뉴런의 출력을 상대적으로 줄여주는 방식으로 작동한다(regularization). 이는 실제 뉴런에서 발견되는 lateral inhibition 현상에서 영감을 받은 것이다.
LRN은 위와 같은 수식으로 표현된다.
- $a_{x,y}^{i}$ : $(x,y)$ 위치에서 커널 $i$를 적용한 후 ReLU 비선형성을 거친 뉴런의 활성값
- $b_{x,y}^{i}$ : 응답 정규화된 활성값
- $k, n, \alpha, \beta$ : 검증 세트를 사용하여 결정되는 하이퍼파라미터 (이 논문에서는 $k=2$, $n=5$, $\alpha=10^{-4}$, $\beta=0.75$ 사용)
- $N$ : 레이어에 있는 커널의 총 개수
LRN을 통해 top-1 및 top-5 오류율이 각각 1.4%, 1.2% 감소했다.
4. Overlapping Pooling
기본적으로 CNN의 Pooling 레이어는 동일한 커널 맵 내의 인접한 뉴런 그룹의 출력을 요약하는 역할을 한다. 전통적인 방식은 인접한 풀링 단위의 이웃이 겹치지 않는 방식으로 동작한다. 하지만 AlexNet의 Pooling은 인접한 풀링 단위들 간에 겹침을 두는 식이다. 즉, 풀링 유닛 간 간격($s$)이 풀링 유닛의 크기($z$)보다 작게 설정된다. 이 논문에서는 $s=2$, $z=3$을 사용했다.
Overlapping Pooling의 효과는 과적합을 방지하여 모델의 일반화 성능을 향상시켜주는 데에 있다. 실험에서 top-1 오류율이 0.4%, top-5 오류율이 0.3% 감소하는 걸 관찰할 수 있다.
5. Overall Architecture
전체 아키텍처를 볼 수 있다. GPU 2개가 서로 다른 레이어를 병렬적으로 처리하는 걸 확인할 수 있는데, 마킹한 부분에서만(특정 레이어에서) 서로 상호작용한다. 총 8개 레이어로 구성된 네트워크 구조이다.
1~5계층 : 합성곱 계층 (Convolutional layers)
6~8계층 : 완전 연결 계층 (Fully-Connected layers)
마지막 FC layer 출력은 1000개의 클래스 레이블에 대한 분포를 생성하는 1000-way softmax에 연결된다.
GPU 연결
2번째, 4번째 및 5번째 합성곱 계층의 커널은 이전 계층의 동일 GPU에 있는 커널 맵과 연결된다.
3번째 합성곱 계층의 커널은 2번째 계층의 모든 커널 맵과 연결된다.
완전 연결 계층의 뉴런은 이전 계층의 모든 뉴런과 연결된다.
정규화 및 풀링
반응 정규화 계층(Response-normalization layers)은 첫 번째 및 두 번째 합성곱 계층 다음에 이어진다.
맥스 풀링 계층(Max-pooling layers)은 반응 정규화 계층과 5번째 합성곱 계층 다음에 위치한다.
비선형성
합성곱 및 완전 연결 계층의 출력에는 ReLU 비선형성이 적용된다. 첫 번째 합성곱 계층은 224 × 224 × 3 크기의 입력 이미지를 96개의 11 × 11 × 3 크기의 커널로 필터링하며, 두 번째 합성곱 계층은 (반응 정규화 및 풀링 처리된) 첫 번째 합성곱 계층의 출력을 입력으로 받아 256개의 5 × 5 × 48 크기의 커널로 처리된다. 세 번째, 네 번째 및 다섯 번째 합성곱 계층은 서로 간섭 없이 연결되어 있으며 각각의 커널 크기는 3 × 3이다.
Reducing Overfitting
과적합을 완화하기 위해 두 가지 방법을 사용했다.
Data Augmentation
이미지 데이터를 기반으로 딥 러닝 모델의 Overfitting을 줄이는 가장 일반적인 방법은 레이블 보존 변환을 사용하여 데이터 세트를 인위적으로 확대하는 것이다. 논문에서는 훈련 데이터셋의 크기를 인위적으로 늘려 모델이 다양한 변형에 더 잘 적응하도록 돕는다.
Dropout
드롭아웃은 신경망의 일부 뉴런을 무작위로 비활성화하여 모델이 특정 뉴런에 과도하게 의존하는 것을 방지한다. 각 히든 뉴런의 출력을 0.5의 확률로 0으로 설정하며, 드롭 아웃된 뉴런은 forward pass와 backpropagation에 참여하지 않는다. 따라서 입력이 제공될 때마다 신경망은 다른 아키텍처를 샘플링하는 셈이다.
Evaluation
그림 4의 왼쪽 패널에서는 여덟 개의 테스트 이미지에 대한 네트워크의 상위 5개 예측을 계산해 평가한다. 왼쪽 위 mite(진드기)와 같은 객체도 네트워크에 의해 인식될 수 있음을 보여준다. 대부분의 상위 5개 레이블은 객체와 아예 무관한 내용이 나오지 않고 합리적인 classification을 하고 있는 것을 볼 수 있다.
Discussion
기존에 높은 성능을 보인 ML 모델은 데이터셋의 피처를 고도로 분석해 나온 결과가 모델에 많은 영향을 미쳤다. 하지만 AlexNet의 등장 이후 딥러닝 모델이 순수한 지도학습을 통해서도 높은 성능을 달성할 수 있음을 보여주었다. 몇 가지 흥미로운 사실은
- 중간 레이어의 중요성: 네트워크의 성능은 중간 레이어를 하나라도 제거하면 약 2% 감소한다. 따라서 레이어의 깊이는 결과를 얻는 데 매우 중요하다.
- 사전 훈련 부재: 실험을 단순화하기 위해 비지도 사전 훈련을 사용하지 않았다. 네트워크의 크기를 키워도 라벨링 데이터의 양 증가와 상관없이 도움이 될 것이라고 기대하기 때문이다.
컴퓨터 비전 모델 아키텍처 논문을 제대로 보긴 처음이다. 발상의 전환과 수많은 시행착오가 수반되어야 이런 성능 향상이 나오는 것 같다. 다음에는 비전에서 어플리케이션 쪽 논문을 들고 와도 괜찮을 듯.