[논문] ImageNet Classification with Deep Convolutional Neural Networks - 1

ByungJik_Oh·2026년 2월 2일

[Paper Review]

목록 보기
1/3
post-thumbnail

Abstract

우리는 대회에서 1000개의 다른 클래스를 가진 120만개의 고해상도 이미지를 분류하기 위해 크고 깊은 CNN을 학습시켰다.

테스트 데이터에서, 우리는 상위 1개와 상위 5개 오류율에서 이전보다 나은 37.5%와 17.0%를 달성했다.

6천만개의 파라미터와 65만개의 층을 가진 신경망은 5개의 컨볼루션 레이어로 구성되어 있으며, 그 중 일부는 맥스 풀링 레이어가 뒤따르고, 3개의 완전 연결층과 마지막으로 1000 갈래의 소프트맥스 레이어가 있다.

학습을 더 빠르게 만들기 위해, 우리는 비포화 뉴런을 사용했으며 매우 효율적인 GPU 기반 컨볼루션 연산을 사용했다.

우리는 완전 연결층에서 과적합을 줄이기 위해 매우 효과적이라고 증명괸 드롭 아웃이라고 불리는 최근 개발된 규제 방법을 사용했다.

우리는 이 모델의 변형 버전을 ILSVRC-2012 대회에 출품하여 15.3%의 테스트 오류율로 5위 안에 드는 성과를 거두었으며, 이는 2위로 선정된 팀의 26.2%에 비해 훨씬 낮은 수치이다.


1 Introduction

현재 객체 인식에서의 접근은 머신 러닝 기법들의 필수적으로 사용한다.

우리는 성능을 향상시키기 위해서 더 방대한 데이터셋을 수집할 수 있고, 더 강력한 모델을 학습시킬 수 있다. 그리고 과적합을 방지하기 위해 더 나은 기술을 사용할 수 있다.

최근까지, 라벨링된 이미지의 데이터셋은 수만정정도의 규모로 상대적으로 작았다.

특히 만약 그것들이 레이블 보존 변환과 함께 증강되었다면 이러한 크기의 데이터 셋으로도 간단한 인지 작업은 꽤 잘 해결할 수 있다.

예를 들어, MNIST 숫자 인식 작업에서의 최고의 오류율은 인간의 수준까지 접근한다,

그러나 현실의 객체는 많은 다양성을 보여준다. 그래서 이들을 인지하는 것을 학습하기 위해 더 큰 학습 데이터셋을 사용하는 것은 필수적이다.

그리고 물론, 작은 이미지 데이터셋의 단점은 널리 인지되고 있다. 그러나 수백만장의 이미지로 이루어진 라벨링된 데이터셋을 모으는 것이 오직 최근에 가능해졌다.

새로운 더 큰 데이터셋은 수백 수천장의 완전 분할된 이미지로 이루어진 LabelMe와 22000개 이상의 카테고리에 걸쳐 150만개 이상의 라벨링된 고해상도 이미지로 이루어진 ImageNet을 포함한다.

수백만장의 이미지로부터 약 수천개의 객체를 학습하기 위해 우리는 방대한 학습 능력을 가진 모델이 필요하다.

그러나, 객체 인식 작업의 엄청난 복잡도는 ImageNet의 거대한 데이터셋조차 이 문제를 명확하게 할 수 없다는 것을 의미한다. 구래서 우리의 모델은 우리가 가지고 있지 않은 모든 데이터를 보상하기 위해 선행되는 지식을 가지고 있어야한다.

CNN은 이러한 모델의 한 종류를 구성한다.

그들의 성능은 이들의 깊이와 너비를 다양하게 하는 것으로 제어될 수 있다. 그리고 이들은 또한 이미지의 본질에 대해 강력하고 대부분 정확한 가정을 만든다.

또한, CNN은 비슷한 크기의 레이어로 이루어진 표준 feedforward 신경망과 비교했을 때 더 적은 연결과 파라미터를 가진다. 그래서 이러한 점은 학습을 더 쉽게하고 이론적으로 최고의 성능은 약간 떨어질 수 있다.

CNN의 매력적인 성능과 이들의 로컬 구조의 상대적인 효율성에도 불구하고, 이들은 여전히 방대한 고해상도 이미지에 적용하기에 비용이 많이 든다.

운이 좋게도, 최신 GPU는 고도로 최적화된 2D 컨볼루션 구현돠 결합하여 매우 큰 CNN을 학습할 수 있을 만큼 충분하며, ImageNet과 같은 최근 데이터셋은 이러한 모델이 심각한 과적합 없이 학습하기에 라벨링된 예제들을 충분히 포함하고 있다.

