토리의 데굴데굴 공부일기

[ 논문 리뷰 ] AlexNet: ImageNet Classification with Deep Convolutional Neural Networks 본문

ML DL/2023 KHU AI Track

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

도토오오리 2023. 8. 2. 17:22

1주차: AlexNet-2012

ImageNet Classification with Deep Convolutional Neural Networks

논문 원문

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

0. Abstract

ImageNet LSVRC-2010 대회에서 1000개의 클래스의 120만개의 고해상도 이미지를 분류를 위해 깊은 dnn을 훈련했다. 이 대회에서 테스트 데이터로 37.5%와 17.0%로 1등과 5등의 오류율을 달성했다. 신경망은 6천만 개의 파라미터와 650,000개의 뉴런, 몇몇은 3개의 max 풀링층과 연결된 5개의 합성곱층, 그리고 마지막은 softmax인 3개의 완전연결 층으로 구성되었다.

학습을 빠르게 하기 위해 비 포화 뉴런과 GPU를 사용했으며, 오버피팅을 줄이기 위해 완전연결층에 최근 개발된 드롭아웃을 적용했다.

ILSVRC-2012 대회에서 이 모델의 변형을 사용해 15.3%의 오류율을 달성해 우승을 차지했다.

1. Introduction

성능 향상을 위해 더 큰 데이터셋을 모으고, 더 강력하게 모델을 학습시켰고, 오버피팅을 방지하기 위해 더 나은 기술들을 사용했다.

최근까지의 데이터 셋 라벨들은 수만개의 이미지 정도로 상대적으로 작았다. 이런 사이즈의 데이터셋들은 간단한 인식 작업을 잘 수행할 수 있었다. 하지만 실제 데이터셋들은 많은 변동성을 나타내기에, 이들을 인식하기 위해서는 훨씬 더 큰 훈련 데이터 셋을 사용해야 한다.

