반응형

논문 : ImageNet Classification with Deep Convolutional Neural Networks

 

AlexNet2012년에 개최된 ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 대회의 우승을 차지한 컨볼루션 신경망(CNN) 구조

CNN 구조 

2개의 GPU로 병렬연산을 수행하기 위해서 병렬적인 구조로 설계되었다는 점이 가장 큰 변화

 

Abstract

ImageNet LSVRC-2010 1000 분류 

1.2 million high-resolution 

  top-1 error rate top-5 error rate
classify the 1.2 million high-resolution images in the ImageNet LSVRC-2010 contest into the 1000 different classes. 37.5% 17.0%
ILSVRC-2012 competition   achieved a winning top-5 test error rate of 15.3%, compared to 26.2% achieved by the second-best entry.

5개의 convolutional layers , 몇개의 layer는 convolutional layers뒤에 max-pooling layers이 있다. 

3개의 fully-connected layers

마지막에는 1000-way softmax

 

훈련을 빠르게 하기 위하여

1. 우리는 non-saturating neurons 을 사용하였다.

  • non-saturating neurons 의 activation : relu, leakyrelu 
  • saturating neurons 의 activation : sigmoid [0,1] , tanh [-1,1]

2. a very efficient GPU implementation of the convolution operation

 

overfitting 줄이기 위하여 :  “dropout” 

 

1 Introduction

object recognition에 대한 현재의 접근법은 machine learning 방법을 필수적으로 사용한다. 

성능을  높이기 위해 :

우리는 대량의 데이터를 수집하고 , 더 강력한 모델을 학습하고 , 과적합을 방지하기 위해 더 나은 기술을 사용한다.

최근 까지는 라벨링된 이미지의 데이터세트는 수만 개의 이미지 (e.g., NORB [16], Caltech-101/256 [8, 9], and CIFAR-10/100 [12] ) 으로 비교적 작다.

간단한 recognition tasks은 특히 라벨 보존 변환으로 증강된 경우 이 크기의 데이터 세트로 상당히 잘 해결할 수 있다. 예를 들어 MNIST 자릿수 인식 과제(<0.3%)의 현재 최고 오류율은 인간 성과에 접근한다[4]. 

label-preserving transformations: 라벨을 보전하면서 증강 하는 방법 

그러나 실제 환경에서 objects는 상당한 가변성을 나타내므로 이를 인식하는 방법을 배우려면 훨씬 더 큰 훈련 세트를 사용해야 한다. 

그리고 실제로 작은 이미지 데이터 세트의 단점은 널리 인식되었다(예: Pinto 등). [21]) 

새로운 대규모 데이터 세트에는 수십만 개의 완전 세그먼트 이미지로 구성된 LabelMe[23]와 22,000개 이상의 범주에서 1,500만 개 이상의 레이블이 지정된 고해상도 이미지로 구성된 ImageNet[6]이 포함됩니다.

 

수백만개의 이미지에서 수천개의 objects를 학습할려면 우리는 학습용량이 큰 모델이 필요한다.

그러나 객체 인식 작업의 엄청난 복잡성은 ImageNet만큼 큰 데이터셋으로도 이 문제를 지정할 수 없음을 의미하므로, 우리의 모델은 우리가 가지고 있지 않은 모든 데이터를 보상하기 위한 사전 지식도 많이 가지고 있어야 한다. 

 =>CNNs(CNN)은 그러한 종류의 모델 중 하나이다. [16, 11, 13, 18, 15, 22, 26]. 

용량은 깊이와 너비를 변경하여 제어할 수 있으며, 이미지의 특성(다시말해 , stationarity of statistics 및 픽셀 의존성의 위치)에 대해 강력하고 대부분 정확한 가정을 한다.

 

stationarity of statistics

  • 이미지의 한 부분에 대한 통계가 어떤 다른 부분들과 동일하다는 가정
  • 즉, 이미지에서 한 특징이 위치에 상관없이 다수 존재할 수 있으며, 결국 어떤 위치에서 학습한 특징 파라미터를 이용해 다른 위치에서도 동일한 특징을 추출할 수 있음을 의미

따라서 similarly-sized layers를 가진  standard feedforward neural networks 에 비해 CNN은 연결과 parameters가  훨씬 적어 훈련하기가 더 쉬우며

이론적으로 최상의 성능은 약간 더 나쁠 수 있다.

 