이 논문의 구체적인 기여는 다음과 같다: 우리는 두 대회에서 ImageNet의 서브셋으로 현재까지 가장 큰 CNN 중 하나를 학습시켰다. 그리고 이 데이터셋에서 보고된 결과 중 가장 좋은 결과를 달성했다.

우리는 2D 컨볼루션과 신경망 연산에 필요한 다른 모든 연산에 고도로 최적화된 GPU 구현을 개발했으며, 이를 공공적으로 사용가능하게 하도록 한다.

우리의 신경망은 학습시간을 줄이고 성능을 향상시킨 여러가지 새롭고 일반적이지 않은 특징을 포함하고 있으며, 이는 섹션 3에 자세히 서술되어있다.

우리의 신경망의 크기는 120만장의 라벨링된 학습 예제에서 과적합을 주요 문제로 하였으며, 우리는 과적합을 방지하기 위해 섹션 4에 묘사된 몇몇의 효과적인 기술을 사용했다.

우리의 최종 신경망은 다섯개의 컨볼루션 레이어와 3개의 완전 연결층을 포함하고 있으며 이들의 깊이는 중요하다: 우리는 컨볼루션 레이어를 제거하는 것은 (각각 모델의 파라미터의 1% 이하를 포함한다.) 성능저하를 야기하는 것을 알아냈다.

마지막엔, 신경망의 크기는 주요하게 최신 GPU의 메모리의 양과 우리가 인내할 수 있는 학습시간에 의해 제한적이다.

우리의 신경망은 두 개의 GTX 580 3GB GPU에서 학습시키기 위해 5일에서 6일 정도 걸렸다.

우리의 모든 실험은 더 빠른 GPU와 더 큰 데이터셋을 사용하게 되는 것을 기다리는 것으로 간단하게 우리의 결과가 향상될 수 있다고 생각한다.


2 The Dataset

ImageNet은 대략 22000개의 카테고리에 속한 150만개 이상의 라벨링된 고해상도 이미지들로 이루어진 데이터셋이다.

이미지들은 웸에서 수집되었으며 Amazon의 Mechanical Turk crowd sourcing tool을 사용하여 사람들에 의해 라벨링되었다.

2010년부터 Pascal Visual Object Challenge의 일환으로 ImageNet Large-Scale Visual Recognition Challenge(ILSVRC)라는 연례 대회가 개최되고 있다.

ILSVRC는 각 1000개의 카테고리에 속한 대략 1000개의 이미지로 이루어진 ImageNet의 서브셋을 사용한다.

전체적으로, 대략 120만개의 학습 이미지들과 5만개의 검증 이미지, 그리고 15만개의 테스트 이미지가 있다.

ILSVRC-2010은 테스트셋의 레이블이 사용가능한 ILSVRC의 단 하나의 버전이며, 이는 우리의 대부분의 실험을 보여준 버전이다.

우리는 ILSVRC-2012 대회에도 모델을 제출했으므로, 섹션 6에서는 테스트 세트 레이블을 사용할 수 없는 이 버전의 데이터셋에 대한 결과도 보고한다.

ImageNet에서는 일반적으로 두 가지 오류율을 보고한다. top-1 오류율과 top-5 오류율이다. 여기서 top-5 오류율은 모델이 가장 가능성이 높다고 판단한 다섯 가지 레이블 중 하나에 해당하지 않는 테스트 이미지의 비율을 나타낸다.

우리의 시스템이 일정한 입력 차원을 필요로 하는 반면, ImageNet은 다양한 해상도의 이미지들로 구성되어 있다.

그러므로, 우리는 이미지를 256x256의 고정된 해상도로 다운샘플링하였다.

직사각형 이미지가 주어지면, 우리는 가장 처음으로 짧은 변의 길이가 256이 되도록 이미지의 크기를 rescale 하였고, 결과 이미지 중앙의 256x256 부분을 잘라냈다.

우리는 이미지를 각 픽셀에서 전체 훈련 세트의 평균 활동량을 빼는 것을 제외하곤 다른 방법으로 전처리하지 않았다.

그래서 우리는 우리의 신경망을 픽셀들의 기본 RGB 값으로 학습시켰다.


3 The Architecture

우리의 네트워크의 구조는 Figure 2에 요약되어 있다.

이것은 5개의 컨볼루션 레이어와 3개의 완전 연결층으로 이루어진 8개의 학습된 층을 가진다.

