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

Taixi·2024년 9월 17일
0

논문리뷰

목록 보기
2/24

논문 제목: ImageNet Classification with Deep Convolutional Neural Networks

저자 : Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton

Abstract

해당 논문은 ImageNet LSVRC-2010 대회의 120만 개 이미지 분류 작업에서, 5개의 합성곱 계층과 3개의 완전 연결 계층을 가진 심층 합성곱 신경망을 훈련시켰습니다.
이 모델은 6천만 개의 파라미터와 65만 개의 뉴런을 포함하며, 효율적인 GPU 연산과 비포화 뉴런을 사용해 훈련 속도를 높였습니다. 과적합을 줄이기 위해 드롭아웃 정규화 기법을 사용했습니다. 그 결과, 테스트 데이터에서 top-1 오류율 37.5%, top-5 오류율 17.0%를 달성했으며, ILSVRC-2012 대회에서도 top-5 오류율 15.3%로 1위를 차지했습니다

Introduction

현재까지 객체 인식 방법들은 필수적으로 머신러닝 방법을 사용합니다. 성능을 향상시키기 위해서는 더 큰 데이터셋을 수집하고, 더 강력한 모델을 학습하며, 과적합을 방지하기 위한 더 나은 기법들을 사용하는 것이 필요합니다. 최근까지 레이블이 지정된 이미지 데이터셋은 상대적으로 작아서 수만 개의 이미지로 구성되었으며(NORB, Caltech-101/256, CIFAR-10/100 등), 간단한 인식 작업은 이 크기의 데이터셋으로도 해결이 가능했습니다. 특히 레이블을 유지하는 변환으로 데이터셋을 증강시키면 더욱 그렇습니다.그러나 현실적인 환경에서의 객체는 매우 다양한 변화를 보이기 때문에, 객체를 인식하려면 훨씬 더 큰 훈련 데이터셋을 사용하는 것이 필수적입니다.

소규모 이미지 데이터셋의 한계는 이미 널리 인식되었지만, 수백만 개의 이미지로 구성된 레이블 데이터셋을 수집하는 것은 최근에서야 가능해졌습니다.

합성곱 신경망(CNN)은 이러한 모델 클래스 중 하나입니다. 이들의 학습 용량은 깊이와 너비를 조절함으로써 제어할 수 있으며, 이미지의 통계적 고정성과 픽셀 의존성의 국소성에 대한 강력하고 대체로 정확한 가정을 세웁니다. 따라서 유사한 크기의 층을 가진 일반적인 피드포워드 신경망에 비해 CNN은 연결과 파라미터 수가 훨씬 적어 훈련이 용이하며, 이론적으로 최고의 성능은 거의 손실되지 않습니다.

이 논문의 주요 기여도는 ILSVRC-2010 및 ILSVRC-2012 대회에서 사용된 ImageNet 하위 집합에서 현재까지 가장 큰 합성곱 신경망 중 하나를 훈련시켰으며, 이 데이터셋에서 보고된 최고의 결과를 달성했습니다. 저자들은 2D 합성곱 및 CNN 훈련에 필요한 모든 작업을 고도로 최적화한 GPU 구현을 했습니다.

The Dataset

ImageNet은 약 22000개의 카테고리에 속하는 1,500만 개 이상의 레이블이 지정된 고해상도 이미지 데이터셋으로으로 구성되었으며,ImageNet에서 top-1과 top-5 오류율이 보고되며,모델은 고정된 입력 크기가 필요해 모든 이미지를 256x256 해상도로 다운샘플링했습니다. 픽셀 값을 사전 처리한 것은 훈련 세트 평균 값을 빼는 작업뿐이었으며, 원시 RGB 값으로 네트워크를 훈련했습니다.

The Architecture

AlexNet의 구조를 알려주고 어떤 기법을 사용되었는지 소개하는 본론이다.

ReLU Nonlinearity

