1 Introduction
객체 인식에 대한 현재 접근 방식은 기계 학습 방법을 필수적으로 사용합니다.
성능을 개선하기 위해 더 큰 데이터 세트를 수집하고
더 강력한 모델을 배우고 과적 합을 방지하기위한 더 나은 기술을 사용할 수 있습니다.
최근까지 레이블이 지정된 이미지의 데이터 세트는 수만 개의 이미지 (예 : NORB [16], Caltech-101 / 256 [8, 9] 및 CIFAR-10 / 100 [12]) 정도로 비교적 작았습니다.
간단한 인식 작업은 특히 레이블 보존 변환으로 보강 된 경우이 크기의 데이터 세트로 매우 잘 해결할 수 있습니다.
예를 들어, MNIST 숫자 인식 작업에 대한 현재 최고 오류율 (<0.3 %)은 인간의 성능에 접근합니다 [4].
그러나 현실적인 설정의 개체는 상당한 가변성을 나타내므로 개체를 인식하는 방법을
배우려면 훨씬 더 큰 훈련 세트를 사용해야합니다.
실제로 작은 이미지 데이터 세트의 단점은 널리 인식되어 왔지만
(예 : Pinto et al. [21]), 최근에야 수백만 개의 이미지로 레이블이 지정된 데이터 세트를 수집 할 수있게되었습니다.
새로운 대규모 데이터 세트에는 수십만 개의 완전 분할 된 이미지로 구성된
LabelMe [23]와 22,000 개 이상의 범주에있는
1,500 만 개 이상의 레이블이 지정된 고해상도 이미지로 구성된 ImageNet [6]이 포함됩니다.
수백만 개의 이미지에서 수천 개의 객체에 대해 학습하려면 학습 능력이 큰 모델이 필요합니다.
그러나 객체 인식 작업의 엄청난 복잡성은 ImageNet만큼 큰 데이터 세트로도이 문제를 지정할 수 없음을 의미합니다.
따라서 우리 모델은 우리가 가지고 있지 않은 모든 데이터를 보상 할 수있는 많은 사전 지식을 가지고 있어야합니다.
컨볼 루션 신경망 (CNN)은 이러한 모델 클래스 중 하나를 구성합니다 [16, 11, 13, 18, 15, 22, 26].
용량은 깊이와 폭을 다양하게하여 제어 할 수 있으며 이미지의 특성 (즉, 통계의 정상 성 및 픽셀 종속성의 지역성)에 대해 강력하고 대부분 정확한 가정을 합니다.
따라서 비슷한 크기의 레이어를 가진 표준 피드 포워드 신경망과 비교할 때
CNN은 연결과 매개 변수가 훨씬 적기 때문에 훈련하기가 더 쉽고
이론적으로 최고의 성능은 약간 더 나빠질 수 있습니다.
CNN의 매력적인 특성과 로컬 아키텍처의 상대적인 효율성에도 불구하고
고해상도 이미지에 대규모로 적용하는 데는 여전히 엄청나게 많은 비용이 들었습니다.
다행히도 2D 컨볼 루션의 고도로 최적화 된 구현과 쌍을 이루는 현재 GPU는 흥미롭게도 큰 CNN의 훈련을 용이하게 할만큼 충분히 강력하며 ImageNet과 같은 최근 데이터 세트에는 심각한 과적 합없이
이러한 모델을 훈련하기에 충분한 레이블이 지정된 예제가 포함되어 있습니다.
이 백서의 구체적인 기여는 다음과 같습니다. ILSVRC-2010 및 ILSVRC-2012 대회에 사용 된 ImageNet의 하위 집합 [2]에서 현재까지 가장 큰 컨볼 루션 신경망 중 하나를 훈련했으며 지금까지보고 된 최고의 결과를 달성했습니다.
이러한 데이터 세트. 우리는 2D 컨볼 루션의 고도로 최적화 된 GPU 구현과 컨볼 루션 신경망 훈련에 내재 된 다른 모든 작업을 작성하여 공개적으로 제공합니다
1. 우리의 네트워크에는 성능을 향상시키고 훈련 시간을 줄이는 여러 가지 새롭고 특이한 기능이 포함되어 있습니다.
이는 섹션 3에 자세히 설명되어 있습니다. 우리 네트워크의 크기로 인해 120 만 개의 레이블이 지정된 훈련 예제에서도 과적 합이 심각한 문제가되었으므로 몇 가지를 사용했습니다. 과적 합을 방지하기위한 효과적인 기술은 섹션 4에 설명되어 있습니다.
최종 네트워크에는 5 개의 컨벌루션 레이어와 3 개의 완전 연결 레이어가 포함되어 있으며이 깊이가 중요해 보입니다. 컨볼 루션 레이어 (각 레이어에는 1 개 이하의 모델 매개 변수의 %)로 인해 성능이 저하되었습니다.
결국 네트워크의 크기는 주로 현재 GPU에서 사용할 수있는
메모리 양과 우리가 기꺼이 허용 할 훈련 시간에 의해 제한됩니다.
우리의 네트워크는 2 개의 GTX 580 3GB GPU에서 훈련하는 데 5 ~ 6 일이 걸립니다.
우리의 모든 실험은 더 빠른 GPU와 더 큰 데이터 세트를 사용할 수있을 때까지
기다리는 것만으로도 결과를 개선 할 수 있음을 시사합니다.
2 The Dataset
ImageNet은 약 22,000 개 범주에 속하는 1,500 만 개 이상의 레이블이 지정된 고해상도 이미지로 구성된 데이터 세트입니다. 이미지는 웹에서 수집하고 Amazon의 Mechanical Turk 크라우드 소싱 도구를 사용하여 라벨링 담당자가 라벨을 지정했습니다. 2010 년부터 Pascal Visual Object Challenge의 일환으로 ImageNet 대규모 시각 인식 도전 (ILSVRC)이라는 연례 대회가 열렸습니다. ILSVRC는 1000 개의 카테고리 각각에 약 1000 개의 이미지가있는 ImageNet의 하위 집합을 사용합니다. 전체적으로 약 120 만 개의 훈련 이미지, 50,000 개의 검증 이미지, 150,000 개의 테스트 이미지가 있습니다.
ILSVRC-2010은 테스트 세트 레이블을 사용할 수있는 유일한 ILSVRC 버전이므로 대부분의 실험을 수행 한 버전입니다. ILSVRC-2012 대회에도 모델을 입력 했으므로 섹션 6에서는 테스트 세트 레이블을 사용할 수없는이 버전의 데이터 세트에 대한 결과도보고합니다. ImageNet에서는 두 가지 오류율을보고하는 것이 일반적입니다. top-1 및 top-5, 여기서 top-5 오류율은 모델에서 가장 가능성이 높은 것으로 간주되는 5 개 레이블 중 올바른 레이블이 아닌 테스트 이미지의 비율입니다.
ImageNet은 가변 해상도 이미지로 구성되어 있지만 시스템에는 일정한 입력 차원이 필요합니다. 따라서 이미지를 256 × 256의 고정 해상도로 다운 샘플링했습니다. 직사각형 이미지가 주어지면 먼저 짧은면의 길이가 256이되도록 이미지 크기를 조정 한 다음 결과에서 중앙 256x256 패치를 잘라냅니다. 영상. 우리는 각 픽셀에서 훈련 세트에 대한 평균 활동을 빼는 것을 제외하고는 다른 방법으로 이미지를 사전 처리하지 않았습니다. 그래서 우리는 픽셀의 (중앙에있는) 원시 RGB 값으로 네트워크를 훈련 시켰습니다.
3 The Architecture
네트워크의 아키텍처는 그림 2에 요약되어 있습니다. 여기에는 8 개의 학습 된 계층 (5 개의 컨볼 루션 및 3 개의 완전 연결)이 있습니다. 아래에서는 네트워크 아키텍처의 새롭거나 특이한 기능 중 일부를 설명합니다. 3.1-3.4 절은 중요성에 대한 우리의 평가에 따라 분류되며, 가장 중요한 것이 먼저입니다.
3.1 ReLU Nonlinearity
뉴런의 출력 f를 입력 x의 함수로 모델링하는 표준 방법은 f (x) = tanh (x) 또는 f (x) = (1 + e −x) −1입니다.
경사 하강 법을 사용한 훈련 시간 측면에서 이러한 포화 비선형성은
비포화 비선형성 f (x) = max (0, x)보다 훨씬 느립니다.
Nair와 Hinton [20]에 이어이 비선형 성을 가진 뉴런을 ReLU (Rectified Linear Unit)라고합니다.
ReLU를 사용하는 심층 컨벌루션 신경망은 tanh 단위를 사용하는 경우보다 몇 배 더 빠르게 훈련합니다.
이는 그림 1에 나와 있으며, 특정 4 계층 컨볼 루션 네트워크에 대해 CIFAR-10 데이터 세트에서 25 % 훈련 오류에 도달하는 데 필요한 반복 횟수를 보여줍니다.
이 플롯은 우리가 기존의 포화 뉴런 모델을 사용했다면이 작업을 위해 큰 신경망을 실험 할 수 없었을 것임을 보여줍니다. 우리는 CNN의 기존 뉴런 모델에 대한 대안을 고려한 최초의 사람이 아닙니다. 예를 들어, Jarrett et al. [11]
비선형 성 f (x) = | tanh (x) | Caltech-101 데이터 세트에 대한 로컬 평균 풀링이 뒤 따르는 대비 정규화 유형에서 특히 잘 작동합니다. 그러나 이 데이터 세트에서 주요 관심사는 과적 합을 방지하는 것이므로 그들이 관찰하는 효과는 ReLU를 사용할 때보고하는 훈련 세트를 맞추는 가속 능력과 다릅니다. 빠른 학습은 대규모 데이터 세트에서 학습 된 대규모 모델의 성능에 큰 영향을 미칩니다.
그림 1 : ReLU (실선)가있는 4 계층 컨벌루션 신경망은 tanh 뉴런 (점선)이있는 동급 네트워크보다 6 배 빠르게 CIFAR-10에서 25 % 훈련 오류율에 도달합니다. 각 네트워크의 학습률은 가능한 한 빨리 훈련을하기 위해 독립적으로 선택되었습니다. 어떤 종류의 정규화도 사용되지 않았습니다. 여기에 설명 된 효과의 크기는 네트워크 아키텍처에 따라 다르지만 ReLU가있는 네트워크는 포화 뉴런이있는 네트워크보다 지속적으로 몇 배 더 빠르게 학습합니다.
3.2 Training on Multiple GPUs
단일 GTX 580 GPU에는 3GB의 메모리 만있어 학습 할 수있는 네트워크의 최대 크기를 제한합니다. 120 만 개의 훈련 예제는 하나의 GPU에 맞추기에는 너무 큰 네트워크를 훈련하기에 충분합니다. 따라서 우리는 두 개의 GPU에 그물을 분산 시켰습니다.
현재 GPU는 호스트 시스템 메모리를 거치지 않고 서로의 메모리에서 직접 읽고 쓸 수 있기 때문에 GPU 간 병렬화에 특히 적합합니다.
우리가 사용하는 병렬화 체계는 기본적으로 각 GPU에 커널 (또는 뉴런)의 절반을 배치하고 한 가지 추가 트릭을 사용합니다.
GPU는 특정 계층에서만 통신합니다. 예를 들어 계층 3의 커널은 계층 2의 모든 커널 맵에서 입력을받습니다.
그러나 계층 4의 커널은 동일한 GPU에있는 계층 3의 커널 맵에서만 입력을받습니다.
연결 패턴을 선택하는 것은 교차 검증의 문제이지만,이를 통해 계산량의 허용 가능한 부분이 될 때까지 통신량을 정확하게 조정할 수 있습니다.
결과 아키텍처는 Cire¸san 등이 사용하는 "기둥"CNN의 아키텍처와 다소 유사합니다. [5]
단, 열이 독립적이지 않다는 점을 제외하면 (그림 2 참조).
이 체계는 하나의 GPU에서 훈련 된 각 컨볼 루션 계층에 커널이 절반으로 많은 네트워크와 비교하여 상위 1 및 상위 5 오류율을 각각 1.7 % 및 1.2 % 줄입니다.
2-GPU net은 1-GPU net2보다 훈련하는 데 약간 더 적은 시간이 걸립니다.단일 GTX 580 GPU에는 3GB의 메모리 만있어 학습 할 수있는 네트워크의 최대 크기를 제한합니다.
120 만 개의 훈련 예제는 하나의 GPU에 맞추기에는 너무 큰 네트워크를 훈련하기에 충분합니다. 따라서 우리는 두 개의 GPU에 그물을 분산 시켰습니다. 현재 GPU는 호스트 시스템 메모리를 거치지 않고 서로의 메모리에서 직접 읽고 쓸 수 있기 때문에 GPU 간 병렬화에 특히 적합합니다.
우리가 사용하는 병렬화 체계는 기본적으로 각 GPU에 커널 (또는 뉴런)의 절반을 배치하고 한 가지 추가 트릭을 사용합니다. GPU는 특정 계층에서만 통신합니다. 예를 들어 계층 3의 커널은 계층 2의 모든 커널 맵에서 입력을받습니다. 그러나 계층 4의 커널은 동일한 GPU에있는 계층 3의 커널 맵에서만 입력을받습니다. 연결 패턴을 선택하는 것은 교차 검증의 문제이지만,이를 통해 계산량의 허용 가능한 부분이 될 때까지 통신량을 정확하게 조정할 수 있습니다.
결과 아키텍처는 Cire¸san 등이 사용하는 "기둥"CNN의 아키텍처와 다소 유사합니다. [5] 단, 열이 독립적이지 않다는 점을 제외하면 (그림 2 참조). 이 체계는 하나의 GPU에서 훈련 된 각 컨볼 루션 계층에 커널이 절반으로 많은 네트워크와 비교하여 상위 1 및 상위 5 오류율을 각각 1.7 % 및 1.2 % 줄입니다. 2-GPU net은 1-GPU net2보다 훈련하는 데 약간 더 적은 시간이 걸립니다.
3.3 Local Response Normalization
ReLU는 포화를 방지하기 위해 입력 정규화가 필요하지 않은 바람직한 속성을 가지고 있습니다. 적어도 일부 훈련 예제가 ReLU에 긍정적 인 입력을 생성하면 해당 뉴런에서 학습이 발생합니다. 그러나 우리는 여전히 다음과 같은 지역 정규화 체계가 일반화에 도움이된다는 것을 발견했습니다.
aix, y는 위치 (x, y)에 커널 i를 적용한 다음 ReLU 비선형 성을 적용하여 계산 된 뉴런의 활동을 나타내며, 응답 정규화 된 활동 bix, y는 합계가 n "인접한 ”커널은 동일한 공간 위치에 매핑되며 N은 계층의 총 커널 수입니다. 커널 맵의 순서는 물론 임의적이며 훈련이 시작되기 전에 결정됩니다. 이러한 종류의 반응 정규화는 실제 뉴런에서 발견되는 유형에서 영감을 얻은 측면 억제의 한 형태를 구현하여 다른 커널을 사용하여 계산 된 뉴런 출력 사이에서 큰 활동에 대한 경쟁을 만듭니다. 상수 k, n, α 및 β는 검증 세트를 사용하여 값이 결정되는 하이퍼 파라미터입니다.
우리는 k = 2, n = 5, α = 10−4 및 β = 0.75를 사용했습니다. 특정 계층에 ReLU 비선형 성을 적용한 후이 정규화를 적용했습니다 (섹션 3.5 참조). 이 체계는 Jarrett et al.의 국소 대비 정규화 체계와 일부 유사합니다. [11], 그러나 우리는 평균 활동을 빼지 않기 때문에 "밝기 정규화"라고 더 정확하게 불릴 것입니다. 응답 정규화는 top-1 및 top-5 오류율을 각각 1.4 %와 1.2 % 줄입니다. 또한 CIFAR-10 데이터 세트에서이 체계의 효과를 확인했습니다. 4 계층 CNN은 정규화없이 13 % 테스트 오류율을, 정규화로 11 %를 달성했습니다 3.
3.4 Overlapping Pooling
CNN의 풀링 레이어는 동일한 커널 맵에있는 인접 뉴런 그룹의 출력을 요약합니다. 전통적으로 인접한 풀링 단위로 요약 된 이웃은 겹치지 않습니다 (예 : [17, 11, 4]). 더 정확하게 말하면, 풀링 레이어는 s 픽셀 간격의 풀링 단위 그리드로 구성된 것으로 생각할 수 있으며, 각각 풀링 단위의 위치를 중심으로 크기 z × z의 이웃을 요약합니다. s = z로 설정하면 CNN에서 일반적으로 사용되는 전통적인 로컬 풀링을 얻습니다. s <z를 설정하면 중첩 풀링을 얻습니다. 이것이 s = 2 및 z = 3으로 네트워크 전체에서 사용하는 것입니다.이 체계는 중첩되지 않는 체계에 비해 top-1 및 top-5 오류율을 각각 0.4 % 및 0.3 % 줄입니다. s = 2, z = 2, 동등한 차원의 출력을 생성합니다. 우리는 일반적으로 겹치는 풀링이있는 모델이 과적 합하기가 약간 더 어렵다는 것을 학습 중에 관찰합니다.
3.5 Overall Architecture
이제 CNN의 전체 아키텍처를 설명 할 준비가되었습니다. 그림 2에서 볼 수 있듯이 네트에는 가중치가있는 8 개의 레이어가 있습니다. 처음 5 개는 컨벌루션이고 나머지 3 개는 완전히 연결되어 있습니다. 마지막 완전 연결 레이어의 출력은 1000 개의 클래스 레이블에 대한 분포를 생성하는 1000-way 소프트 맥스에 공급됩니다. 우리의 네트워크는 다항 로지스틱 회귀 목표를 최대화하는데, 이는 예측 분포에서 올바른 레이블의 로그 확률에 대한 훈련 케이스의 평균을 최대화하는 것과 같습니다. 두 번째, 네 번째 및 다섯 번째 컨벌루션 계층의 커널은 동일한 GPU에있는 이전 계층의 커널 맵에만 연결됩니다 (그림 2 참조).
세 번째 컨벌루션 계층의 커널은 두 번째 계층의 모든 커널 맵에 연결됩니다. 완전히 연결된 계층의 뉴런은 이전 계층의 모든 뉴런에 연결됩니다. 응답 정규화 계층은 첫 번째 및 두 번째 컨벌루션 계층을 따릅니다. 3.4 절에서 설명한 종류의 최대 풀링 계층은 응답 정규화 계층과 다섯 번째 컨벌루션 계층을 따릅니다. ReLU 비선형 성은 모든 컨벌루션 및 완전 연결 계층의 출력에 적용됩니다. 첫 번째 컨벌루션 계층은 4 픽셀의 보폭으로 11x11x3 크기의 96 개 커널로 224x224x3 입력 이미지를 필터링합니다 (이는 커널 맵에서 인접한 뉴런의 수용 필드 중심 사이의 거리입니다).
두 번째 컨벌루션 계층은 첫 번째 컨벌루션 계층의 (응답 정규화 및 풀링 된) 출력을 입력으로 취하고 크기가 5 × 5 × 48 인 256 개의 커널로 필터링합니다. 세 번째, 네 번째 및 다섯 번째 컨벌루션 계층은 중재 풀링 또는 정규화 계층. 세 번째 컨벌루션 계층에는 두 번째 컨벌루션 계층의 (정규화, 풀링 된) 출력에 연결된 크기 3 × 3 × 256의 384 개의 커널이 있습니다. 네 번째 컨벌루션 계층에는 3 × 3 × 192 크기의 커널 384 개가 있고, 다섯 번째 컨벌루션 계층에는 3 × 3 × 192 크기의 커널 256 개가 있습니다. 완전 연결 계층에는 각각 4096 개의 뉴런이 있습니다.
4 Reducing Overfitting
우리의 신경망 아키텍처에는 6 천만 개의 매개 변수가 있습니다. 1000 개의 ILSVRC 클래스로 인해 각 학습 예제가 이미지에서 레이블로의 매핑에 10 비트의 제약을 부과하지만, 이는 상당한 과적 합없이 너무 많은 매개 변수를 학습하기에 불충분 한 것으로 나타났습니다. 아래에서는 과적 합과 싸우는 두 가지 주요 방법을 설명합니다.
4.1 Data Augmentation
이미지 데이터의 과적 합을 줄이는 가장 쉽고 일반적인 방법은 레이블 보존 변환을 사용하여 데이터 세트를 인위적으로 확대하는 것입니다 (예 : [25, 4, 5]). 우리는 두 가지 다른 형태의 데이터 증대를 사용하는데, 두 가지 모두 매우 적은 계산으로 원본 이미지에서 변환 된 이미지를 생성 할 수 있으므로 변환 된 이미지를 디스크에 저장할 필요가 없습니다. 구현에서 GPU가 이전 이미지 배치에 대해 학습하는 동안 변환 된 이미지는 CPU의 Python 코드로 생성됩니다. 따라서 이러한 데이터 증가 체계는 사실상 계산적으로 무료입니다.
데이터 증대의 첫 번째 형태는 이미지 변환 및 수평 반사 생성으로 구성됩니다. 256 × 256 이미지에서 무작위 224 × 224 패치 (및 수평 반사)를 추출하고 추출 된 패치 4에서 네트워크를 훈련하여이를 수행합니다. 이렇게하면 학습 세트의 크기가 2048 배 증가하지만 결과 학습 예제는 물론 상호 의존성이 높습니다. 이 체계가 없다면 우리의 네트워크는 상당한 과적 합으로 어려움을 겪게되어 훨씬 더 작은 네트워크를 사용해야합니다. 테스트 시간에 네트워크는 5 개의 224 × 224 패치 (4 개의 코너 패치 및 중앙 패치)와 수평 반사 (따라서 모두 10 개의 패치)를 추출하고 네트워크의 소프트 맥스 계층에서 만든 예측을 평균하여 예측을 수행합니다.
10 개의 패치에. 두 번째 형태의 데이터 증가는 훈련 이미지에서 RGB 채널의 강도를 변경하는 것으로 구성됩니다. 특히 ImageNet 학습 세트 전체에서 RGB 픽셀 값 세트에 대해 PCA를 수행합니다. 각 훈련 이미지에 평균 0 및 표준 편차 0.1을 사용하여 가우스에서 추출한 랜덤 변수를 곱한 해당 고유 값에 비례하는 크기로 발견 된 주성분의 배수를 추가합니다. 따라서 각 RGB 이미지 픽셀 Ixy = [IR xy, IG xy, IB xy] T에 다음 수량을 추가합니다.
[p1, p2, p3] [α1λ1, α2λ2, α3λ3] T
여기서 pi와 λi는 i 번째 고유 벡터이고 다음의 고유 값입니다. RGB 픽셀 값의 3 × 3 공분산 행렬과 αi는 앞서 언급 한 랜덤 변수입니다. 각 αi는 특정 트레이닝 이미지의 모든 픽셀에 대해 해당 이미지가 다시 트레이닝에 사용될 때까지 한 번만 그려지며, 그 지점에서 다시 그려집니다. 이 체계는 자연 이미지의 중요한 속성, 즉 물체의 정체성이 조명의 강도와 색상의 변화에 따라 변하지 않는다는 것을 대략적으로 포착합니다. 이 체계는 상위 1 오류율을 1 % 이상 줄입니다.
4.2 Dropout
다양한 모델의 예측을 결합하는 것은 테스트 오류를 줄이는 매우 성공적인 방법입니다 [1, 3]. 그러나 학습하는 데 이미 며칠이 걸리는 큰 신경망에는 너무 많은 비용이 드는 것 같습니다. 그러나 훈련 중 약 2 배의 비용 만 드는 매우 효율적인 모델 조합 버전이 있습니다. 최근에 도입 된 기술인“dropout”[10]은 각 은닉 뉴런의 출력을 0.5 확률로 0으로 설정하는 것으로 구성됩니다. 이러한 방식으로 "드롭 아웃"된 뉴런은 순방향 패스에 기여하지 않으며 역 전파에 참여하지 않습니다. 따라서 입력이 제공 될 때마다 신경망은 다른 아키텍처를 샘플링하지만 이러한 모든 아키텍처는 가중치를 공유합니다. 이 기술은 뉴런이 특정 다른 뉴런의 존재에 의존 할 수 없기 때문에 뉴런의 복잡한 공동 적응을 줄입니다. 따라서 다른 뉴런의 다양한 무작위 하위 집합과 함께 유용한 더 강력한 기능을 학습해야합니다. 테스트 시간에 우리는 모든 뉴런을 사용하지만 출력에 0.5를 곱합니다. 이는 지수 적으로 많은 드롭 아웃 네트워크에 의해 생성 된 예측 분포의 기하학적 평균을 취하는 합리적인 근사치입니다. 그림 2의 처음 두 개의 완전히 연결된 레이어에서 드롭 아웃을 사용합니다. 드롭 아웃이 없으면 네트워크는 상당한 과적 합을 나타냅니다. 드롭 아웃은 수렴하는 데 필요한 반복 횟수를 대략 두 배로 늘립니다.
5 Details of learning
배치 크기는 128 개, 모멘텀은 0.9, 가중치 감소는 0.0005 인 확률 적 경사 하강 법을 사용하여 모델을 훈련했습니다. 우리는이 작은 무게 감소가 모델이 학습하는 데 중요하다는 것을 발견했습니다. 즉, 여기서 가중치 감소는 단순한 정규화가 아니라 모델의 학습 오류를 줄입니다. 가중치 w에 대한 업데이트 규칙은
vi + 1 : = 0.9 · vi − 0.0005 · · wi − · ∂L ∂w wi Di wi + 1 : = wi + vi + 1 여기서 i는 반복 지수, v는 운동량 변수입니다. ,는 학습률이고, D ∂L ∂w wi E Di는 wi에서 평가 된 w에 대한 목적 도함수의 i 번째 배치 Di에 대한 평균입니다.
표준 편차가 0.01 인 0 평균 가우스 분포에서 각 계층의 가중치를 초기화했습니다. 우리는 상수 1을 사용하여 두 번째, 네 번째 및 다섯 번째 컨벌루션 계층뿐만 아니라 완전히 연결된 숨겨진 계층에서도 뉴런 편향을 초기화했습니다.이 초기화는 ReLU에 양의 입력을 제공하여 학습의 초기 단계를 가속화합니다. 나머지 계층의 뉴런 편향을 상수 0으로 초기화했습니다. 모든 계층에 대해 동일한 학습률을 사용했으며, 훈련 내내 수동으로 조정했습니다.
우리가 따랐던 휴리스틱은 유효성 검사 오류율이 현재 학습률로 개선되지 않을 때 학습률을 10으로 나누는 것입니다. 학습률은 0.01로 초기화되었고 종료 전에 3 배 감소했습니다. 2 개의 NVIDIA GTX 580 3GB GPU에서 5 ~ 6 일이 소요되는 120 만 개의 이미지 학습 세트를 통해 대략 90주기 동안 네트워크를 학습했습니다.
6.RESULT
ILSVRC-2010에 대한 우리의 결과는 표 1에 요약되어 있습니다. 우리 네트워크는 37.5 % 및 17.0 % 5의 top-1 및 top-5 테스트 세트 오류율을 달성합니다. ILSVRC2010 대회에서 달성 한 최고 성능은 47.1 % 및 28.2 %였으며 다양한 기능에 대해 훈련 된 6 개의 희소 코딩 모델에서 생성 된 예측을 평균하는 접근 방식을 사용했습니다 [2], 그 이후로 가장 잘 게시 된 결과는 45.7 % 및 25.7 %입니다. 두 가지 유형의 조밀하게 샘플링 된 특성에서 계산 된 Fisher 벡터 (FV)에 대해 훈련 된 두 분류기의 예측을 평균하는 접근 방식 [24].
또한 ILSVRC-2012 대회에 모델을 입력하고 결과를 표 2에보고합니다. ILSVRC-2012 테스트 세트 레이블은 공개적으로 사용할 수 없기 때문에 시도한 모든 모델에 대한 테스트 오류율을보고 할 수 없습니다. 이 단락의 나머지 부분에서는 검증 및 테스트 오류율을 상호 교환 적으로 사용합니다. 경험상 0.1 % 이상 차이가 나지 않기 때문입니다 (표 2 참조). 이 백서에 설명 된 CNN은 18.2 %의 상위 5 개 오류율을 달성합니다.
5 개의 유사한 CNN의 예측을 평균하면 16.4 %의 오류율이 제공됩니다. 전체 ImageNet Fall 2011 릴리스 (1,500 만 이미지, 22K 범주)를 분류하기 위해 마지막 풀링 계층에 추가 6 번째 컨벌루션 계층이있는 하나의 CNN을 훈련 한 다음 ILSVRC-2012에서 "미세 조정"하면 오류율 16.6%이됩니다.
2011 년 가을 전체 릴리스에서 앞서 언급 한 5 개의 CNN으로 사전 훈련 된 2 개의 CNN에 대한 예측을 평균하면 15.3 %의 오류율이 제공됩니다. 두 번째로 좋은 대회 출품작은 다양한 유형의 조밀하게 샘플링 된 특성에서 계산 된 FV에 대해 훈련 된 여러 분류기의 예측을 평균하는 접근 방식으로 26.2 %의 오류율을 달성했습니다 [7].
마지막으로 2010 년 가을 버전의 ImageNet에서 10,184 개의 카테고리와 890 만 개의 이미지가있는 오류율을보고합니다. 이 데이터 세트에서 우리는 이미지의 절반을 훈련에 사용하고 절반을 테스트에 사용하는 문헌의 규칙을 따릅니다. 설정된 테스트 세트가 없기 때문에 분할은 이전 작성자가 사용한 분할과 반드시 다르지만 결과에 큰 영향을주지는 않습니다. 이 데이터 세트에서 상위 1 위 및 상위 5 위 오류율은 67.4 % 및 40.9 %이며, 위에서 설명한 그물에 의해 달성되었지만 마지막 풀링 레이어에 대한 추가 6 번째 컨벌루션 레이어가 있습니다. 이 데이터 세트에서 가장 잘 게시 된 결과는 78.1 % 및 60.9 %입니다 [19].
6.1 Qualitative Evaluations
그림 3은 네트워크의 두 데이터 연결 계층이 학습 한 컨볼 루션 커널을 보여줍니다. 네트워크는 다양한 주파수 및 방향 선택 커널과 다양한 색상의 얼룩을 학습했습니다. 3.5 절에 설명 된 제한된 연결의 결과로 두 GPU가 나타내는 전문화에 주목하십시오. GPU 1의 커널은 색상과 무관 한 반면 GPU 2의 커널은 색상에 따라 다릅니다. 이러한 종류의 전문화는 모든 실행 중에 발생하며 특정 임의 가중치 초기화 (모듈로 GPU 번호 재 지정)와는 독립적입니다. 그림 4의 왼쪽 패널에서 우리는 8 개의 테스트 이미지에 대한 상위 5 개 예측을 계산하여 네트워크가 학습 한 내용을 질적으로 평가합니다. 왼쪽 상단의 진드기와 같이 중심에서 벗어난 물체도 그물로 인식 할 수 있습니다. 대부분의 상위 5 개 레이블은 합리적으로 보입니다. 예를 들어, 다른 유형의 고양이 만 표범에 대해 그럴듯한 레이블로 간주됩니다. 경우에 따라 (그릴, 체리) 사진의 의도 된 초점에 대해 진정한 모호성이 있습니다. 네트워크의 시각적 지식을 조사하는 또 다른 방법은 마지막 4096 차원 히든 레이어에서 이미지에 의해 유도 된 기능 활성화를 고려하는 것입니다. 두 이미지가 유클리드 분리가 작은 특징 활성화 벡터를 생성하는 경우 신경망의 높은 수준이이를 유사하다고 간주한다고 말할 수 있습니다. 그림 4는이 측정에 따라 각각에 가장 유사한 테스트 세트의 5 개 이미지와 훈련 세트의 6 개 이미지를 보여줍니다. 픽셀 수준에서 검색된 학습 이미지는 일반적으로 L2에서 첫 번째 열의 쿼리 이미지에 가깝지 않습니다. 예를 들어, 검색된 개와 코끼리는 다양한 포즈로 나타납니다. 우리는 보충 자료에서 더 많은 테스트 이미지에 대한 결과를 제시합니다. 2 개의 4096 차원 실수 값 벡터 사이의 유클리드 거리를 사용하여 유사성을 계산하는 것은 비효율적이지만 이러한 벡터를 짧은 이진 코드로 압축하도록 자동 인코더를 훈련하면 효율적으로 만들 수 있습니다. 이것은 이미지 라벨을 사용하지 않기 때문에 의미 상 유사 여부에 관계없이 유사한 가장자리 패턴을 가진 이미지를 검색하는 경향이있는 원시 픽셀에 자동 인코더를 적용하는 것보다 훨씬 더 나은 이미지 검색 방법을 생성합니다 [14].
7 Discussion
우리의 결과는 크고 깊은 컨볼 루션 신경망이 순전히 감독 학습을 사용하여 매우 까다로운 데이터 세트에서 기록적인 결과를 얻을 수 있음을 보여줍니다. 단일 컨볼 루션 레이어를 제거하면 네트워크 성능이 저하된다는 점이 주목할 만합니다. 예를 들어 중간 계층 중 하나를 제거하면 네트워크의 상위 1 개 성능에 대해 약 2 %의 손실이 발생합니다. 따라서 결과를 달성하려면 깊이가 정말 중요합니다. 실험을 단순화하기 위해 우리는 도움이 될 것으로 예상하더라도 감독되지 않은 사전 훈련을 사용하지 않았습니다. 특히 레이블이 지정된 데이터 양의 상응하는 증가를 얻지 않고 네트워크 크기를 크게 늘릴 수있는 충분한 계산 능력을 얻는 경우에 더욱 그렇습니다. 지금까지 네트워크를 더 크게 만들고 더 오래 훈련시킴으로써 결과가 향상되었지만 인간 시각 시스템의 시간-시간 경로를 맞추기 위해 갈 수있는 규모가 여전히 많습니다. 궁극적으로 우리는 시간 구조가 정적 이미지에서 누락되거나 훨씬 덜 분명한 매우 유용한 정보를 제공하는 비디오 시퀀스에서 매우 크고 깊은 컨볼 루션 네트를 사용하려고합니다.
References
[1] R.M. Bell and Y. Koren. Lessons from the netflix prize challenge. ACM SIGKDD Explorations Newsletter, 9(2):75–79, 2007.
[2] A. Berg, J. Deng, and L. Fei-Fei. Large scale visual recognition challenge 2010. www.imagenet.org/challenges. 2010. [3] L. Breiman. Random forests. Machine learning, 45(1):5–32, 2001.
[4] D. Cire¸san, U. Meier, and J. Schmidhuber. Multi-column deep neural networks for image classification. Arxiv preprint arXiv:1202.2745, 2012.
[5] D.C. Cire¸san, U. Meier, J. Masci, L.M. Gambardella, and J. Schmidhuber. High-performance neural networks for visual object classification. Arxiv preprint arXiv:1102.0183, 2011.
[6] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei. ImageNet: A Large-Scale Hierarchical Image Database. In CVPR09, 2009.
[7] J. Deng, A. Berg, S. Satheesh, H. Su, A. Khosla, and L. Fei-Fei. ILSVRC-2012, 2012. URL http://www.image-net.org/challenges/LSVRC/2012/.
[8] L. Fei-Fei, R. Fergus, and P. Perona. Learning generative visual models from few training examples: An incremental bayesian approach tested on 101 object categories. Computer Vision and Image Understanding, 106(1):59–70, 2007. [9] G. Griffin, A. Holub, and P. Perona. Caltech-256 object category dataset. Technical Report 7694, California Institute of Technology, 2007. URL http://authors.library.caltech.edu/7694.
[10] G.E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, and R.R. Salakhutdinov. Improving neural networks by preventing co-adaptation of feature detectors. arXiv preprint arXiv:1207.0580, 2012.
[11] K. Jarrett, K. Kavukcuoglu, M. A. Ranzato, and Y. LeCun. What is the best multi-stage architecture for object recognition? In International Conference on Computer Vision, pages 2146–2153. IEEE, 2009.
[12] A. Krizhevsky. Learning multiple layers of features from tiny images. Master’s thesis, Department of Computer Science, University of Toronto, 2009.
[13] A. Krizhevsky. Convolutional deep belief networks on cifar-10. Unpublished manuscript, 2010.
[14] A. Krizhevsky and G.E. Hinton. Using very deep autoencoders for content-based image retrieval. In ESANN, 2011.
[15] Y. Le Cun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard, L.D. Jackel, et al. Handwritten digit recognition with a back-propagation network. In Advances in neural information processing systems, 1990.
[16] Y. LeCun, F.J. Huang, and L. Bottou. Learning methods for generic object recognition with invariance to pose and lighting. In Computer Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings of the 2004 IEEE Computer Society Conference on, volume 2, pages II–97. IEEE, 2004.
[17] Y. LeCun, K. Kavukcuoglu, and C. Farabet. Convolutional networks and applications in vision. In Circuits and Systems (ISCAS), Proceedings of 2010 IEEE International Symposium on, pages 253–256. IEEE, 2010.
[18] H. Lee, R. Grosse, R. Ranganath, and A.Y. Ng. Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations. In Proceedings of the 26th Annual International Conference on Machine Learning, pages 609–616. ACM, 2009.
[19] T. Mensink, J. Verbeek, F. Perronnin, and G. Csurka. Metric Learning for Large Scale Image Classification: Generalizing to New Classes at Near-Zero Cost. In ECCV - European Conference on Computer Vision, Florence, Italy, October 2012.
[20] V. Nair and G. E. Hinton. Rectified linear units improve restricted boltzmann machines. In Proc. 27th International Conference on Machine Learning, 2010.
[21] N. Pinto, D.D. Cox, and J.J. DiCarlo. Why is real-world visual object recognition hard? PLoS computational biology, 4(1):e27, 2008.
[22] N. Pinto, D. Doukhan, J.J. DiCarlo, and D.D. Cox. A high-throughput screening approach to discovering good forms of biologically inspired visual representation. PLoS computational biology, 5(11):e1000579, 2009.
[23] B.C. Russell, A. Torralba, K.P. Murphy, and W.T. Freeman. Labelme: a database and web-based tool for image annotation. International journal of computer vision, 77(1):157–173, 2008.
[24] J. Sánchez and F. Perronnin. High-dimensional signature compression for large-scale image classification. In Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on, pages 1665–1672. IEEE, 2011.
[25] P.Y. Simard, D. Steinkraus, and J.C. Platt. Best practices for convolutional neural networks applied to visual document analysis. In Proceedings of the Seventh International Conference on Document Analysis and Recognition, volume 2, pages 958–962, 2003.
[26] S.C. Turaga, J.F. Murray, V. Jain, F. Roth, M. Helmstaedter, K. Briggman, W. Denk, and H.S. Seung. Convolutional networks can learn to generate affinity graphs for image segmentation. Neural Computation, 22(2):511–538, 2010
papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
Momentum
1) 첫번째 레이어(컨볼루션 레이어): 96개의 11 x 11 x 3 사이즈 필터커널로 입력 영상을 컨볼루션해준다. 컨볼루션 보폭(stride)를 4로 설정했고, zero-padding은 사용하지 않았다. zero-padding은 컨볼루션으로 인해 특성맵의 사이즈가 축소되는 것을 방지하기 위해, 또는 축소되는 정도를 줄이기 위해 영상의 가장자리 부분에 0을 추가하는 것이다. 결과적으로 55 x 55 x 96 특성맵(96장의 55 x 55 사이즈 특성맵들)이 산출된다. 그 다음에 ReLU 함수로 활성화해준다. 이어서 3 x 3 overlapping max pooling이 stride 2로 시행된다. 그 결과 27 x 27 x 96 특성맵을 갖게 된다. 그 다음에는 수렴 속도를 높이기 위해 local response normalization이 시행된다. local response normalization은 특성맵의 차원을 변화시키지 않으므로, 특성맵의 크기는 27 x 27 x 96으로 유지된다.
* 컨볼루션 이후 특성맵의 사이즈가 어떻게 결정되는지에 대해서 의문을 가질 분들이 계실 것 같습니다. 그래서 이에 대한 내용을 AlexNet보다 이후에 나온 모델들인 VGG-F, VGG-M, VGG-S을 설명하면서 하단부에 소개했으니 참고하시기 바랍니다.
2) 두번째 레이어(컨볼루션 레이어): 256개의 5 x 5 x 48 커널을 사용하여 전 단계의 특성맵을 컨볼루션해준다. stride는 1로, zero-padding은 2로 설정했다. 따라서 27 x 27 x 256 특성맵(256장의 27 x 27 사이즈 특성맵들)을 얻게 된다. 역시 ReLU 함수로 활성화한다. 그 다음에 3 x 3 overlapping max pooling을 stride 2로 시행한다. 그 결과 13 x 13 x 256 특성맵을 얻게 된다. 그 후 local response normalization이 시행되고, 특성맵의 크기는 13 x 13 x 256으로 그대로 유지된다.
3) 세번째 레이어(컨볼루션 레이어): 384개의 3 x 3 x 256 커널을 사용하여 전 단계의 특성맵을 컨볼루션해준다. stride와 zero-padding 모두 1로 설정한다. 따라서 13 x 13 x 384 특성맵(384장의 13 x 13 사이즈 특성맵들)을 얻게 된다. 역시 ReLU 함수로 활성화한다.
4) 네번째 레이어(컨볼루션 레이어): 384개의 3 x 3 x 192 커널을 사용해서 전 단계의 특성맵을 컨볼루션해준다. stride와 zero-padding 모두 1로 설정한다. 따라서 13 x 13 x 384 특성맵(384장의 13 x 13 사이즈 특성맵들)을 얻게 된다. 역시 ReLU 함수로 활성화한다.
5) 다섯번째 레이어(컨볼루션 레이어): 256개의 3 x 3 x 192 커널을 사용해서 전 단계의 특성맵을 컨볼루션해준다. stride와 zero-padding 모두 1로 설정한다. 따라서 13 x 13 x 256 특성맵(256장의 13 x 13 사이즈 특성맵들)을 얻게 된다. 역시 ReLU 함수로 활성화한다. 그 다음에 3 x 3 overlapping max pooling을 stride 2로 시행한다. 그 결과 6 x 6 x 256 특성맵을 얻게 된다.
6) 여섯번째 레이어(Fully connected layer): 6 x 6 x 256 특성맵을 flatten해줘서 6 x 6 x 256 = 9216차원의 벡터로 만들어준다. 그것을 여섯번째 레이어의 4096개의 뉴런과 fully connected 해준다. 그 결과를 ReLU 함수로 활성화한다.
7) 일곱번째 레이어(Fully connected layer): 4096개의 뉴런으로 구성되어 있다. 전 단계의 4096개 뉴런과 fully connected되어 있다. 출력 값은 ReLU 함수로 활성화된다.
8) 여덟번째 레이어(Fully connected layer): 1000개의 뉴런으로 구성되어 있다. 전 단계의 4096개 뉴런과 fully connected되어 있다. 1000개 뉴런의 출력값에 softmax 함수를 적용해 1000개 클래스 각각에 속할 확률을 나타낸다.
4) local response normalization (LRN): 신경생물학에는 lateral inhibition이라고 불리는 개념이 있다. 활성화된 뉴런이 주변 이웃 뉴런들을 억누르는 현상을 의미한다. lateral inhibition 현상을 모델링한 것이 바로 local response normalization이다. 강하게 활성화된 뉴런의 주변 이웃들에 대해서 normalization을 실행한다. 주변에 비해 어떤 뉴런이 비교적 강하게 활성화되어 있다면, 그 뉴런의 반응은 더욱더 돋보이게 될 것이다. 반면 강하게 활성화된 뉴런 주변도 모두 강하게 활성화되어 있다면, local response normalization 이후에는 모두 값이 작아질 것이다.
그림4. non-overlapping pooling과 overlapping pooling 비교
'ML' 카테고리의 다른 글
로지스틱 회귀(Logistic regression) (0) | 2021.01.15 |
---|---|
SqueezeNet [모델 압축] 논문 리뷰&구현 [Matlab] (0) | 2020.11.17 |
Decoupled Neural Interfaces Using Synthetic Gradients 요약 (0) | 2020.11.06 |
Resnet (0) | 2020.10.09 |
Vggnet 논문 리뷰 (0) | 2020.10.09 |