아래에, 우리의 신경망 구조의 몇몇 특이하고 일반적이지 않은 특징을 설명한다.

섹션 3.1에서 3.4는 가장 중요한 것이 먼저 오도록 정렬되어 있다.

3.1 ReLU Nonlinearity

입력 xx의 함수로써 신경망의 출력 ff를 모델링하는 표준 방법은 f(x)=tanh(x)f(x) = tanh(x) 또는 f(x)=(1+e1)1f(x) = (1+e^{-1})^{-1}이다.

훈련 시간 측면에서 경사 하강법을 사용할 경우, 이러한 포화 비선형 함수는 f(x)=max(0,x)f(x) = max(0,x)와 같은 비포화 비선형 함수보다 훨씬 느립니다.

Nair and Hinton에 따라, 우리는 이러한 비선형성을 가진 뉴런을 ReLU라고 부른다.

ReLU 함수를 사용하는 깊은 CNN은 tanh 함수를 사용할 때보다 몇 배 더 빠르게 학습한다.

이것은 그림 1에 묘사되어 있으며, 이는 특정 4개의 층의 컨볼루션 신경망이 CIFAR-10 데이터셋에서 25% 훈련 오류율에 도달하기 위해 필요한 반복의 수를 보여준다.

이 플랏은 만약 우리가 기존의 포화 신경 모델을 사용했다면 이러한 거대한 신경망을 사용하는 작업을 실험할 수 없었을 것이라는 것을 보여준다.

우리가 CNN에서 기존의 모델에 대한 대안을 고려한 것이 처음이 아니다.

예를 들어, Jarrettet al은 f(x)=tanh(x)f(x) = |tanh(x)| 와 같은 비선형함수가 Caltech-101 데이터셋에서 이들의 대비 정규화 방법과 이에 따른 로컬 평균 풀링 방법과 함께 특히 잘 작동한다고 주장한다.

그러나, 이 데이터셋에서 가장 중요한 것은 과적합을 방지하는 것이며, 그들이 관찰한 효과는 우리가 보고하는 ReLU를 사용하여 훈련 데이터셋을 학습하기 위한 가속 성능과 다르다.

더 빠른 학습은 거대한 데이터 셋에서 학습된 거대한 모델의 성능에서 큰 영향을 가진다.

그림 1

ReLU 함수를 사용하는 4개 층의 CNN은 CIFAR-10 데이터셋에서 tanhtanh 함수를 사용하였을 때보다 6배 빠르게 25% 훈련 오류율에 도달한다.

각 네트워크의 학습률은 학습을 가능한 빠르게 만들기위해 독립적으로 선택된다.

아무런 규제도 적용되지 않았다.

이곳에 나타난 효과의 크기는 신경망 구조에 따라 다양하며, ReLU 함수를 사용한 신경망은 일관적으로 포화 신경망보다 몇 배 더 빠르게 학습한다.

3.2 Training on Multiple GPUs

하나의 GTX 580 GPU는 3GB 메모리를 가지고 있으며, 이는 학습할 수 있는 신경망의 최대 크기를 제한한다.

이는 120만개의 훈련 예제로 신경망을 하나의 GPU에서 학습시키기에는 너무 크다고 밝혀졌다.

그러므로 우리는 두 개의 GPU로 신경망을 퍼뜨렸다.

최신 GPU는 GPU간 병렬화에 특히 잘 맞으며, 이들은 호스트 머신 메모리를 거치는 것 없이 직접적으로 다른 메모리에 읽고 쓸 수 있다.

우리가 채택한 병렬화 구조는 주요하게 하나의 추가적인 트릭과 함께 각 GPU에 커널(또는 신경망)의 절반을 넣는다: GPU는 특정 층에서만 통신한다.

이것은 예를 들어 레이어 3의 커널들은 레이어 2의 모든 커널 맵으로부터 입력을 받는다는 것을 의미한다.

그러나 레이어 4의 커널들은 동일한 GPU에 있는 레이어 3의 커널 맵에서만 입력을 받는다.

패턴을 선택하는 것은 cross-validation의 연결성의 문제이며, 이것은 우리가 연산량의 허용가능한 비율이 될 때까지 통신의 양을 정밀하게 튜닝할 수 있도록 한다.

결과적으로 얻어진 구조는 우리의 column은 독립적이지 않다는 것을 제외하면 Ciresanet al이 사용한 "columnar" CNN과 비슷하다.

