본문 바로가기

AI

논문- ImageNet Classification with Deep ConvolutionalNeural Networks

Abstract

  • ImageNet은 일부는 max-pooling layer가 적용된 5개의 Convolution layer, 3개의 fully-connected layer, classifying을 위한 1000 way softmax가 적용된 구조이다.
  • 또한 논문에서는 오버 피팅을 방지하기 위한 regularization method인 ‘drop out’을 제시한다.

1. Introduction

  • 이미지 넷의 방대한 규모(22,000개 카테고리, 1500만 개의 라벨링된 이미지로 구성)
  • 해당 뉴럴 네트워크는 5개의 convolutional layer, 3개의 fully-connected layer로 구성 되었으며 이중 어떠한 conv layer를 제거하는 것은 심각한 성능 저하로 이어졌음을 발견함.

2. The Dataset

  • ImageNet 데이터 셋은 다양한 사이즈의 이미지를 가지고 있으나 해당 모델은 고정된 차원의 이미지를 필요로 하기 때문에, 이미지의 사이즈를 256x256으로 고정하여 사용함.
  • 다운 샘플링 과정은 다음과 같음. 이미지의 짧은 부분을 256으로 리스케일링 후 crop 하여 256x256 사이즈를 만듦.
  • 이미지 전처리 시, 훈련 세트에 여러 장의 이미지가 있다면 각 이미지의 (i, j) 위치의 RGB 값을 다 더하고 평균을 내어 (i, j) 위치의 평균 값(mean activity)을 구한 후, 이를 각 이미지의 (i, j) 위치에서 빼서 모든 이미지를 중심화하였음.
  • 훈련시 이외의 전처리 작업은 진행하지 않았기에 중심화된 RGB 값을 학습에 사용함.

3. The Architecture

3.1 ReLU Nonlinearity

  • 기존 Sigmoid, tanh 대신 ReLU를 activation function으로 사용하여 tanh에 비해 훨씬 적은 epoch로 25% 오류율에 도달할 수 있었음(6배 빠른 속도로 학습이 가능했음).

3.2 Training on Multiple GPUs

  • 두개의 GTX 580 3gb GPU를 통해 학습을 진행함.
  • 신경망의 절반을 각각의 GPU에 배치하며, 특정 레이어에서만 GPU간 통신을 수행하는 방식으로 설계함.
  • 예를 들어, 3층의 커널은 2층의 모든 커널 맵에서 입력을 받지만, 4층의 커널은 같은 GPU에 위치한 3층의 커널 맵에서만 입력을 받음.
  • 이는 한대의 GPU에서 절반의 커널로 학습한 네트워크와 비교해 top1과 top5 오류율을 각각 1.7%, 1.2%씩 감소시켰음.
  • 학습 시간은 소폭 감소함.

3.3 Local Response Normalization

  • ReLU의 경우 인풋 값이 0보다 큰 경우 기울기가 1이 되므로, Sigmoid와 같이 기울기가 너무 작아져 학습이 잘 되지 않는 포화(Saturation)를 예방할 수 있다. ($W^{(n+1)} = W^{(n)} - \sigma({dL\over dW})$일 때, sigmoid의 경우, 많은 경우에서 σ(dL/dW)값이 너무 작아져 학습이 잘되지 않음)
  • ReLU는 Sigmoid와 달리 saturation을 예방하기 위한, input normalization이 필요하지 않다는 장점이 존재.

  • 과적합을 방지하기 위해 ReLU를 통과한 값에 Local Response Normalization을 적용하였다. 위의 수식은 ReLU를 통과한 값을 Normalize하는 수식으로, i번 채널의 활성 값을 주변 n개의 채널들의 제곱 합의 β제곱으로 나누어준다.
    • $\alpha^i_{x,y}$ : ReLU를 통과한 활성화 값 ((x,y)에서 i 번 커널에 의해서 계산된 뉴런의 activity)
    • $\beta^i_{x,y}$: Local Response Normalization로 정규화된 뉴런의 활성화 값
    • k,α,β,n: 정규화에 사용되는 하이퍼파라미터 (논문에서는 k = 2, n = 5, α = 1e-4, β = 075로 설정)
    • $j$: $i$와 인접한 뉴런의 인덱스로, 합산을 통해 주변 뉴런의 활성화를 고려
    • 활성화 값: 비선형 함수(여기선 ReLU를 통과한 값)

3.4 Overlapping Pooling

  • 기존의 일반적인 풀링은 커널들이 서로 겹치지 않게 진행되었지만, 해당 논문에서는 이웃 영역을 중첩시키는 오버랩 풀링을 적용
  • 오버랩 풀링으로 과적합을 줄이는 효과를 가져옴
  • 풀링 크기 $z=3$, 풀링 간격 $s=2$로 설정
  • 이 과정을 통해 top-1, top-5 에러율을 각 0.4%. 0.5%씩 감소시킬 수 있었음.

3.5 Overall Architecture

  • 두개의 GPU를 사용하며, 뉴런의 절반 씩을 각 GPU에 할당했기에 하나의 레이어가 위, 아래 두개의 커널로 분리된 모습으로 표현되었다.
  • 2, 4, 5번 conv 레이어는 직전 레이어가 동일한 GPU에 있는 커널과 연결되었다. (빨간 화살표로 표시)
  • 2번 conv 레이어는 256개의 커널을 사용하며 $5$ X $5$ X $48$ 인풋을 받아서 $3$ X $3$ X $256$의 아웃풋을 반환한다.
  • FC Layer에는 4096개의 input이 입력된다.

4. Reducing Overfitting

4.1 Data Augmentation

  • 첫번째 방법으로는 226 X 226 이미지로부터 224 X 224의 patch를 랜덤으로 추출 후 수평 반전을 시켜 데이터 증강을 진행(crop)
  • 두번째 방법으로는 RGB 채널의 밝기와 색상을 변형해 이미지의 특성을 보존하면서도 다양한 훈련 데이터를 제공
  • 이를 통해 top-1 에러율을 1%가량 감소시킬 수 있었음.

4.2 Drop out

  • 처음 두개의 Fully Connected Layer에 50%의 확률로 drop out을 설정하여 적용

'AI' 카테고리의 다른 글

논문- You Only Look Once  (1) 2024.10.09
논문리뷰- A Survey on Antispoofing Schemes for Fingerprint Recognition Systems  (0) 2024.09.06
RNN  (0) 2024.08.25
CNN  (0) 2024.08.25
Activation function과 Weight initialization  (0) 2024.08.22