ImageNet Classification with Deep Convolutional Neural Networks

그냥·2024년 6월 2일

논문

목록 보기
1/2
post-thumbnail

1. Introduction

  • ImageNet : 1500만장의 이미지와 22000가지의 카테고리가 레이블된 데이터 셋
  • 기존 MLP기법의 기술적 한계 존재 → 데이터 셋이 커짐에 따라 큰 용량의 모델 필요
  • LeNet같은 기존 CNN기술이 존재 하였지만 모델 활용에 있어 비용 문제가 큼
  • GPU활용과 오버피팅을 방지하기 위한 새로운 방법을 고안함으로써 기존 문제들을 어느 정도 해결

2. The Dataset

  • ImageNet : 1500개의 이미지와 22000개의 카테고리가 레이블된 데이터셋
  • ILSVRC에서는 ImageNet의 부분집합 1000가지 카테고리를 사용
  • 학습 데이터는 약 120만 장, 검증 데이터는 5만 장, 테스트 데이터는 15만 장으로 구성
  • Input Image size → 256x256 CenterCrop(가로/세로 중 작은쪽을 256픽셀로 줄여서 중심을 기준으로 리사이즈)

3. The Architecture

5개의 convolutional layer와 3개의 fully connected layer로 총 8개의 layer로 구성

(각 layer의 자세한 구조는 참조 https://deep-learning-study.tistory.com/376)

1) ReLU Nonlinearity

  • 일반적인 활성함수(tanh or sigmoid)는 학습할 때 saturated되어 학습 속도를 매우 저하시킴

→ saturated : loss가 0인 최적의 w값을 찾는 과정에서 w값의 변화가 없어지는 시점 (기울기가 0이 되는 시점)

  • 앞선 문제점을 개선한 non-saturating nonlinearity로 ReLU를 사용

0미만의 값은 출력 x, 0이상인 경우 값 그대로 출력 → saturation문제 해결

2) Training on Multiple GPUs

  • 하나의 network를 두개의 GPU에 나눠서 학습 → 처리 시간도 감소, error rate도 줄어듦

3) Local Response Normalization(LRN)

  • LeLU특성은 양수 값을 받으면 그 값을 그대로 출력. 그러나, 너무 큰 값이 전달된다면 주변의 낮은 값에 영향을 미쳐 그 값들 또한 커질 수 있다.

→ 사람을 판단하는데 눈이 가장 큰 요소인 경우 눈에게 큰 가중치를 부여, 하지만 눈 근처 코 부분 또한 큰 가중치가 부여되어 사람을 판단하는데 오류가 발생할 수 있다.

위 식을 통해 convoltion layer를 통과한 값을 normalization하여 큰 값을 축소시킴 (k, n α, β는 hyperparameter → 가장 최소화할 수 있도록 값 조정)

4) Overlapping Pooling

  • 일반적으로 pooling layer에서 pooling의 중복을 허용하지 않음

→ pooling layer의 커널 사이즈를 z, stride를 s라고 할 때, s=z이면 보통의 overlap하지 않는 pooling layer

  • 본 논문에서는 z=3, s=2로 하여 overlapping pooling을 구성

5) Overall Architecture

  1. The Architecture 에서 제공한 사이트 참조

4. Reducing Overfitting

1) Data Augmentation(데이터의 수를 증가)

  • CPU를 통하여 진행하기 때문에 GPU의 계산비용을 방해하지 않음
  • Image translation & horizontal reflection : 256x256 이미지를 224x224 크기로 Crop(중앙, 좌측 상단, 좌측 하단, 우측 상단, 우측 하단)

→ crop으로 생성된 5개의 이미지를 horizontal reflection → 하나의 이미지에서 10개의 이미지 생성

  • altering intensities of RGB channels in training images : training set 이미지의 RGB에 PCA를 진행 → RGB색상에 대한 eigenvalue값 찾기

→ eigenvalue + 평균 0, 분산 0.1인 가우시안 분포에서 추출한 랜덤변수의 곱 + RGB값

2) Dropout(train set)

  • 은닉층의 뉴런에서 발생하는 출력을 50%의 확률로 사용하지 않는 것
  • dropout된 뉴런들은 다음 연산에 사용되지 않음 → 매번 다른 arcnitecture가 생성 → 뉴런에 의존한 결과값의 출력을 방지
  • test set의 경우에는 적용 x , 그러나 모든 뉴런 결과값에 0.5를 곱함
  • 두 개의 fully connected layer에만 dropout을 적용
  • 결과적으로 overfitting을 피할 수 있었음

5. Details of learning(hyper parameter)

  • AlexNet은 momentum=0.9, batch size=128, weight decay=0.005로 설정한 SGD(stochastic gradient descent)를 이용

  • weight 초기화는 평균 0, 분산 0.01인 가우시안 분포를 이용
  • bias 초기화는 Conv2,4,5와 FC layer에서는 1로, 나머지 layer에서는 0으로 초기화
  • learning late는 0.01로 초기화 시켰고 validation error가 상향되지 않으면 10으로 나눠줌

6. Result

                                     2010년도 ILSVRC대회 요약표

Top-1 error / Top-5 error : 이미지 분류 성능을 평가하기 위한 것

→ 고양이, 강아지, 집, 축구공, 사자 → 0.1, 0.6, 0.05, 0.05, 0.2. then, top-1 class는 {강아지} , top-2 class는 {강아지, 사자} , top-5 class는 {강아지,사자,고양이,집,축구공}

→ Top-1 error : Top-1 class 중에 실제 강아지가 없을 확률

→ Top-5 error : Top-5 class 중에 실제 강아지가 없을 확률

1 CNN : 본 논문에서 설명된 모델

1 CNN* (6번째 컨볼루션 레이어를 추가한 CNN 모델) - pre-trained된 모델로 ILSVRC-2012 dataset을 fine-tuning한 결과

5 CNN* : 5개의 CNN으로 pre-trained된 모델

  1. 물체가 중간에 있지 않아도 detection이 용이함
  2. Euclidean distance를 계산하여 거리가 짧을수록 유사한 사물로 인지함
  3. 은닉층에서의 이미지 분류방식에 대해 성과를 보임
  4. 그.러.나 2012년 때라 GPU성능이 좋지 않은 한계점 존재

0개의 댓글