이 구조는 하나의 GPU에서 각 컨볼루션 레이어가 학습된 절반의 커널을 사용하는 네트워크와 비교했을 때, 우리의 top-1, top-5 오류율을 1.7%, 1.2% 줄인다.

두 개의 GPU 신경망은 하나의 GPU 신경망보다 학습시키는 데에 약간 적은 시간이 걸린다.

3.3 Local Response Normalization

ReLU 함수는 이들을 포화 상태로부터 방지하기위한 입력 정규화를 필요로 하지 않는 이상적인 특징을 가진다.

만약 최소 몇몇 훈련 예제가 ReLU 함수에 양의 입력을 제공한다면, 학습은 해당 뉴런에서 발생할 것이다.

그러나, 우리는 다음과 같은 로컬 정규화 방법은 일반화에 도움이 된다는 것을 알 수 있다.

커널 ii를 위치 (x,y)(x,y)에 적용한 후 ReLU 비선형 함수를 적용하여 계산한 뉴런의 활동을 ax,yia_{x,y}^i 로 나타낼 때, 응답으로 정규화된 활동 bx,yib_{x,y}^i는 다음과 같이 주어진다.

표현식

여기서 같은 공간에 위치한 인접한 nn개의 커널 맵에서 덧셈이 이루어지며, NN 은 레이어 안에 있는 커널의 총 수이다.

커널맵의 순서는 학습이 시작되기 전엔 임의적으로 결정된다.

응답 정규화 방식은 실제 신경 속에서 영감을 받은 측면 억제 형태를 구현하며, 이는 다른 커널을 사용하여 계산된 뉴런 출력 간의 큰 활동에 대한 경쟁을 만든다.

이 방식은 Jarrett et al의 로컬 대비 정규화 방법과 약간의 유사점을 가지고 있지만, 우리의 방식은 평균 활동을 빼지 않기 때문에 "밝기 정규화"라고 부르는 것이 더 정확할 것이다.

응답 정규화 방식은 우리의 top-1, top-5 오류율을 1.4%, 1.2% 줄인다.

우리는 CIFAR-10 데이터셋에서 이 방식의 효과를 검증했다: 4개의 층으로 이루어진 CNN은 정규화 없이 13%의 테스트 오류율을 달성했으며, 정규화를 적용했을 때는 11%를 달성했다.

3.4 Overlapping Pooling

CNN의 풀링 레이어는 같은 커널 맵 안에세 뉴런의 가까운 그룹의 출력을 요약한다.

기존에는, 이웃들은 덮어씌워지지 않은 인접한 풀링 유닛에 의해 요약됐다.

더 정밀하게 하기 위해, 풀링 레이어는 ss 픽셀 간격으로 배치된 풀링 유닛의 그리드로 구성되어 있다고 생각할 수 있으며, 각각은 풀링 유닛의 중심에 있는 크기 zz x zz인 이웃을 요약한다.

만약 우리가 s=zs = z라고 두었을 때, 우리는 CNN에서 일반적으로 채택하는 기존의 로컬 풀링을 얻는다.

만약 우리가 s<zs < z라고 둔다면, 우리는 오버래핑 풀링을 얻는다.

이것은 우리가 우리의 신경망에 s=2s = 2z=3z = 3으로 사용하는 것이다.

이 방식은 동일한 차원에서 s=2s = 2, z=2z = 2인 오버래핑이 아닌 방식이 제공하는 결과와 비교했을 때, top-1, top-5 오류율을 0.4%, 0.3% 줄인다.

우리는 일반적으로 오버래핑 풀링이 적용된 모델이 학습하는 동안 이것이 약간 더 과적합되기 어렵다는 것을 알아냈다.

3.5 Overall Architecture

이제 우리는 우리의 CNN의 전체 구조에 대해 설명할 준비가 되었다.

그림 2에 묘사된 것과 같이, 신경망은 가중치가 있는 8개 레이어를 가지고 있으며, 처음 5개는 컨볼루션 레이어, 나머지 3개는 완전 연결층으로 이루어져 있다.

마지막 완전 연결층의 출력은 1000-way 소프트맥스 함수에 입력되어 1000개가 넘는 레이블 분포를 제공한다.

우리의 신경망은 다중 로지스틱 회귀를 최대화하며, 이는 예측 분포 하에서 정확한 레이블의 로그 확률의 전체 학습 예제 평균을 최대화하는 것과 동일하다.

두번째, 네번째, 다섯번째 컨볼루션 레이어의 커널들은 동일한 GPU에 있는 이전 레이어의 커널 맵들과 연결되어 있다.

