본문 바로가기
AI/Paper Review

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

by hyeok1235 2024. 9. 2.

0. Abstract

흔히 AlexNet으로 불리는 이 모델은 ILSVRC-2012 (ImageNet Large Scale Visual Recognition Challenge)에 우승을 한 모델이다. top-5 error는 15.3%로 2등을 한 모델(26.2%)과 차이가 크게 벌어졌다. 간략하게 모델에 대해서 설명하자면, 약 6000만개의 학습 가능한 파라미터가 있고 65만개의 뉴런이 있으며, 총 8개의 layer(5개의 convolutional layer와 3개의 fully-connected layer)가 있다. 오버피팅을 줄이기 위해서 fully-connected layer에는 당시에 새롭게 나왔던 드롭아웃 기법을 활용한다.

 

1. Introduction

MNIST처럼 간단한 object recognition 문제들에 대해서는 데이터셋을 늘리고, 더 복잡한 모델을 사용하거나, 오버피팅을 줄이는 기술들을 활용하면 성능을 개선할 수 있었다. 하지만 몇 천개의 object들에 대해서 학습하는 과정은 복잡도가 너무 높아서 ImageNet과 같이 거대한 데이터셋을 사용해도 부족했다. 따라서 깊이와 너비를 조절할 수 있고, 모르는 부분에 대해 예측을 잘하는 CNN (Convolutional neural network)을 활용한다. 

고화질 이미지에 대한 계산 복잡도가 높은 것은 사실이나, CNN의 효율성과 더불어 GPU의 발전과 2D convolution을 활용해 모델의 크기를 키울 수 있었다. 새로운 방식을 통해 성능을 높여주는 새로운 특징들을 포착할 수 있었고, 오버피팅을 방지하는 기법들을 사용해서 모델의 크기를 늘릴 수 있었다.

* 이 논문이 발표될 당시에는 저자들이 학습 속도를 위해서 GPU 2개로 parallel하게 학습을 진행했다. 따라서 논문의 모델 구조를 보면 path가 2개이다. 현재는 대부분 GPU 1개로 학습을 진행한다.

 

2. The Dataset

ImageNet 자체는 약 1500만 개의 라벨링된 이미지가 있으나, ILSVRC는 ImageNet의 일부만 사용해서 약 120만 개의 training images, 5만 validation images, 그리고 15만 testing image를 사용한다. ImageNet의 이미지들은 해상도가 정해져 있지 않지만, 해당 모델은 무조건 256x256 크기여야 한다. 따라서 저자들은 이미지의 짧은 쪽을 256에 맞추고 256x256이 되도록 가운데 부분만 잘라내서 사용했다.

 

3. The Architecture

저자들이 생각하는 중요도에 따라서 모델의 특징들이 설명되어 있다.

 

3.1 ReLU Nonlinearity

가장 표준적인 방법은 $f(x) = tanh(x)$를 사용하거나 $f(x) = (1 + e^{-x})^{-1}$를 사용하는 것이었다. 하지만 ReLU(Rectified Linear Units)를 사용하는 것이 더 속도가 빨랐기 때문에 AlexNet에는 ReLU가 사용되었다. 학습 속도가 더 빨라졌기 때문에 크기가 큰 데이터셋에 대해 크기가 큰 모델을 시도할 수 있게 되었다. 다른 시도에서는 $f(x) = |tanh(x)|$도 사용되는 경우가 있었지만, 해당 경우에는 오버피팅을 방지하기 위해서 사용되었기 때문에 이루고자 하는 목표가 다르다고 볼 수 있다. 

 

3.2 Training on Multiple GPUs

메모리 크기가 제한되어서 네트워크의 최대 크기를 제한하는 문제가 존재했다. 따라서 2개의 GPU를 병렬적으로 사용해서 네트워크를 퍼뜨려 놓을 수 있었다. 특정 레이어에서만 다른 GPU의 정보를 읽거나 쓸 수 있는데, cross-validation과 유사하게 어떤 레이어를 선택하냐에 따라서 성능이 조금씩 달라져 튜닝 과정이 필요하다.

 

3.3 Local Response Normalization

ReLU는 input normalization이 필요하지 않지만, 결과 값이 매우 커질 수도 있기 때문에 response normalization을 해주면 성능이 개선된다. 그 이유는 CNN에서는 현재 픽셀에 대한 결과를 계산하기 위해서 주변 픽셀들을 모두 고려하는데, ReLU로 인해 주변 값이 너무 커진다면 영향을 받기 때문이다. 실제로 response normalization을 수행했을 때 성능이 개선되는 것을 확인했다고 한다.

 

3.4 Overlapping Pooling

