DevelopHyun

Data Science & Algorith with Computer Science

AlexNet[1] ImageNet Classification with Deep Convolutional Neural Networks(2012) - Review

20 May 2018 » deeplearning, cnn, alexnet, paperreview

1. Abstract

  • 2012 ILSVRC 우승작
  • 최초로 딥러닝에 GPU를 통한 연산을 도입

2. Introduction

  • 더 좋은 성능을 보이기 위해서는 많은 데이터와, 강력한 모델이 필요
  • CNN
    • 많은 image를 학습하기 위해서는 모델의 capacity가 커야하는데, 이를 CNN이 해결
    • width, height, depth를 조절하여 모델의 capacity를 결정
    • 더 적은 connection과 parameter를 가지고 있으므로 상대적으로 학습하기 쉬움
    • 주변 pixel의 정보도 같이 활요하므로 정보를 잘 담고있음
  • GPU
    • 하지만, 여전히 CNN도 많은 연산량을 가지고 있음
    • GPU를 통해 해결

3. DataSet

  • ILSVRC-2010

4. Architecture

4.1 ReLU Nonlinearity

4.1.1 Fault of Other Activation Functions

activation

  • sigmoid
    • 가 커질 경우, gradient가 0과 가까워지기 때문에, chain rule을 사용하는 gradient descent기법에서 gradient vanishing 문제가 발생할 위험이 크다.
    • gradient는 chain rule에 의하여 , 이기 때문에 input값에 영향을 받게 되는 특성이 있다. 또한, sigmoid의 결과값은 범위에 존재하므로 다음 layer의 input값은 반드시 양수가 된다. 따라서 모든 parameter의 gradient값이 항상 같은 부호를 같게 되므로, gradient descent시에 지그재그로 움직이게 된다.
  • tanh
    • 값이 로 saturated, 즉, 제한되어 있지만 sigmoid와 달리 음수값을 포함하며 zero-centered 되어있다.

4.1.2 ReLu

relu

  • ReLU가 gradient descent 연산에서 다른 activation function보다 더 빠르게 학습된다.
    • sigmoid나 tanh처럼 값이 saturated 되어 있지 않고 linear하기 때문에 gradient가 사라지지 않는다.
    • exponential의 미분이 필요 없으므로 빠른 연산이 가능하다.
  • zero-centered되어 있지 않다.

  • 가 0보다 작을 때는 뉴런이 죽는다.
    • 학습이 더 이상 진행되지 않는다는 단점이 존재
    • 그 자체로 dropout효과를 보일 수도 있다.

4.2 Training on Multiple GPUs

gpu

  • GPU 2개를 사용한 병렬학습
    • kernel의 절반씩 연산
    • 중간중간 GPU끼리 communicate하며, 모델을 섞어줌
  • weight initialization에 상관없이 하나의 gpu는 color와 관련있는 정보, 하나의 gpu는 color와 무관한 정보를 학습하는 결과를 보여줌

4.3 Local Response Normalization

  • ReLU에서는 입력값에 비례하여 출력값이 증가하게 되므로, 값을 중간에 normalization을 해주면 성능이 개선된다.
    • lateral inhibition, 즉, 강한 자극이 주변 약한 자극에 영향을 주는 효과를 방지

4.4 Overlapping Pooling

  • max pooling 사용
  • pooling을 겹치게 하는 방식으로 overfitting을 조금 방지해줌

4.5 Overall Architecture

alexnet

  • 5개의 convolution layer와 3개의 fully-connected layer로 구성
  • max pooling과 Local Response Normalization 같은 곳에서 사용
  • 중간에서 서로 다른 GPU의 연산결과를 공유하게됨
  • classification에 사용되는 모델이므로 마지막은 softmax 사용

5. Reducing Overfitting

  • parameter가 많은 모델이므로 overfitting의 위험이 높음

5.1 Data Augmentation

  • overfitting을 방지하는 가장 쉬운 방법은 label을 유지하며 data set을 늘리는 transformation을 사용하는 것
    • translation과 reflection 사용
    • RGB의 intensity 변경

5.2 Dropout

  • 일정 확률로 node를 학습시키지 않는 방식
    • 해당 parameter는 학습이 되지 않으므로 overfitting되지 않음

6. Details of learning

  • SGD
  • weight initialization by zero-mean Gaussian distribution

7. Results

result

7.1 Qualitative Evaluations

result


8. Discussion

  • layer의 수가 줄어들면 성능이 나빠지므로 모델의 깊이가 딥러닝에서 중요한 부분이다.
  • computing power가 좋아진 덕분에 모델의 크기를 늘려서 좋은 성능을 보일 수 있었다.

9. Reference