일반적으로 뉴런의 출력은 탄젠트나 시그모이드 함수로 모델링을 하지만, 포화 함수는 경사 하강법으로 훈련할 때는 느리게 작동해서 f(x)=max(0,x)인 비포화 함수(ReLU)를 사용하면 훈련 속도가 훨씬 빨라집니다. 그래서 ReLU를 사용하는 심층 합성곱 신경망(CNN)은 전통적인 tanh 유닛을 사용하는 모델보다 훈련이 여러 배 빠릅니다. ReLU가 25% 훈련 오류율에 더 적은 반복 횟수로 도달하는 것을 보여주었으며,ReLU를 사용하면 대형 모델을 큰 데이터셋에서 더 빠르게 학습할 수 있어 성능에 큰 영향을 보여주었습니다.

Training on Multiple GPUs

GTX 580 GPU 하나로는 메모리 제한 때문에 큰 신경망을 훈련하기 어렵기때문에, 120만 개의 훈련 예시를 처리하기 위해 네트워크를 두 개의 GPU에 나누어 훈련했습니다. 각 GPU는 절반의 커널을 담당하며, 특정 계층에서만 GPU 간 통신이 이루어졌으며, 이 병렬화 방식은 GPU 간 통신량을 최소화하면서 훈련 성능을 최적화했습니다.

Local Response Normalization

Batch Normalization의 등장으로 잘 사용하지 않는 normalization 기법이지만, 당시에는 ReLU의 결과값이 너무 커져서 주변 뉴런에 영향을 주는 것을 방지하기 위해normalization 기법이 필요했습니다.

Overlapping Pooling

기존에 CNN에서는 Pooling을 진행할 때, pooling unit들이 겹쳐져서 연산되는 것이 아니라 겹치지 않게 연산이 이루어졌다. 저자들은 하지만,저자들은 겹쳐서 pooling 연산을 수행하여 Top-1 에러율을 0.4%, Top-5 에러율을 0.3% 감소시켰습니다. 또한, 훈련 중에 겹치는 풀링을 사용하는 모델이 과적합에 빠지기 더 어려운 경향이 있다는 것을 관찰했습니다.

Overall Architecture

모델의 전체 구조는 총 8개의 레이어로 이루어져있으며, network는 5개의 Convolution Network와 3개의 Fully Connected Network로 구성되어있습니다. 2,4,5번째 Convolution Network들은 같은 GPU에서만 연결되도록 구성되어있습니다. 3번째 Convolution Network는 2번째 Convolution Network의 모든 커널 맵에 연결되어 있습니다. Response-normalization layer는 1번째와 2번째 Convolution Network뒤에 위치합니다. Max-pooling layer는 1,2,5번째 Convolution Network뒤에 위치합니다. ReLU는 모든 Convolution Network와 Fully Connected Network뒤에 위치합니다. Fully Connected의 마지막 레이어는 1000개의 클래스로 분류하는 softmax 연산을 거쳐서 최종적으로 1000개의 객체를 분류할 수 있게 만들었습니다.

Reducing Overfitting

저자들이 사용한 2개의 주된 과적합 방지 기법에 대해서 소개합니다.

Data Augmentation

첫 번째 데이터 증강 방식은 이미지의 이동과 수평 반사를 생성하는 것입니다.이미지(256 x 256)를 좌우반전시켜도 이미지의 라벨은 변하지 않기 때문에 사용할 수 있으며 그 변형된 사진에서 다시 랜덤으로 (224 x 224) 크기의 패치를 얻어내어 입력으로 사용수있습니다. 이렇게 되면 32 x 32 x 2 = 2048 배만큼 데이터를 더 늘릴 수 있게 된다.

두 번째 데이터 증강 방식은 훈련 이미지의 RGB 채널 강도를 변경하는 것입니다. 구체적으로는, ImageNet 훈련 세트의 RGB 픽셀 값에 대해 주성분 분석(PCA)을 수행하고, 발견된 주성분에 따른 배수를 각 훈련 이미지에 추가합니다.