세번째 컨볼루션 레이어의 커널은 두번째 레이어의 모든 커널맵과 연결되어 있다.

완전 연결층에 있는 뉴런들은 이전 레이어의 모든 뉴런들과 연결되어 있다.

응답 정규화 레이어는 첫번째와 두번째 컨볼루션 레이어 다음에 온다.

섹션 3.4에서 말했듯이, 맥스 풀링 레이어는 응답 정규화 레이어와 다섯번째 컨볼루션 레이어 다음에 온다.

ReLu 활성화 함수는 모든 컨볼루션 레이어와 완전 연결층의 출력에 적용되었다.

첫번째 컨볼루션 레이어는 224x224x3 크기의 입력 이미지를 11x11x3 크기의 커널 96개로 필터링하며, 스트라이드는 4 픽셀이다. (이는 커널맵에서 인접한 뉴런의 수용 영역 중심 사이의 거리이다.)

두번째 컨볼루션 레이어는 첫번째 컨볼루션 레이어의 (응답 정규화되고 풀링된) 출력으로 입력을 받으며, 5x5x48 크기의 커널 256개로 필터링한다.

세번째, 네번째, 다섯번째 컨볼루션 레이어는 중간에 풀링 레이어나 정규화 레이어 없이 서로 연결되어 있다.

세번째 컨볼루션 레이어는 3x3x256 크기의 커널 384개를 가지며, 두번째 컨볼루션 레이어의 (정규화되고 풀링된) 출력과 연결된다.

네번째 컨볼루션 레이어는 3x3x192 크기의 커널 384개를 가지고, 다섯번째 컨볼루션 레이어는 3x3x192 크기의 커널 256개를 가진다.

완전 연결층은 각각 4096개의 뉴런들을 가진다.


4 Reducing Overfitting

우리의 신경망 구조는 6천만개의 파라미터를 가진다.

ILSVRC의 1000개 클래스는 각 훈련 세트가 이미지에서 레이블로의 매핑에 10 비트의 제약을 가하도록 만들지만, 이는 과도학 과적합 없이 매우 많은 파라미터를 학습하기에는 불충분하다는 것이 드러났다.

아래에, 우리는 우리가 과적합에 맞선 두 가지 주요한 방법을 설명한다.

4.1 Data Augmentation

이미지 데이터에서 과적합을 줄이는 가장 쉽고 일반적인 방법은 레이블 보존 변형을 사용하여 데이터셋을 인공적으로 커지게 하는 것이다

우리는 두 가지 다른 형태의 데이터 증강 기법을 사용하는데, 두 기법 모두 원본 이미지로부터 매우 적은 연산으로 변형된 이미지를 생성할 수 있게 하므로 변형된 이미지를 디스크에 저장할 필요가 없다.

우리의 방법에서, 이미지의 이전 배치를 GPU가 학습하는 동안 CPU 안에 있는 파이썬 코드에서 변형된 이미지가 생성된다.

그래서 이 데이터 증강 기법은 연산적으로 자유롭다

데이터 증강의 첫번째 형태는 이미지 이동과 수평 반사를 생성하는 것으로 구성되어 있다.

우리는 256x256 크기의 이미지로부터 무작위의 224x224 패치들을 (그리고 이들의 수평 반사를) 추출하며, 이러한 추출된 패치들로 우리의 신경망을 학습시키는 것이다. (이는 그림 2의 입력 이미지가 224x224x3차원인 이유이다.)

이것은 우리의 훈련 세트의 크기를 2048배로 증가시키며, 결과적으로 훈련 예제들은 당연히 매우 상호 의존적이다.

이 방법 없이는, 우리의 신경망은 상당한 과적합으로부터 시달리며, 이는 우리에게 더 작은 신경망을 사용하도록 할 것이다.

테스트 시에는, 신경망은 5개의 224x224 크기의 패치(4개의 모서리 패치와 하나의 중간 패치)들과 이들의 수평 반사를 추출하며 (따라서 총 10개의 패치), 신경망의 소프트맥스 레이어가 10개 패치에 대한 예측의 평균을 내어 예측을 수행한다.

데이터 증강의 두 번째 방법은 학습이미지의 RGB 채널의 강도를 변환시키는 것으로 구성되어 있다.

특히, 우리는 모든 ImageNet 훈련 세트의 RGB 픽셀값의 집합에 PCA를 수행한다.