기존 CNN은 stride와 kernel 크기가 같아서 pooling unit들이 겹치지 않았다. 하지만 일부러 s=2, z=3 (stride = 2, kernel = 3x3)을 사용함으로써 pooling unit끼리 겹치게 하였다. 이 방법으로 오버피팅이 줄어들면서 에러율이 조금은 감소한 것을 확인할 수 있다.

 

3.5 Overall Architecture

AlexNet은 총 8개의 레이어가 있다. 5개의 convolutional layer 뒤에 3개의 fully-connected layer가 존재한다. 마지막 fully-connected layer는 softmax 연산을 취해서 1000개의 클래스 라벨에 대한 분포를 만들어낸다. 

AlexNet 모델 구조

* 224x224가 아니라 227x227로 정정되었다.

 

3번째 convolutional layer는 GPU 간의 communication이 허락되어 input 크기가 2배가 된다. Response Normalization은 1번째와 2번째 레이어에 적용되었으며, Max-pooling은 1번째, 2번째, 5번째 레이어에 적용되었다. ReLU는 모든 layer에 적용되었다.

 

credit by Justin Johnson

 

※ 커널과 필터의 차이

커널과 필터는 종종 interchangeably하게 사용되는데, 커널은 sliding되면서 특징이나 패턴을 찾는 역할을 하고 필터는 커널의 집합이다. 커널은 11x11x3처럼 크기가 주어지고, 필터의 값이 64로 주어진다면 커널이 64개라는 뜻이다. 각 커널은 랜덤한 값으로부터 출발하기 때문에, 각 커널은 다른 특징들을 잡아낸다 (수평선, 수직선, 텍스쳐 등).

 

4. Reducing Overfitting

1000개의 클래스로만 구분하면 되지만 파라미터의 개수가 너무 많아서(6000만 개) 오버피팅의 위험이 있다. AlexNet은 2가지 방법을 사용한다.

 

4.1 Data Augmentation

라벨을 유지하면서 데이터 augmentation을 진행하는 방법은 가장 쉬우면서도 널리 쓰이는 방식이다. 1) 좌우반전 시키거나 2) RGB 값의 강도를 바꾸는 방식을 사용하는데, 해당 augmentation 모두 연산이 단순해서 GPU에 영향을 미치지 않고 CPU에서 연산을 처리할 수 있다. 첫번째 augmentation이 없다면 데이터셋 크기가 줄어들어서 모델의 크기를 감당하지 못했을 것이다. 두번째 augmentation은 조명이나 색상의 강도와 상관 없는 좋은 특징들을 포착할 수 있게 한다.

 

4.2 Dropout

여러 모델의 예측을 합치는 것은 언제나 유용하지만, 현재 모델 크기로써는 그 비용이 너무 비싸서 그럴 수 없었다. 그래서 당시에는 새롭게 소개된 기법 중 하나인 드롭아웃 기법을 활용해서

 

5. Details of learning

batch size가 128이며 momentum이 0.9, weight decay가 0.0005인 stochastic gradient descent를 사용해서 학습되었다. learning rate는 모든 layer에 대해 동일하게 학습 과정 중에서 직접 조정되었다. validation 에러율이 낮아지는게 멈출 때쯤 10으로 나누는 휴리스틱을 사용했다. 

 

6. Results

ILSVRC-2010에 대해서는 top-1 에러율 37.5%, top-5 에러율 17.0%로, 2010년 우승 모델 47.1%, 28.2%보다 개선된 것을 확인할 수 있다. ILSVRC-2012에 대해서는 test set label이 공개되지 않아 정확한 수치를 확인할 수는 없다. 

 

6.1 Qualitative Evaluations

2개의 GPU를 사용했을 때, 특정 GPU의 커널들은 색상과 독립적인 특징들을 추출했으며 다른 GPU의 커널은 색상과 관련된 특징들을 추출했다. 이러한 specialization은 랜덤하게 weight를 설정해도 발생하였다.

픽셀 레벨에서는 동일한 개체지만 다른 포즈를 가지고 있다면 L2 norm을 바탕으로 했을 때 차이가 많이 난다. 하지만 더 높은 차원의 4096-dimensional hidden layer에서는 유사한 것으로 인식되는 것을 확인 할 수 있다.

 

7. Discusison

저자들은 모델의 크기를 더 키울 수 있는 computational power를 사용한다면 성능이 더 개선될 것으로 예상한다. 영상으로 넘어간다면, 정적 이미지와 달리 문맥처럼 유용한 정보를 활용할 수도 있다고 본다.

 

 

 

논문 링크:
ImageNet Classification with Deep Convolutional Neural Networks

 

728x90
반응형