Dropout

서로 다른 모델의 예측결과를 결합하는 앙상블 기법은 그 효과가 매우 좋았지만, 네트워크 구조가 거대한 딥러닝 모델의 경우 학습하는데 시간이 오래 걸리기 때문에 비용적으로 비효율적이었다. 따라서 저자들은 최근에 도입된 Dropout 기법을 사용해보았다고 합니다. 드롭아웃(dropout)"이라는 기법은 각 은닉 뉴런의 출력을 50%의 확률로 0으로 설정하는 방식입니다. 이렇게 "드롭아웃"된 뉴런들은 순방향 계산과 역전파에 참여하지 않습니다. 그래서 입력이 주어질 때마다 신경망은 다른 아키텍처를 샘플링하게 되지만, 모든 아키텍처는 동일한 가중치를 공유합니다.

Details of learning

마지막으로 학습에 관련된 여러 hyper-parameter와 weight 및 bias 초기화 방법 등이 소개되었습니다.

Optimizer: Stochastic Gradient Descent
Batch size: 128
Momentum: 0.9
Weight decay: 0.0005
Weight initialization: Gaussian distribution of μ=0, σ=0.01
Bias initialization: 2nd, 4th, 5th conv layers, fc layers -> 1 / 1st, 3rd conv layers -> 0
Initial learning rate: 0.01
Epochs: roughly 90

📗논문 정리


1.연구 목표

대규모 합성곱 신경망(CNN)을 사용하여 ImageNet LSVRC-2010 대회의 이미지 분류에서 최고 성능을 달성하고, 과적합 문제를 해결하면서 훈련 시간을 단축하는 방법을 연구.

2.연구의 배경지식

기존의 객체 인식 방법은 작은 크기의 데이터셋(NORB, Caltech-101/256, CIFAR-10/100)을 사용했으며, 단순한 변환을 통해 데이터를 증강함.
이미지 인식의 복잡성을 해결하기 위해 더 큰 데이터셋과 더 강력한 모델이 필요.
ImageNet은 1,500만 장 이상의 고해상도 이미지를 포함한 데이터셋으로, 22,000개 이상의 카테고리에 걸쳐 있으며, 그중 1,000개 카테고리와 120만 장의 이미지를 사용하여 훈련.

3.중점적으로 볼 것

ReLU 비선형성: 전통적인 포화 뉴런 모델(예: tanh)보다 훈련 속도가 훨씬 빠르며, 대규모 CNN의 학습에 적합.
병렬 훈련: 두 개의 GPU를 사용해 신경망을 병렬 처리하여 과적합을 줄이고 훈련 속도를 향상시킴.
데이터 증강: 이미지 변환과 RGB 채널 강도를 변경하는 두 가지 데이터 증강 방식으로 데이터셋을 확장해 과적합을 방지.
드롭아웃: 뉴런의 출력을 50% 확률로 제거하여 모델 결합의 효과를 구현하고 과적합을 방지.

4.결론
이 논문에서 개발된 대형 CNN은 ImageNet LSVRC-2010에서 top-1 오류율 37.5%, top-5 오류율 17.0%를 달성했으며, 이후 ILSVRC-2012에서 top-5 오류율 15.3%로 성능을 더욱 향상시킴. ReLU, 병렬 GPU 훈련, 데이터 증강, 드롭아웃 등 여러 기법을 결합해 대형 신경망의 성능을 크게 향상시키고 과적합 문제를 해결했음. 향후 더 큰 네트워크와 비디오 데이터에서 더욱 발전된 CNN을 적용하고자 함


참고:https://velog.io/@lolo5329/%EB%85%BC%EB%AC%B8-%EC%9A%94%EC%95%BD-https://jjuon.tistory.com/22
https://killerwhale0917.tistory.com/14
논문링크:https://proceedings.neurips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

profile
개발자를 위한 첫시작

0개의 댓글

관련 채용 정보