각각의 학습 이미지에 울리는 발견된 주성분들의 배수를 더하는데, 이때 배수의 크기는 평균이 0이고 표준 편차가 0.1인 가우시안 분포에서 추출한 난수를 해당 고윳값에 곱한 것과 비례한다.

그러므로 각 RGB 이미지 픽셀 Ixy=[IxyR,IxyG,IxyB]TI_{xy}=[I_{xy}^R,I_{xy}^G,I_{xy}^B]^T에 다음 값을 더한다.
[p1,p2,p3][α1λ1,α2λ2,α3λ3]T[p_1,p_2,p_3][α_1λ_1,α_2λ_2,α_3λ_3]^T

여기서 pip_iλiλ_i는 RGB 픽셀값의 3 x 3 공분산 행렬의 ii번째 고유 벡터와 고유값이며, αiα_i는 앞서 언급한 난수이다

αiα_i는 특정 학습 이미지의 모든 픽셀에 대해 한 번만 그려지며, 해당 이미지가 다시 학습에 사용될 때까지 유지되다가, 다시 사용될 때 그려진다.

이 방식은 자연 이미지의 주요한 속성을 근사적으로 포착한다. 즉, 객체의 정체성은 조명의 강도와 색생의 변화에 따라 다양해지지 않는다.

이 방법은 줄인다 / 상위 1개 오류율을 1% 이상으로

이 방법은 top-1 오류율을 1% 이상 줄인다.

4.2 Dropout

많은 모델들의 예측을 결합하는 것은 테스트 오류율을 줄이는 데에 매우 성공적인 방법이나, 이는 학습에 이미 몇일이 걸린 큰 신경망에서 너무 비용이 많이 드는 것으로 나타난다.

그러나 이는 학습에 오직 두배정도 밖에 들지 않는 모델 결합의 매우 효율적인 방법이다,

드롭아웃이라고 불리는 최근 소개된 기술은 0.5의 확률로 각 은닉층의 출력을 0으로 두는 것이다.

이 방법으로 드롭아웃된 뉴런은 순전파에 기여하지 않으며, 역전파에 참여하지 않는다.

그래서 매번 입력이 전달되었을 때, 신경망은 다른 구조로 샘플링되지만, 이 구조는 가중치를 공유한다.

이 기술은 뉴런의 복잡한 상호 적응을 줄이는데, 이는 뉴런이 특정 다른 뉴런의 존재에 의존할 수 없기 때문이다.

이는 따라서, 다른 뉴런들의 많은 다른 무작위 부분집합과 함께 유용하게 사용될 수 있는 더욱 견고한 특징들을 학습해야 한다.

테스트 시에, 우리는 모든 뉴런을 사용하지만, 출력에 0.5ㄹ를 곱하는데, 이는 기하급수적으로 많은 드롭아웃 네트워크에서 제공된 예측 분포의 기하 평균을 취하는 것에 대한 의미있는 근사치이다.

우리는 그림 2의 처음 두 개의 완전 연결층에서 드롭아웃을 사용한다.

드롭아웃 없이는, 우리의 신경망은 상당한 과적합을 보여준다.

드롭아웃은 수렴에 필요한 반복의 수를 대략 두 배 증가시킨다.


5 Details of learning

우리는 크기 128의 배치와 0.9의 모멘텀으로 확률적 경사하강법을 사용하여 우리의 모델을 학습시켰으며, 가중치 감소는 0.0005로 하였다.

우리는 모델이 학습하기 위해 이 작은 양의 가중치 감소가 중요하다는 것을 알아냈다.

다시 말해, 이 가중치 감소는 단지 규제가 아니다: 이것은 모델의 학습 오류를 줄인다.

가중치 ww의 갱신 규칙은 다음과 같으며, (수식) ii는 반복 인덱스, vv는 모멘텀 변수, ϵϵ는 학습률이고, 미분식은 ww에 대한 목적 함수의 미분값의 ii번째 배치 DiD_i에 대한 평균이며, wiw_i에서 평가된다.

우리는 각 레이어에서 가중치를 표준편차 0.01, 평균이 0인 가우시안 분포로부터 초기화했다.

우리는 두번째, 네번째, 다섯번째 레이어와 완전 연결 은닉층에 있는 바이어스를 상수 1로 초기화했다.

이 초기화는 ReLU 함수에 양의 입력을 제공함으로써 학습의 초기 단계를 가속한다.

우리는 나머지 레이어에 있는 바이어스를 상수 0으로 초기화했다.

우리는 모든 레이어에 대해 동일한 학습률을 사용했으며, 이는 우리가 학습에 걸쳐 수동적으로 조정한 것이다.