수백만개의 이미지 속에서 수천 개의 객체들을 배우기 위해서는 더 큰 학습능력을 가진 모델이 필요하다. CNN은 깊이와 폭을 변경하여 용량을 제어할 수 있고, 이미지의 특성에 대해 정확한 가정이 가능하다.(Their capacity can be controlled by varying their depth and breadth, and they also make strong and mostly correct assumptions about the nature of images(namely, stationarity of statistics and locality of pixel dependencies.) 또한, 비슷한 사이즈의 레이어를 가진 기존의 feedforward neural networks에 비하면 CNN은 훨씬 적은 연결과 파라미터를 가지고 있기 때문에 훈련시키기 쉽다. 하지만 성능 또한 좋다.

하지만 CNN은 많은 양의 고해상도 이미지에 사용하기에는 엄청나게 비용이 많이 든다. 하지만 다행히 최신 GPU는 2D 합성곱의 최적화된 구현과 함께 큰 규모의 CNN의 훈련도 가능하며, ImageNet과 같은 최신 데이터셋은 심한 과적합 없이 모델을 훈련시킬 수 있는 충분한 라벨이 포함되어 있다.

해당 논문은 ILSVRC-2010,2012 대회에서 현재까지 가장 큰 신경망을 학습시켰고, 가장 좋은 결과를 달성했다. 2D convolution에 최적화된 GPU 구현과 CNN을 학습시키기 위해 내재된 다른 모든 작업들을 작성해놓았다. 네트워크는 성능 향상 및 학습 시간 단축을 위한 특이한 기능들을 탑재했고, 이는 섹션3에 작성했다. 또한 과적합 방지를 위해서도 여러 기술들을 사용했고, 이는 섹션4에 작성했다. 네그퉈크는 5개의 합성곱층과 3개의 완전연결층을 포함하고 있으며, 만약 컨볼루션 레이어를 제거하면 성능이 저하되는 점을 들어 이 깊이가 중요한 것으로 판단된다.

네트워크의 크기는 당시 GPU가 사용할 수 있는 메모리 양과 교육 가능한 시간에 의해 제한되었다. GTX 580 3GB GPU 두개를 사용해 5~6일간 학습 시켰으며, 더 빠른 GPU와 더 큰 데이터 셋을 사용할 수 있다면 결과는 개선될 수 있다.

2. Dataset

ImageNet : 22,000개 카테고리에 속하는 15,000만개 이상의 고해상도 이미지의 dataset

  • 웹을 통해 이미지 수집
  • Amazon Mechanical Turk 크라우드 소싱 도구를 사용하여 라벨 지정
  • 가변해상도 이미지로 구성되어 있어 일정한 입력 크기 필요함 → 고정해상도를 256 x 256으로 다운샘플링

3. The Architecture

ReLU Activation

  • 이전에는 전통적으로 활성화함수로 Tanh 혹은 Sigmoid 사용 (Saturating function: 포화상태가 됨)
  • ReLU는 Non-Saturating 함수.
  • 계산이 빠르다는 장점
  • Gradient vanishing 문제 해결
  • ReLU는 Tanh보다 6배 빠르게 수렴함 → 계산이 빠름

Training on Multiple GPUs

기존의 모델들은 CPU만을 이용해 모델 학습 → 메모리 부족

AlexNet은 GPU를 사용해 병렬 처리를 진행

데이터를 2개의 GPU로 나누어 학습시키다가 하나의 layer에만 GPU 학습을 통합시키는 방법

CNN

  • 합성곱층(Convolution Layer): 필터를 설정하여 이미지 특징점 찾기
  • 풀링층(Pooling Layer): 가중치, 연산량 줄이기
  • 완전 연결 계층(Fully connected Layer)

AlexNet 구조

  • Intra GPU connection: 1,2,4,5번째 conv layer에서는 같은 GPU 내에서의 Kernel만 사용할 수 있음
  • Inter GPU connection: 3번째 conv layer와 3개의 fc layer에서는 모든 Kernel을 사용할 수 있음.

⇒ Top5 error 1.2%, top1 error 1.7% 절감

네트워크는 총 8개의 레이어로 구성되어 있으며, 그 중 5개가 Convolutional Layer이고 3개가 FC Layer이다. FC Layer의 마지막 부분은 softmax함수를 사용하여 1000개의 output을 출력한다

2, 4, 5번째 Convolutional Layer는 이전 레이어에서 같은 GPU에 존재하는 Kernel map에서만 input을 받아들인다. 3 번째 Convolutional Layer에서는 모든 kernel map들로부터 input을 받아들인다. FC Layer의 각 뉴런들은 이전 레이어의 모든 뉴런들과 연결되어 있다.

이 때, Response-Normlization layer(LRN)이 첫 번째와 두 번째 Layer 다음에 연결되어 있고, Max Pooling Layer도 이 LRN layer다음에 붙어 있다. 또한 Max Pooling Layer는 여기에 더해서 5번째 layer에도 붙어있다. Convolutional Layer와 Fc Layer 모두 ReLU 활성화함수를 사용한다.

첫 번째 레이어는 224x224x3 이지미를 입력받으며 이를 11x11x3의 96개의 kernel(filter)과 4-stride로 연산한다. 두 번째 레이어는 첫 번째 레이어의 출력결과가 LRN과 MaxPooling을 거쳐 나온 결과물을 입력으로 받으며, 5x5x48 크기의 256개의 필터가 이를 연산한다. 나머지 3, 4, 5번째 Layer들은 서로간에 연결될 때(3->4, 4->5) 특별한 pooling이나 normalization이 사용되지 않았다. 3번째 Layer는 이전 레이어의 출력 결과가 LRN과 MaxPooling을 거친 결과물을 입력으로 받고 3x3x256크기의 384개의 필터가 연산한다. 4번째 Layer는 3x3x192크기의 필터 384개가 연산하며, 5번째 Layer는 3x3x192 크기의 필터 256개가 연산한다. 마지막으로 FC Layer들은 모두 4096개의 뉴런으로 구성되어 있다.

정리하자면 다음과 같다.

1st layer(Conv)

  • input : 224x224x3
  • filter : 11x11x3. 96개. 4-stride
  • activation : ReLU + LRN + MaxPooling

2nd layer(Conv)

  • filter : 5x5x48. 256개
  • activation : ReLU + LRN + MaxPooling

3rd layer(Conv)

  • filter : 3x3x256. 384개
  • activation : ReLU
  • 유일하게 이전 layer에서 모든 kernel map들과 연결굄

4th layer(Conv)

  • filter : 3x3x192. 384개
  • activation : ReLU

5th layer(Conv)

  • filter : 3x3x192. 256개
  • activation : ReLU

6th layer(FC)

  • Neurons : 4096
  • activation: ReLU

7th layer(FC)

  • Neurons : 4096
  • activation : ReLU

8th layer(FC)

  • Neurons : 1000
  • activation : Softmax

Local Response Normalization(LRN)

측면 억제: Lateral inhibition

실제 뇌세포의 증상으로 강한 뉴런의 활성화가 근처 다른 뉴런의 활동을 억제시키는 현상

  • a^i_x, y : (x,y)에 위치한 픽셀(뉴런)에 i번째 kernel을 적용하고 ReLU를 사용했을 때 나온 activation value.
  • n : 인접하다고 고려할 뉴런의 개수(하이퍼파라미터). n에 따라 j의 범위가 늘어나고 줄어든다.
  • N : 레이어 안에 존재하는 kernel 총 개수

매우 높은 하나의 픽셀값이 다른 곳에 영향 주는걸 줄이기 위해 LRN 수행

Overlapping Pooling

일반적으로 CNN에서 Pooling이라 하면 필터가 겹치지 않고 적용된다. 다시 말하자면, stride=pool_size가 되는 것이다. 그러나 AlexNet에서는 이 필터가 겹치도록 설계를 했다. stride=2, pool_size=3으로 설정하여 겹치는 뉴런을 발생시켰고, 그 결과로 top-1 error rate와 top-5 error rate가 각각 0.4%, 0.3% 줄었다고 한다. 저자들은 이 overlapping pooling이 overfit되기 조금 더 어렵게 만든다고 관찰했다고 한다.

Overall Architecture

4. Reducing Overfitting

Data Augmentation

-Horizontal reflection (좌우반전)

-Image translation (이동)

-Jittering: PCA를 이용하여 각 채널 값의 RGB 값 변경

Dropout

기존에는 여러 모델을 훈련시킨 뒤 이들을 종합하여 예측하는 앙상블 기법이 널리 사용되었으나, 네트워크가 깊고 훈련하는데 몇일이 걸리기 때문에 이 앙상블 기법을 사용하기 어려웠다. 대신, 당시 최신 테크닉인 Dropout을 적용하였는데, 이는 각 뉴런들의 출력결과를 0.5의 확률로 0으로 만드는 것이다. 이렇게 할 경우 0이 된 뉴런은 forward pass시나 backpropagation시에 전혀 기여하지 않는다. Dropout은 뉴런간의 상호의존성을 없애므로 모델이 더 robust해진다. Test시에는 모든 뉴런들을 사용하지만 각각 0.5를 곱해준다.

AlexNet에서는 처음 두 개의 FC Layer에 적용하였고, Dropout없이는 Overfitting에 시달렸다고 한다. 그러나 Dropout은 수렴하기 위해 필요한 iteration 수를 약 2배 증가시킨다.

장점: 뉴런의 의존성 감소, 범용적 특징 학습 가능

5. Details of learning

SGD + momentum(0.9)

배치 사이즈: 128

weight decay: 0.0005

이 방식으로 W를 업데이트하며, 이 때 i는 iteration, v는 momentum 변수, e는 learning rate이다. 마지막 <dl/dw>식은 i번재 batch에서 W_i를 사용하여 구한 gradient들의 평균이다.

초기화 방법으로는 표준편차=0.01이 적용된 zero-mean Gaussian distribution을 각 layer에 적용했다. 2, 4, 5번째 convolutional layer와 앞의 두 FC layer에는 neuron bias로 1을 설정했다. 이렇게 bias를 1로 주면 ReLU에 positive input을 주는 효과가 있기 때문에 초기 학습을 더 가속화시키는 효과가 있다고 한다. 나머지 layer들의 bias는 0으로 설정했다.

Learning rate은 validation error가 현재의 learning rate에서 더이상 감소하지 않을 경우 1/10만큼 감소시켰다. 초기 learning rate은 0.01이였으며, 학습이 끝날 때까지 총 3번 감소하여 최종적인 learning rate은 0.00001이였다.

훈련횟수는 약 90cycle(epochs)였다.

6. Results

Qualitative Evaluations

이는 첫 번째 레이어에서 나타난 feature map인데, 위 3줄은 첫 번째 GPU에서, 아래 3줄은 두 번째 GPU에서 나타나는 모습이다. 첫 번째 GPU에서는 color가 거의 인코딩되어 있지 않지만, 두 번째 GPU에서는 color가 인코딩되어 있는 모습을 볼 수 있다.

좌측 사진은 이미지와 그 밑에 정답 레이블이 표시되어 있고, 그 밑에는 모델이 예측한 top-5 label이 그래프로 주어진다. 그 중 빨간 그래프가 정답 레이블에 해당하는 그래프이다. 이를 보면 물체가 꼭 중앙에 있지 않더라도, 다시 말하면 위치에 상관없이 분류를 잘 해내는 것을 알 수 있다. 또한, 오분류한 대표적인 예시 중 grille과 cherry는 사람이 보기에도 애매한 구석이 있다.

모델의 visual knowledge를 보다 더 깊이 관찰하기 위해 마지막 FC layer들의 4096-dimensional layer의 feature activation을 살펴보았다. 좌측 사진은 가장 왼쪽의 column이 test set에서 뽑은 것들이고, 나머지는 train set에서 뽑은 이미지들이다. 여기서 test set에서 뽑은 사진들을 각각 모델에 넣고, 4096-layer에서의 feature activation을 기준으로 가장 근사한 것들을 뽑은 것이다(근사한 기준은 L2 사용). 보면 픽셀 단위로는 test set과 train set이 전혀 다르지만(색이나 포즈라던가), 그럼에도 불구하고 같은 부류라고 판단하는 것을 볼 수 있다. 이를 통해 단순히 픽셀이 아닌, 더 고차원적인 근거로 분류한다는 것을 알 수 있다.

7. Discussion

AlexNet

: 2012년에 개발된 딥러닝 모델

이미지 분류 작업에서 큰 성과를 이룬 최초의 컨볼루션 신경망(CNN)중 하나

⇒딥러닝 분야에서 중요한 발전점 중 하나로 여겨짐

이미지 인식 대회인 ILSVRC(ImageNet Large Scale Visual Recogniton Challenge) 2012에서 우승하여 큰 주목을 받음

→ CNN이 DMLP보다 우수한 성능을 보임을 증명 → 이후 CNN 활발히 사용됨

→ 크고 심층적인 CNN이 순수 지도 학습을 사용하여 매우 어려운 데이터 세트에서 기록적인 결과를 달성할 수 있음

특징

  • 깊은 구조: AlexNet은 기존의 인공신경망보다 훨씬 깊은 구조를 갖는다. 8개의 레이어로 이루어진 컨볼루션 신경망을 구성했는데, 당시에는 매우 깊은 구조. 이를 통해 더 복잡한 특징을 추출하고 학습할 수 있게 됨
  • 활성화 함수: ReLU 활성화 함수를 사용하여 비선형성을 도입. 기존의 시그모이드 함수보다 학습 속도를 향상시키고, 그레디언트 소실 문제를 완화하는데 도움을 줌
  • 드롭아웃: 과적합을 방지하는 역할. 훈련 과정에서 무작위로 일부 뉴런을 비활성화시켜 다양한 조합으로 학습하게 하여 일반화 능력을 향상
  • GPU를 활용한 병렬 처리: AlexNet은 NVIDIA의 GPU를 활용하여 병렬 처리를 수행함. 이로 인해 학습 속도가 크게 향상되었고, 대규모 이미지 데이터셋을 다룰 수 있게 됨

 

 


참고 문헌

https://killerwhale0917.tistory.com/14

 

[논문 리뷰] AlexNet / ImageNet Classification with Deep CNN

AlexNet이라고 흔히 불리는 이번 논문은 2012년 이미지 분류 대회에서 우승을 차지한 모델이다. CNN을 사용한 딥러닝 구조에서 어떻게 많은 120만 장의 사진들을 그 당시 기술로 처리를 하였고, 파라

killerwhale0917.tistory.com

https://mountain96.tistory.com/33

 

[논문 리뷰] AlexNet(2012) 요약 및 리뷰

서론 배경 객체탐지를 위해서는 많은 데이터셋, 더 강력한 모델, overfitting을 피하기 위한 발달된 기법이 필요하다. 이 중 데이터셋의 경우 기존에는 적은 양의 데이터셋에만 접근이 가능했지만(2

mountain96.tistory.com