cb
[논문리뷰] AlexNet 논문리뷰 본문
ImageNet Classification with Deep Convolutional Neural Networks
Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton
https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf
Abstract
본 모델은 ImageNet LSVRC-2010 콘테스트에서 120만 개의 데이터를 분류하기 위해 large, deep neural network를 훈련시켰다. 이는 당시의 최신 기술에 비해 상당히 향상된 오류율을 보인다. 6천만 개의 매개변수와 65만 개의 뉴런으로 두성된 신경망은 5개의 Convolutional layer를 갖고 있으며 일부에는 Max pooling을 사용하였다. 또, 훈련 속도를 향상하기 위해 GPU를 병렬처리하고, 과적합을 줄이기 위해 드롭아웃 기법을 적용하였다. 결과적으로 ILSVRC-2012에서 TOP-5의 테스트 오류율을 달성하기도 했다.
1. Introduction
객체 인식에 대한 접근 방식은 기계 학습 방법을 필수적으로 사용한다. 최근까지의 labeled datasets는 굉장히 적었지만, 실세계의 물체들은 가변성이 높다. 그로부터 더 큰 데이터셋에 대해 학습해야 할 필요성이 나타났고, 수백만 개의 라벨링된 이미지 데이터셋이 등장했다.
수백만 개의 이미지에서 수천 개의 개체에 대해 학습하기 위해서는 대규모 학습 기능을 갖춘 모델이 필요하다.
CNN(Convolutional Neural Network)은 다양한 깊이와 폭을 통해 모델의 용량을 제어할 수 있으며, 이미지의 지역성이나 정상성 등에 관한 특성을 설명할 수 있다. 따라서 비슷한 크기의 레이어를 다진 FFN과 비교했을 때, 더 적은 연결과 매개변수를 갖기 때문에 훈련하기가 더욱 쉽다는 장점이 있다.
CNN은 여전히 대규모의 고해상도 이미지에 적용하기에 비용이 많이 든다는 문제점이 있었지만, 당시의 GPU 성능으로 2D Convolution을 고도로 최적화할 수 있고, ImageNet과 같은 최신 데이터셋을 훈련하기에 충분했다.
이 논문은 (1) 2D convolution에 최적화된 GPU를 훈련에 사용하였고 (2) 과대적합을 방지하는 다양한 기술들을 사용하였고 (3) 5개의 합성곱과 3개의 완전 연결층을 사용하여 훈련을 진행하였다.
2. The Architecture
AlexNet의 전체적인 모델 아키텍처는 아래의 그림과 같다.
2.1 ReLU Nonlinearity
기존의 활성화 함수(tanh)들은 훈련 시간이 길어짐에 따라 기울기 소실이라는 문제가 발생하여 학습이 오히려 저하되는 문제가 발생하였다. 그로붜터 본 논문에서는 ReLU 함수를 사용하여 비선형성을 유지하고자 하였다. ReLU함수는 f(x) = max(0,x) 의 꼴로 나타나며, 학습 속도를 훨씬 빠르게 했다는 이점이 있다. 위의 그래프에 따라 4개의 ReLU를 이용한 CNN만으로도 에포크 6번만에 25%의 에러율을 달성할 수 있었다는 것을 알 수 있다.
2.2 Training on Multiple GPUs
단일 GTX 580 GPU에서는 메모리가 3GB에 불과하기 때문에, 네트워크의 최대 크기가 제한된다. 이로부터 120만개의 훈련 예제들은 하나의 GPU에서 구동되기에 너무 크다는 문제점이 발생한다. 따라서 본 논문에서는 GPU 병렬 처리를 통해 네트워크를 분산시켰다. 이는 host system memory를 거치지 않고 서로의 메모리를 읽고 쓰기 때문에 cross-GPU 병렬화에 적합한 방법이기도 했다.
추가로, GPU는 특정 layer에서만 통신하는 trick을 사용했다. 이러한 구조는 에러율을 더욱 낮출 수 있었고 훈련 시간을 축소했다는 장점이 있다.
2.3 Local Response Normalization
ReLU는 별도의 입력 정규화를 필요로 하지 않는다는 장점이 있다. 그러나 본 논문에서는 local normalization이 일반화에 도움을 줄 수 있다는 사실을 발견했다. 정규화의 식은 아래와 같이 나타난다.
2.4 Overlapping Pooling
CNN의 풀링 레이러는 인접한 뉴런들의 출력을 요약할 수 있다. 이전의 인접한 뉴런들은 중복되지 않게 풀링 계층을 통과했지만 본 논문에서는 풀링되는 뉴런들의 중복을 허용하였다. 이는 과대적합을 낮출뿐만 아니라, 에러율을 낮출 수 있었다는 이점을 가진다.
2.5 Overall architecture
전체적인 CNN 모델을 설명하자면, 이는 5개의 합성곱계층과 3개의 완전연결층을 포함한 8개의 계층으로 구성된다. 마지막 softmax층은 1000개의 클래스를 구별하기 위해 1000-way softmax를 적용한다.
2, 4, 5번째 합성곱계층은 같은 GPU에 있는 이전 커널들과 연결되지만, 3번째 계층은 모든 2번 계층과 연결된다는 사실을 알 수 있다. 완전연결층의 뉴런들 또한 마찬가지이다. response-normalization은 1, 2번째 계층 뒤에 적용되고 pooling은 response-normalization과 5번째 계층 뒤에 적용된다. ReLU 함수는 모든 계층의 출력에 적용된다.
각 계층의 입력, 출력은 다음과 같다
- 1번째 계층: 224 X 224 X 3 의 이미지 데이터, 11 X 11 X 3 크기의 96개의 커널 (stride=4)
- 2번째 계층: response-normalization과 풀링계층을 통과한 첫번째 합성곱 계층, 5 X 5 X 48 크기의 256개의 커널
- 3번째 계층은: (정규화, 풀링을 통과한) 2번째 계층, 3 X 3 X 256 크기의 384개의 커널
- 4번째 계층: 3 X 3 X 192 크기의 384개 커널
- 5번째 계층은 3 X 3 X 192 크기의 256개의 커널
(3, 4, 5번째 합성곱 계층은 풀링계층이나 정규화 없이 서로 연결) - 완전연결계층: 4096개의 뉴런들로 구성
3. Reducing Overfitting
본 모델에서는 아래 2가지의 방법을 사용하여 과적합을 막았다.
3.1 Data Augmentation
먼저, 원본 데이터에서 약간의 변형을 통해 변환된 이미지를 생성하는 이미지 증강 기법을 사용하였다. 이는 image translation과 horizontal reflections를 통해 진행되었다.
또, RGB 채널의 강도를 바꾸는 과정을 통해 데이터를 증강하였다.
3.2 Dropout
드롭아웃은 순전파와 역전파 과정에서 일부 뉴런들을 제외하는 방법으로, 0.5의 확률로 일부 뉴런의 출력을 0으로 설정한다.
'ai - paper' 카테고리의 다른 글
[논문 리뷰] Pixel RNN, Pixel CNN 논문리뷰 (1) | 2024.04.07 |
---|---|
[논문리뷰] Transformer 논문 리뷰 (0) | 2023.08.23 |
[논문 리뷰] BERT 논문 리뷰 (0) | 2023.08.23 |
[논문 리뷰] GAN 논문리뷰 (0) | 2023.08.09 |
[논문 리뷰] HAT(Hybrid Attention Transformer) 논문리뷰 (0) | 2023.08.04 |