우리가 따른 휴리스틱은 검증 오류율이 현재 학습률에서 향상되는 것을 멈췄을 때 학습률을 10으로 나누는 것이다.

학습률은 0.01로 초기화되었으며, 종료전에 3번 감소되었다.

우리는 NVIDIA GTX 580 3GB GPU로 약 90 사이클 동안 120만개의 이미지로 신경망을 학습시켰으며, 이는 5~6일 걸렸다.


6 Results

ILSVRC-2010에서의 우리의 결과는 표 1에 요약되어 있다.

우리의 신경망은 상위 1개, 상위 5개 항목 테스트 세트에서 37.5%와 17.0% 오류율을 달성했다.

ILSVRC-2010 대회동안 달성된 가장 좋은 성능은 서로 다른 특징으로 학습된 6개의 츼소 코딩 모델의 예측을 평균내는 접근을 사용한 47.1%와 28.2% 였으며, 이후로 발표된 가장 좋은 결과는 두 유형의 밀집 샘플링된 특징으로부터 계산된 Fisher Vector(FVs)로 학습된 두 개의 분류기의 예측을 평균내는 접근을 사용한 45.7%와 25.7% 였다.

우리는 또한 우리의 모델로 ILSVRC-2012대회에 제출하였으며, 이에 대한 결과는 표 2에 제시되어있다.

ILSVRC-2012 테스트 세트 레이블은 사용할 수 없으므로, 우리는 우리가 시도했던 전체 모델에 대한 테스트 오류율을 작성할 수 없다.

이 단락의 마지막부분에, 우리는 검증 오류율과 테스트 오류율을 상호 교환적으로 사용했다. 왜냐하면 우리의 경험에서 이들은 0.1% 이상만큼 다르지 않았기 때문이다. (표 2)

이 논문에서 소개된 CNN은 상위 5개 항목 오류율에서 18.2%를 달성했다.

5개이 비슷한 CNN의 예측을 평균낸 것은 16.4%의 오류율을 달성했다.

마지막 풀링 레이어 위에 6번째 컨볼루션 레이어를 추가하여 하나의 CNN을 학습시키는 것은 전체 ImageNet Fall 2011 이미지들을 분류하기 위한 것이며, 이를 ILSVRC-2012로 파인 튜닝 한 것은 16.6%의 오류율을 달성했다.

앞서 언급한 5개의 CNN을 사용하여 전체 Fall 2011 데이터로 사전학습된 두 개의 CNN의 예측을 평균낸 것은 15.3%의 오류율을 달성했다.

두번재로 좋았던 대회 결과는 서로 다른 밀집 샘플링 특징으로 계산된 FVs로 학습된 몇 개의 분류기의 예측을 평균내는 접든법으로 26.2%의 오류율을 달성했다.

마지막으로 우리는 10184개의 카테고리와 890만개 이미지가 있는 ImageNet의 Fall 2009 버전에서의 우리의 오류율을 제시한다.

이 데이터셋에서 우리는 문헌에서 통용되는 관례에 따라 절반의 이미지는 학습으로, 나머지는 테스트용으로 사용했다.

확립된 테스트 세트가 없기 때문에, 우리의 데이터 분할은 이전 저자들이 사용한 데이터 분할과 필연적으로 다르지만, 이는 결과에 눈에 띄는 영향은 없다.

이 데이터 셋에서의 상위 1개, 상위 5개 항목 오류율은 67.4%와 40.9% 이며, 이는 위에서 설명한 신경망의 마지막 풀링 레이어 위에 6번째 컨볼루션 레이어를 추가한 결과이다.

이 데이터 셋에서 발표된 가장 좋은 결과는 78.1%와 60.9%이다.

6.1 Qualitative Evaluations

그림 3은 신경망의 두 개의 데이터 연결 레이어로 학습된 컨볼루션 커널을 보여준다.

신경망 다양한 주파수 및 방향 선택적 커널과 다양한 colored blob들로 학습되었다.

섹션 3.5에서 설명한 제한된 연결성으로 인한 결과는 두 GPU가 보이는 특수화 현상에 주목해라.

GPU 2에 있는 커널들이 색상에 특화된 것과 달리, GPU 1에 있는 커널들은 색상에 구애받지 않는다.

이러한 특수화는 모든 실행동안 발생하며, 어떤 특정한 무작위 가중치 초기화와는 독립적이다. (GPU 번호 재지정은 제외)

그림 4