CNN의 멋진 풀질과 지역 아키텍처의 상대적인 효율성을 불구하고 , 고해상도 이미지에 대규모로 적용하는 데는 여전히 엄청나게 많은 비용이 들었다. 다행이도 2D convolution의 highly-optimized된 구현과 짝을 이룬 현재 GPU는 interestingly-large CNNs의 훈련을 가능하게 할 만큼 강력하게 ImageNet 과 같은 최신 datasets에는 심각한 과적합이 없이 그러한 모델을 훈련시킬 수 있는 충분한 라벨링된 예가 포함되어 있다.

=> highly-optimized GPU implementation of 2D convolution

 

본 논문의 구체적인 기여는 다음과 같다. : 

우리는 ILSVRC-2010 및 ILSVRC-2012[2] 경기에 사용된 ImageNet의 하위 집합에 대해 현재까지 가장 큰 컨볼루션 신경망 중 하나를 훈련시켰고 이러한 데이터 세트에 대해 보고된 지금까지 최고의 결과를 달성했다. 우리는 2D convolution과 훈련 convolution neural networks 에 내제된 다른 모든 작업의 highly-optimized GPU구현을 작성했다. 

(https://code.google.com/archive/p/cuda-convnet/)

 

아래의 section 소개 

Section 3 : 우리의 networks에는 성능을 개선하고 교육 시간을 단축하는 새롭고 특이한 기능이 많이 포함되어 있다.

Section 4 : 네트워크 크기는 120만 개의 레이블링된 교육 예제로도 심각한 overfitting 문제를 일으켰기 때문에 overfitting 을 방지하기 위한 몇 가지 효과적인 기술을 사용했다. 

우리의 최종 network:

five convolutional  5개의 convolutional

three fully-connected layers 3개의 fully-connected layers

그리고 이 깊이는 중요한 것처럼 보인다.

우리는 (각각 모델의 parameter의 1% 이하를 포함하는) 컨볼루션 레이어를 제거하면 성능이 저하된다는 것을 발견했다.

 

결국 network의 크기는 주로 현재 GPU에서 사용할 수 있는 메모리의 양과 우리가 허용하고자 하는 훈련 시간의 양에 의해 제한된다. 우리의 network는 두 개의 GTX 580 3GB GPU로 훈련하는 데 5~6일이 걸린다. 우리의 모든 실험은 GPU와 더 큰 데이터셋을 사용할 수 있기를 기다리는 것만으로도 결과를 개선할 수 있음을 제안한다.

 

2 The Dataset

ImageNet은 약 22,000 categories 에 속하는 15 million 개 이상의 레이블이 지정된 고해상도 이미지 의 dataset 이다. 

그 이미지들은 웹에서 수집되었고 Amazon’s Mechanical Turk crowd-sourcing tool 를 사용하여  인간 라벨업자들에 의해 라벨이 붙여졌다. 

2010년 부터 Pascal Visual Object Challenge의 일부분으로 ImageNet Large Scale Visual Recognition Challenge 라고 불리는  (ILSVRC) 연간의 대회가 열리고 있다. 

ILSVRC는 각 1000개 범주에 약 1000개의 이미지가 있는 ImageNet의 하위 집합을 사용한다.

training images : 1.2 million 120만장의 학습 이미지

validation images : 50,000 5만장의 검증 이미지

testing images : 150,000 15만장의 테스트 이미지

 

ILSVRC-2010은 test set labels를 사용할 수 있는 ILSVRC의 유일한 버전이기 때문에 대부분의 실험을 수행한 버전이다. 

ILSVRC-2012대회에서는 모델을 시작하기 때문에 

Section 6 : test set lables을 사용할 수 없는 데이터 세트의 이 버전에도 대한 결과를 보고한다. 

ImageNet에서는 다음과 같은 두 가지 오류율을 보고하는 것이 관례이다.

top-1 and top-5

top-5 : 여기서 상위 5개 오류율은 올바른 라벨이 모델에서 가장 가능성이 높은 것으로 간주되는 5개 라벨에 포함되지 않는 테스트 이미지의 비율이다.

 

ImageNet은 variable-resolution images로 되어 있으며 , 시스템에서는  일정한 input dimensionality이 필요하다.

그래서 , 우리는 256 × 256의 고정 해상도로 다운샘플링했다.

직사각형 이미지가 주어지면 먼저 짧은 면이 256이 되도록 이미지의 크기를 조정한 다음 결과 이미지에서 중앙 256×256 패치를 잘라냈다. => 짧은 면이 256 -> 중앙 패치

각 픽셀에서 훈련 세트에 대한 평균 활동을 빼는 것 외에는 다른 방식으로 이미지를 사전 처리하지 않았다.

그래서 우리는 픽셀의 (중심) raw RGB 값에 대해 네트워크를 훈련시켰다.

 

3 The Architecture

네트워크 아키텍처는 그림 2에 요약되어 있다.

여기에는 8개의 학습된 레이어(convolutional 5개 및 fully-connected 3개)가 포함되어 있다.

아래에서는 네트워크 아키텍처의 새로운 특징 또는 특이한 특징 중 일부를 설명한다.

Section 3.1-3.4: 중요도에 대한 우리의 추정에 따라 가장 중요한 것은 첫번째로 

 

3.1 ReLU Nonlinearity

 

입력 x의 함수로 뉴런의 출력 f를 모델화하는 표준 방법은

f(x) = tanh(x) 또는 f(x) = (1 + e^(-x) ) ^(-1)이다. 

tanh , sigmoid

경사하강이 있는 훈련 시간의 측면에서, 이러한 saturating 비선형성은 non-saturating 비선형성

f(x) = max(0,x)보다 훨씬 느리다.

f(x) = max(0,x) => relu

Nair와 Hinton[20]에 이어, 우리는 이러한 비선형성을 가진 뉴런을 Rectified Linear Units(ReLU)라고 부른다.

ReLU를 사용하는 Deep convolutional neural networks는 tanh units를 사용하는 것 보다 몇배 더 빨리 훈련한다.

Figure 1

그림 1에서 알 수 있듯이 , 이는 특정 four-layer convolutional network에 대한 CIFAR-10 데이터 세트에서 25% training error 에 도달하는 데 필요한 반복 횟수를 보여준다. 이 그래프는 우리가 전통적인 saturating neuron models을 사용했다면 이 연구를 위해 그렇게 큰 신경망을 실험할 수 없었을 것이라는 것을 보여준다.

Figure 1

four-layer convolutional neural network

ReLUs (solid line)

tanh neurons (dashed line)

 

 

 

CNN에서  traditional neuron models의 대안을 고려하는 것은 우리가 처음이 아니다.예를 들어, Jarrett etal.[11] nonlinearity f(x) = |tanh(x)|가 Caltech-101 data set의 local average pooling에 이어 normalization 유형과 특히 잘 작동한다는 것을 입증한다.하지마 , 이 dataset의 주요 관심사는 overfitting을 방지하는 것이므로 이들이 관찰하는 효과는 ReLU를 사용할 때 보고하는 training set를 맞추는 가속화된 능력과는 다르다. 빠른 학습은 대규모 데이터 세트에서 훈련된 대규모 모델의 성능에 큰 영향을 미친다.

 

3.2 Training on Multiple GPUs 

single GTX 580 GPU 에는 3GB의 메모리만 있어 훈련할 수 있는 네트워크의 최대 크기를 제한한다. 120만개의 training examples는 하나의 GPU에 맞추기엔 너무 큰 네트워크를 훈련시키기에 충분하다.따라서 우리는 두 개의 GPU에 net을 분산시킨다. 현재 GPU는 host machine memory를 거치지 않고도 서로의 메모리에서 직접 읽고 쓸 수 있기 때문에 GPU 병렬화에 특히 적합하다. 우리가 사용하는 parallelization scheme 는 기본적으로 kernel(또는 neuron)의 절반을 각 GPU에 additional trick을 하나 더 추가한다: GPU는 특정 계층에서만 통신한다. 이것은, 예를 들어, layer 3의 kernel들이 layer 2의모든 kernel maps으로 부터 입력 받는 것을 의미 한다. 그러나, layer 4의 kernel은 동일한 GPU 에 존재하는 layer 3의 kernel maps으로 부터  입력을 받는다. pattern of connectivity을 선택하는 것은 cross-validation의 문제이지만, 이것은 우리가 그것이 계산량의 허용 가능한 부분이 될 때까지 통신량을 정밀하게 조정할 수 있게 해준다.

그 결과 architecture 는 Cire¸ san et al. [5]등이 채택한 columns 이 독립적이지 않다는 점을 제외하고 (Figure 2 참조) “columnar” CNN과 다소 유사하다. 이 방식은 하나의 GPU로 훈련된 각 convolutional layer의 kernels 수가 절반인 네트와 비교하여 top-1위와 top-5위의 error rates을 각각 1.7%와 1.2% 감소시킨다. 2-GPU 네트는 1-GPU 네트 2보다 훈련하는 데 시간이 약간 적게 걸린다. 

3.3 Local Response Normalization

ReLU는 saturating되지 않도록 input normalizatoin가 필요하지 않은 바람직한 특성을 가지고 있다. 만약 적어도 일부 훈련 예제가 ReLU에 긍정적인 입력을 제공한다면, 학습은 그 뉴런에서 일어날 것이다. 하지만 우리는 여전히 다음과 같은 local normalization scheme가 generalization에 도움이 된다는 것을 발견한다. a^i_{x,y}의 위치(x,y)에서 kernel i를 적용한 다음 ReLU nonlinearity을 적용하여 계산된 뉴런의 활동 을 나타내는 response-normalized activity  b^i_{x,y}는 총합이 동일한 공간 위치에서 n개의 “adjacent” kernel maps 데대해 실행되는 식에 의해 주어지며, N은 계층의 총 커널 수이다.물론 kernel map 의 순서는 임의적이며 교육을 시작하기 전에 결정된다. 이러한 종류의 response normalization는 real neurons에서 발견되는 유형에서 영감을 받은 측면 억제의 형태를 구현하여 다른 커널을 사용하여 계산된 뉴런 출력물 사이의 큰 활동을 위한 경쟁을 유발한다. k,n,α 및 β 상수는 다음 과같은 validation set 를 사용하여 값이 결정되는  hypperparameter이다.

우리는 k = 2, n = 5, α = 10 −4 , and β = 0.75 사용한다.

a는 ouput [batch,height,width,channel]

N channel 수 

a,n/2,k,α,β =>   input,depth_radius,bias,alpha,beta

n/2,k,α,β => 사용자가 정의한다. 

∑ channel 방향으로 

한 점으로 전 n/2와 뒤 n/2个 의 제곱 합  n이 5일 경우에 5/2 => 3으로 해서 3,4,5,6,7

 

2015년 very Deep Convolutional Networks for Large-Scale Image Recognition 논문에서 LRN은 별로 효과가 없다고 하였다. 

 

Section 3.5 에서 certain layers 에 ReLU nonlinearity을 적용한 후 이 normalization를 적용하였다.

 

Jarrett et al. [11]은 local contrast normalization  계획과 어느 정도 유사하다.  mean activity을 빼지 않기 때문에 “brightness normalization”라고 더 정확하게 말 할 수 있다. Response normalization는 top-1와 top-5 error rates 을 각각 1.4%, 1.2% 감소시킨다. 또한 CIFAR-10 데이터 세트에 대한 이 계획의 효과를 검증했다. four-layer CNN은 정규화 없이 13%, normalization  에서는 11%의 테스트 오류율을 달성했다.

3.4 Overlapping Pooling

Pooling layers in CNNs는 동일한 kernel map에 인접한 nueurons의 그룹의 출력을 요약한다. 전통적으로 adjacent pooling units 로 요약된 주변 지역은 겹치지 않는다. (e.g., [17, 11, 4]). 보다 정확하게 말하면, pooling layer는 각각 pooling units의 위리를 중심으로 z × z 크기의 이웃을 요약한 s pixel 간격의 pooling unit의 grid로 구성된다고 생각할 수 있다. 우리는 만약 s = z 설정하면, CNNs에 일반적으로 사용되는 전통적인 local pooling을 얻는다. 만약 우리는 s < z 설정하면, overlapping pooling을 발생한다. 이것이 s=2및 z =3과 함께 network 전체에서 사용하는 기능이다. 

3x3 영역을 stride 2로

이 방식은 equivalent dimensions의 출력을 생성하는 중복되지 않는 체계 s = 2,z = 2와 비교하여 top-1와 top-5의 error rates을 각각  0.4%, 0.3% 감소시킨다. 우리는 일반적으로 훈련 중에 overlapping pooling이 있는 모델이 overfit하기가 약간 더 어렵다는 것을 관찰한다.

3.5 Overall Architecture

이제 우리는 CNN의 전반적인 architecture에 대해서 소계할 준비가 되였다. Figure 2에서 묘사한 것처럼 net 에는 가중치가 있는 8개의 layers 이 포함되어 있다. 마지막 fully-connected layer의 출력은 1000 class labels 에 대한 distribution 를 생성하는 1000-way softmax에 공급된다. 우리의 네트워크는  multinomial logistic regression objective를 최적화하는데 , 이는 예측 분포에서  

정확한 label 의  log-probability의 훈련 사례에서 평균을 최대화하는 것과 같다.

second, fourth, and fifth convolutional layers의 kernel 은 동일한 GPU에 상주하는 previous layer의 kernel maps 에만 연결된다. (Figure 2 참조) third convolutional layer 의 kernel은 second layer의 모든 kernel map에 연결된다. fully-connected layers 의 neurons 은 previous layer의 모든 neurons 과 연결되어 있다. Response-normalization layers은  first and second convolutional layers을 따른다. Section 3.4에서 설명한 종류의 Max-pooling layers는 response-normalization layers와 fifth convolutional layer를 모두 따른다. ReLU non-linearity는 모든 convolutional 와 fully-connected layer 출력에 적용된다. 

first convolutional layer 는 크기가 11×11×3 인 96개의 커널이 있는 224×224×3 입력 이미지를 4 pixels의 stride 으로 filters 한다 ( 이것은 kernel map에서 neighboring neurons의 the receptive field사이의 거리이다. ) 

second convolutional layer 는  first convolutional layer의 (response-normalized and pooled) 출력을 받아 크기 5 × 5 × 48 kernel 256개로 filters 한다. 

세 번째, 네 번째 및 다섯 번째 convolutional layers  어떠한 개입적 pooling 또는 normalization layers 없이 서로 연결된다.  

third convolutional layer은 3 × 3 × 256 크기의 kernels  384 개를 두 번째 convolutional layer의 (normalized, pooled) 출력에 연결한다. 

fourth convolutional layer은 3 × 3 × 192 크기의 384  kernels 를 가지고 있고 , 

fifth convolutional layer 은 3 × 3 × 192 인 256개의 kernels 을 가지고 있다.

fully-connected layers는 각각 4096 개의 neurons 이 있다.

4 Reducing Overfitting

우리의 신경망 architecture은 60만개의 파라미터를 가지고 있다. ILSVRC의 1000 calsses 은 각 training example 가 이미지에서 라벨로의 매핑에 10bits 의 제약을 가하도록 하지만, 이는 상당한 overfitting 없이 그렇게 많은 매개변수를 학습하기에는 불충분한 것으로 판명되었다. 아래에서는 과적합과 싸우는 두 가지 주요 방법을 설명한다.

 

4.1 Data Augmentation

image data에 대한 overfitting을 줄이는 가장 쉽고 일반적인 방법은 label-preserving transformations (예: [25, 4, 5]) 사용하여 데이터 세트를 artificially으로 확장하는 것이다. 우리는 두가지 다른 형태의 데이터 증강을 사용하며, 두가지 모두 변환된 이미지를 거의 계산하지 않고 원본 이미지에서 생성할 수 있으므로 변환된 이미지를 디스크에 저장할 필요가 없다.구현에서 GPU가 이전 배치 이미지에서 훈련하는 동안 변환된 이미지는 CPU의 Python code 로 생성된다. 따라서 이

러한 데이터 확대 계획은 사실상 계산상 자유롭다. 

data augmentation의 첫번째 형태는 image translations와 horizontal reflections으로 구성된다. 우리는 256×256이미지에서 random 224×224 patches (and their horizontal reflections) 를 추출하고 추출된 patches 에 대해 네트워크를 훈련시킴으로써 이를 수행한다. 이는 2048배까지 훈련의 크기를 증가시킨다. 물론 결과적인 훈련 예는 상호의존성이 매우 높다. 이 계획이 없었드라면 , 우리의 network는 상당한 overfitting으로 어려움을 겪었고 , 이로 인해 우리는 훨씬 더 작은 네트워크를 사용해야만 했을 것이다. test를 할 경우에 , 네트워크는 5개의 patches (the four corner patches and the center patch )horizontal reflections (hence ten patches in all) 를 추출하고 10개의 패치에서 네트워크의 소프트맥스 계층에 의해 예측된 결과를 평균화하여 예측한다.

https://learnopencv.com/understanding-alexnet/

random crop : 256*256 -> 224*224 

한장의 이미지에서 ((256-224)^2)*2=2048 의 다른 이미지를  수 있다. 

data augmentation의 두 번째 형태는 훈련 이미지에서 RGB 채널의 강도를 변경하는 것으로 구성된다.  특히 우리는 ImageNet training set 전체에서 RGB 픽셀 값 집합에 대해 PCA를 수행한다. 각 훈련 이미지에 우리는 해당 고유값에 비례하는 크기에 평균 0과 표준 편차가 0.1인 가우스에서 추출한 랜덤 변수를 곱하여 발견된 주성분의 배수를 추가한다. 따라서 각 RGB 영상 픽셀 I_{xy} = [I ^ R _{xy } ,I ^G _{xy} ,I^B_{xy} ] ^T 우리는 다음 수량을 더한다.

여기서 p_i 와 λ_i는 각각 RGB 픽셀 값의 3 × 3 covariance matrix 의 i번째 고유벡터이자 고유값이며, α_i는 앞에서 언급한 랜덤 변수이다. 각 α_i는 해당 이미지가 다시 훈련에 사용될 때까지 특정 훈련 이미지의 모든 픽셀에 대해 한 번만 그려지고, 다시 그려진다. 이 계획은 자연 이미지의 중요한 특성, 즉 물체 정체성이 조명의 강도와 색상의 변화에 불변한다는 것을 대략적으로 포착한다. 이 방식을 사용하면 top-1개 오류율이 1% 이상 감소합니다.

 

4.2 Dropout

많은 다른 모델을 결합하여 예측을 하는 것은 test errors [1, 3]를 줄이는 매우 성공적인 방법이지만 대형 신경 네트워크는 훈련을 하는데 시간이 오래 걸려서 너무 많은 비용이 드는 것으로 보인다. 그러나 매우 효율적인 모델 조합 버전은 훈련 중에 약 2배 정도만 비용이 든다. 최근에 도입된 "dropout"[10]이라고 불리는 기술은 각 hidden neuron 의 출력을 0.5 확률로 0으로 설정하는 것으로 구성된다.  이런 식으로 "dropped out" 뉴런은 전진 패스에 기여하지 않으며 역전파에도 참여하지 않는다. 입력이 주어질 때마다, 신경망은 다른 구조를 샘플링하지만, 이 모든 구조는 가중치를 공유한다. 이 기술은 뉴런이 특정한 다른 뉴런의 존재에 의존할 수 없기 때문에 뉴런의 복잡한 공동 적응을 감소시킨다. 따라서 다른 뉴런의 많은 다른 랜덤 하위 집합과 함께 유용한 보다 강력한 특징을 학습해야 한다. test 할 경우에는 , 우리는 모든 뉴런을 사용하지만 출력에 0.5를 곱한다. 이는 exponentially으로 많은 드롭아웃 네트워크에 의해 생성된 예측 분포의 기하학적 평균을 얻는 합리적인 근사치이다.

그림 2의 처음 두 개의 완전히 연결된 계층에서 dropout를 사용한다. dropout없이 우리의 네트워크는 상당한 과적합을 보인다. dropout는 수렴에 반복 횟수를 대략 두 배 필요한다. 

5 Details of learning

stochastic gradient descent -> sgd

batch size : 128

momentum : 0.9 

weight decay : 0.0005

우리는 이 작은 weight decay 가 모델을 학습할때 매우 중요한 것을 알게 되었다. 다시 말해서, 여기서 weight decay는 단지 regularizer 가 아니라 모델의 훈련 오류를 감소시킨다. weight w에 대한 업데이트 규칙은 옆의 수식과  같다.  

i : iteration index

v : momentum variable

ε : learning rate

w_i에서 평가된 w에 대한  derivative of the objective의 i번째 배치 D_i에 대한 평균 

우리는 standard deviation 0.01 인 zero-mean Gaussian 

distribution에서 각 layer의 가 중치를 초기화했다. 우리는 neuron biases을 second, fourth,  fifth convolutional layers와 fully-connected hidden layers에서 상수 1로 초기화했다. 이 초기화는 ReLU에 긍정적인 입력을 제공하여 학습의 초기 단계를 가속화한다. 우리는  나머지 층에서 뉴런 편향을 상수가 0으로 초기화했다.

all layers에 동일한 learning rate를 사용하였고 training 동안에 수동으로 조정하였다.  우리가 따르는 heuristic 은 검증 오류율이 현재 학습 속도에 따라 더 이상 향상되지 않을 때 학습률을 10으로 나누는 것이었다. learning rate은 0.01로 초기화하되었으며 종료전에는 세 번 감소되었다. 우리는 120만 장의 이미지 training set 를  두 개의 NVIDIA GTX 580 3GB GPU에서 5일에서 6일이 걸린 통해 약 90 사이클 동안 네트워크를 학습했다.

6 Results

ILSVRC-2010에 대한 결과는 Table 1에 요약되어 있다. 우리의 네트워크는 37.5%, 17.0% 의 top-1와 top-5의 test set error rates을 달성하였다. ILSVRC-2010 competition동안 달성한 최고 실적은 서로 다

른 특징[2]에 대해 훈련된 6개의 sparse-coding models에서 생성된 예측을 평균화 한 접근법으로 47.1%, 28.2%이였으며, 그 이후에 가장 잘 발표된 결과는  두가지 유형의  of densely-sampled features Fisher Vectors (FVs) classifiers의 예측을 평균한 접급으로  45.7%와 25.7% 이다.

우리는 또한 ILSVRC-2012 competition 에 우리 모델로 Table 2에서 우리의 결과를 보여준다. ILSVRC-2012 test set labels은 공개적으로 사용할 수 없기 때문에 , 우리는 ㅇ리가 사용할 모든 test error를 보고할 수 없다. 이 단락의 나머지 부분에서는 validation and test error rates이 0.1 % 이상 차이 가 나지 않기 때문에 상호 교환하여 사용한다 .(Table 2참조) 본 논문에서 설명한 CNN은 18.2%의 top-5 test error를 달성하였다. 5 개의 유사한 CNN의 예측 평균은 16.4%의 test error를 달성하였다. last pooling layer위에 sixth convolutional를 추가하여 전체 ImageNet Fall 2011  release( 15M images, 22K categories) 를 분류 한 다음 “fine-tuning”  하면 test error rate가 16.6% 이다. 앞서 언급한 five CNNs 을 사용하여 Fall 2011 release 에서 pre-trained한 2개의 CNN의 예측 평균은 15.3%의 error rate을 나타낸다. The second-best contest entry  은 다양한 유형의 densely-sampled features [7] 에서 계산된 FV에 대해  훈련된 여러 분류기의 예측을 평균화한 접근법으로 26.2%의  error rate를 달성했다.

마지막으로 10,184 categories와 8.9 million 개의 images가 있는  the Fall 2009 version of ImageNet 에서 error rates도 보고한다. 이 데이터 세트에서 우리는 이미지의 절반은 훈련에 사용하고 절반은 테스트에 사용하는 문헌의 규칙을 따른다. 확립된 test set가 없기때문에 분할의 이미지는  반드시  이전 저자가 사용한 분할과 다르지만, 이는 결과에 큰 영향을 미치지 않는다. 이 데이터 세트에 대한 top-1 and top-5 error rates은 위에서 설명한 net 에 의해 달성되지만 마지막 풀링 계층에 대해 추가적인 sixth convolutional layer가 있는 67.4%와 40.9%이다. 이 데이터 세트에 대해 가장 잘 발표된 결과는 78.1%와 60.9%[19]이다. 

 

6.1 Qualitative Evaluations

6.1 질적 평가

Figure 3은 network의 두 데이터 connected layers에서 학습한 convolutional kernels을 보여준다. 네트워크는 다양한 frequency-와 orientation-selective kernels과 다양한 colored blobs

을 학습했다. Section 3.5에 설명된 restricted connectivity 의 결과로 두 GPU가 보여주는 specialization 에 주목한다. GPU 1의 커널은 대부분 색에 구애받지 않는 반면 GPU 2의 커널은 대부분 색에 따라 다릅니다(restricted connectivity 원인 때문에 ).  이러한 종류의 specialization 는 모든 실행 중에 발생하며 특정 무작위 가중치 초기화(GPU의 번호 재지정 모듈로)와 독립적이다. 

Figure 4의 왼쪽 panel에서 8개의 테스트 이미지에 대한 top-5개 예측을 계산하여 네트워크가 학습한 내용을 정성적으로 평가한다. 왼쪽 상단에 있는 mite와 같은 중심에서 벗어난 개체도 네트워크에서 인식할 수 있다.  top-5 labels은 대부분 합리적으로 보인다. 예를 들어, 다른 종류의 고양이만 표범에게 그럴듯한 라벨로 여겨진다. 어떤 경우에는 (grille, cherry) 사진의 의도된 초점에 대해 진정한 모호성이 있다.

네트워크의 시각적 지식을 조사하는 또 다른 방법은 마지막 4096-dimensional hidden layer에서 이미지에 의해 유도되는 형상 활성화를 고려하는 것이다. 두 이미지가 작은 유클리드 분리로 특징 활성화 벡터를 생성하는 경우, 우리는 신경망의 높은 수준이 유사한 것으로 간주한다고 말할 수 있다. Figure 4 는 test set의 이미지 5개와 이 측정에 따라 각 이미지와 가장 유사한 교육 세트의 이미지 6개를 보여준다. pixel level에서 검색된 교육 영상은 일반적으로 L2에서 첫 번째 열의 쿼리 영상과 가깝지 않다. 예를 들어, 회수된 개와 강아지는 다양한 포즈를 취한다. 우리는 보충 자료에 더 많은 테스트 이미지에 대한 결과를 제시한다.

두 4096-dimensional

Figure 4:

(왼쪽) 8개의 ILSVRC-2010test images와 우리 모델에서 가장 가능성이 높은 것으로 보여주는  5개의 라벨이다. 각 이미지 아래에 올바른 라벨이 작성되고 올바른 라벨에 할당된 확률도 빨간색 막대로 표시된다(top-5에 해당될 경우).

(오른쪽) 첫 번째 열에 있는 ILSVRC-2010 테스트 이미지 5개이다. 나머지 열은 테스트 이미지의 형상 벡터로부터 가장 작은 유클리드 거리를 가진 마지막 hidden layer에서 feature vectors  를 생성하는 6개의 훈련 이미지를 보여준다. 두개의 4096-dimensional에서 real-valued 벡터 사이의 Euclidean distance를 사용하여 유사성을 계산하는 것은 비효율적이지만, 이러한 벡터를 짧은 이진 코드로 압축하도록 auto-encoder를 훈련시키면 효율적으로 만들 수 있다. 이렇게 하면 이미지 레이블을 사용하지 않는 raw pixels [14]에 auto-encoders을 적용하는 것보다 훨씬 더 나은 이미지 검색 방법이 생성되어야 하며, 따라서 의미적으로 유사하든 아니든 유사한 가장자리 패턴을 가진 이미지를 검색하는 경향이 있다.

 

color-agnostic와 color-specific

color-agnostic: 색에 구애받지 않는 , 어떤 색인지 상관 없는 

color-specific : 색에 구애받는 

 

 

7 Discussion

7 토론

우리의 결과는 대규모의 deep convolutional neural network이 purely supervised learning을 사용하여 매우 어려운 데이터 세트에서 기록적인 결과를 달성할 수 있다는 것을 보여준다. single convolutional layer 가 제거되면 network’s 의 성능이 저하된다는 것이 주목할 만한 하다. 예를 들어 , 중간 계층 하나를 제거하면 네트워크의 top-1 성능에 대해 약 2%의 손실이 발생한다. 그래서 그 깊이는 우리의 결과를 얻기 위해 정말 중요하다.

실험을 단순화하기 위해, 특히 라벨링된 데이터의 양에 상응하는 증가 없이 네트워크 크기를 크게 증가시킬 수 있는 충분한 계산 능력을 얻는 경우 도움이 될 것으로 예상했음에도 불구하고 우리는 unsupervised pre-training을 사용하지 않았다. 지금까지, 우리의 결과는 네트워크를 더 크게 만들고 더 오래 훈련시켰기 때문에 개선되었지만, 인간 시각 시스템의 추론된 시간적 경로와 일치시키기 위해서는 여전히 갈 길이 멀다. 궁극적으로 우리는 시간 구조가 정적 이미지에서 누락되거나 훨씬 덜 분명한 매우 유용한 정보를 제공하는 비디오 시퀀스에 매우 크고 깊은 컨볼루션 네트를 사용하고자 한다.

데이터의 양 -> 네트워크의 크기

 

 

[참고 논문]:

ImageNet Classification with Deep Convolutional Neural Networks

 

최근에 파파고 번역기도 잘 되어 있어서 부분 번역은 파파고에서 가져왔다.

반응형

+ Recent posts