(왼쪽) 8개의 ILSVRC-2010 테스트 이미지와 우리 모델이 가장 가능성이 높다고 판단한 5개의 레이블.

각 이미지 아래에는 정답 레이블이 적혀 있으며, 정답 레이블에 할당된 확률도 표시된다.

(상위 5개 안에 드는 경우) 빨간색 막대로 표시된다.

(오른쪽) 첫 번째 열에는 5개의 ILSVRC-2010 테스트 이미지가 있다.

나머지 열에는 마지막 은닉층에서 테스트 이미지의 특징 벡터와 유클리드 거리가 가장 작은 특징 벡터를 생성하는 6개의 훈련 이미지가 표시된다.

그림 4의 왼쪽은 8개 이미지에 대한 상위 5개 예측을 계산하는 것으로 신경망이 학습된 것을 질적으로 평가한다.

왼쪽 상단의 진드기와 같이 중앙에서 벗어난 객체조차도 신경망이 인지할 수 있다는 점에 주목해야한다.

대부분의 상위 5개 레이블은 의미있는 것으로 나타났다.

예를 들어, 고양이의 다른 유형들은 표범을 지칭하는 데에 그럴듯한 레이블로 고려되었다.

그릴, 체리와 같은 몇몇 케이스에서는 사진의 의도된 초점에 의한 모호성이 있다.

신경망의 시각적 지능을 증명하는 다른 방법은 이미지가 마지막 4096 차원의 은닉층에서 유도하는 특징 활성화를 고려하는 것이다.

만약 두 이미지가 작은 유클리드 분할과 함께 특징 활동 벡터를 제공한다면, 우리는 신경망의 더 높은 수준은 그들을 비슷하게 고려한다고 말할 수 있다.

그림 4는 이 측정에 따라 가장 비슷한 테스트 세트의 5개 이미지와 훈련 세트의 6개의 이미지를 보여준다.

픽셀 수준에서, 검색된 훈련 이미지는 일반적으로 첫번째 열의 쿼리 이미지와 L2 해상도에서 가깝지 않다는 것에 주목해야 한다.

예를 들어, 검색된 강아지와 코끼리는 다양한 자세로 나타난다.

우리는 보충 재료에서 더 많은 테스트 이미지에 대한 결과를 보여준다.

4096 차원인 실수 벡터 두 개의 유사도를 유클리드 거리를 이용해 계산하는 것은 불충분하지만, 이는 이러한 벡터를 짧은 이진 코드로 압축하기 위해 오토 인코더를 학습함으로써 효율적이게 될 수 있다.

이것은 이미지 레이블을 사용하지 않고 의미적으로 유사한지 여부에 관계없이 유사한 에지 패턴을 가진 이미지를 검색하는 경향이 있는 원시 픽셀에 오토인코더를 적용하는 것보다 훨씬 더 나은 이미지 검색 방법을 생성해야 한다.


7 Discussion

우리의 결과는 순수 지도 학습을 사용하여 매우 도전적인 데이터 셋에서 기록을 깨는 결과는 크고, 깊은 CNN이 달성할 수 있다는 것을 보여준다.

만약 하나의 컨볼루션 레이어라도 제거한다면 우리의 신경망의 성능은 저하될 수 있다는 것은 주목할만 하다.

예를 들어, 신경망의 아무 중간 레이어를 제거하는 것은 상위 1개 항목 성능에서 약 2%의 손실을 야기한다.

그래서 우리의 결과를 달성하는 것에서 깊이는 매우 중요하다.

우리의 실험을 단순화하기 위해, 우리는 비지도 사전학습이 비록 도움이 될 것이라고 예상했지만, 특히 레이블된 데이터의 양의 증가 없이 신경망의 크기를 주요하게 증가시키기 위한 충분한 연산 성능을 얻더라도, 아무런 비지도 사전학습을 사용하지 않았다.

또한 지금까지, 우리의 결과는 우리가 신경망을 더 크게하고 더 오래 학습시킴으로 향상되었지만, 우리는 인간 시각 시스템의 하측두 피질을 따라잡기 위해 갈길이 멀다.

궁극적으로 우리는 영상 시퀀스에 매우 크고 깊은 CNN을 사용하고자 하며, 이는 시간적 구조가 정적인 이미지에서는 놓치고 훨씬 덜 명백한 매우 도움되는 정보를 제공한다.


출처: https://proceedings.neurips.cc/paper_files/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf

profile
精進 "정성을 기울여 노력하고 매진한다"

0개의 댓글