
본 논문에서 우리는 거대한 이미지 인지 환경에서 합성곱 신경망 깊이가 정확도에 미치는 효과를 조사했다.
본 연구의 주요 기여는 매우 작은 (3x3) 컨볼루션 필터를 사용하는 구조에서 네트워크의 깊이를 증가시키며 실험한 것이며, 이는 레이어 수를 16~19개의 가중치 층까지 깊게 만들면 기존의 방법들보다 주요한 성능 향상을 얻을 수 있다는 것을 보여준다.
이러한 발견은 우리 팀이 ImageNet Challenge 2014에 제출한 결과의 기반이 되었으며, 그 결과 우리 팀이 localization 에서 1위, classification 에서 2위를 달성했다.
우리는 또한 우리의 결과물이 잘 일반화되어 다른 데이터셋에서도 좋은 결과를 달성하는 것을 보여준다.
우리는 우리의 두가지 최고 성능 CNN 모델을 이후 연구에서 용이하게 사용할 수 있도록 공공적으로 사용가능하게 만들었다.
CNN은 최근 거대한 이미지, 영상 인지에서 좋은 성과를 거두었으며, 이는 거대 공공 이미지 데이터와 GPU 또는 대규모 분산 클러스터와 같은 고성능 연산 시스템 덕분에 가능하게 되었다.
특히, 심층 시각 인지 아키텍처의 발전에서 ImageNet 대규모 시각 인식 챌린지가 중요한 역할을 하였으며, 이는 고차원 얕은 특징 인코딩 부터 심층 CNN까지 거대 이미지 분류 시스템의 몇 세대를 위한 테스트베드를 제공했다.
컴퓨터 비전 분야에서 CNN이 보편화됨에 따라 더 나은 정확도를 달성하기 위해 Krizhevsky et al.의 아키텍쳐를 향상시키기 위한 여러 시도가 이루어졌다.
예를 들어, ILSVRC-2013에서 가장 좋은 성능을 보인 제출은 첫번째 컨볼루션 레이어에서 더 작은 윈도우 사이즈와 더 작은 스트라이드를 활용했다.
다른 방향의 발전은 네트워크를 전체 이미지와 여러 스케일에 걸쳐 빽빽하게 학습하고 테스트하는 것을 다루었다.
본 논문에서는 CNN 아키텍쳐 설계의 다른 주요한 측면인 깊이를 다룬다.
마지막으로, 우리는 아키텍쳐의 다른 파라미터를 수정하고 더 많은 컨볼루션 레이어를 추가하는 것으로 네트워크의 깊이를 점진적으로 증가시켰으며, 이는 모든 레이어레서 매우 작은 컨볼루션 필터를 사용하기 때문에 실행가능하다.
결과적으로, 우리는 훨씬 더 정확한 CNN 아키텍쳐를 생각해냈고, 이는 ILSVRC 분류와 로컬라이제이션에서 최신의 정확도를 달성한 것 뿐만 아니라 다른 이미지 인식 데이터셋에서도 사용가능하게 했으며, 심지어 상대적으로 간단한 파이프라인(예: 미세조정되지 않은 선형 SVM으로 분류된 심층 특징)의 일부로 사용될 때도 최고의 성능을 달성했다.
본 논문의 나머지는 다음과 같이 구성되어 있다.
Section 2에서 우리는 우리의 CNN 구성을 설명한다.
이미지 분류 학습과 평가의 세부사항은 Section 3에 있고, Section 4에 ILSVRC 분류 작업에서의 구성을 비교한다.
Section 5는 논문의 결론이 있다.
완성도를 위해, 우리는 부록 A에서 우리의 ILSVRC-2014 객체 로컬라이제이션 시스템을 설명하고 평가하며, 부록 B에서 다른 데이터셋에서의 심층 특징의 일반화를 설명한다.
마지막으로, 부록 C는 논문의 주요 수정 사항 목록이 포함하고 있다.
같은 설정에서 CNN 깊이를 증가시키는 것에 따른 향상을 측정하기 위해 우리의 모든 CNN 레이어 구성은 Ciresan et al.(2011)과 Krizhevsky et al.(2012) 에서 가져온 같은 원칙을 사용하여 설계되었다.
현재 섹션에선, 우리는 설명한다 / 일반적인 틀을 / 우리의 CNN 구성의 / 그리고 세부화한다 / 특정한 구성(섹션 2.1)을 / 평가(섹션 2.2)에서 사용된
현재 섹션에서, 우리는 우리의 CNN 구성의 일반적인 틀을 설명하고 (섹션 2.1), 평가에서 사용된 특정한 구성을 세부화한다(섹션 2.2).
섹션 2.3에서 우리의 설계를 설명하고 기존의 방법과 비교한다.
학습에서, 우리의 CNN의 입력은 고정된 크기의 224x224 RGB 이미지이다.
우리가 진행한 유일한 전처리는 학습 세트의 각 픽셀로부터 계산된 평균 RGB 값을 빼는 것이다.
이미지는 3x3의 매우 작은 수용적인 영역(이는 상하좌우, 중앙의 개념을 잡기위한 가장 작은 크기이다.)을 가진 필터를 사용하는 컨볼루션 레이어 스택을 지나간다.
구성 중 하나에서 우리는 1x1 컨볼루션 필터도 사용하는데, 이는 입력채널의 선형 변환(뒤에 비선형성 적용) 으로 볼 수 있다.
컨볼루션 스트라이드는 1 픽셀로 고정되어 있으며, 컨볼루션 레이어 입력의 패딩은 컨볼루션 연산 이루에 해상도가 유지되도록 한다. 즉, 3x3 레이어의 패딩은 1 픽셀이다.
풀링은 5개의 맥스 풀링에 의해 수행되며, 이는 몇몇의 컨볼루션 레이어 뒤에 따른다. (모든 컨볼루션 레이어 뒤에 맥스 풀링이 따르는 것은 아니다.)
맥스 풀링은 2x2 픽셀 윈도우와 스트라이드 2로 수행된다.
컨볼루션 레이어 스택 (다른 아키텍쳐에서 다른 깊이를 가지는) 뒤레는 세 개의 완전 연결 층이 있으며, 처음 두 레이어는 각각 4096개의 채널을 가지고, 세번째 레이어는 1000-way ILSVRC 분류를 숳행하고 또한 1000개의 채널을 포함한다. (각 클래스만다 하나씩)
마지막 레이어는 소프트맥스 레이어이다.
완전 연결층의 구성은 모든 네트워크에서 같다.
모든 은닉층은 정류 비선형 함수 (ReLU)를 가지고 있다.
우리는 우리의 네트워크들은 Local Response Normalization (LRN)을 포함하지 않으며 (하나를 제외하고), 섹션 4에 서술되어 있듯이 이러한 정규화는 ILSVRC 데이터셋에서의 성능을 향상시키지 않고, 메모리 소모와 연산 시간을 증가시킨다.
사용하는 경우에는, LRN 레이어의 파라미터는 Krizhevsky et al. (2012)의 파라미터를 따른다.
본 논문에서 평가된 CNN의 구성은 표 1에 나와있다.
우리가 언급할 네트워크의 이름은 (A-E)이다.
모든 구선은 섹션 2.1에 나와있는 일반적인 설계를 따르고, 네트워크 A에 있는 11개의 가중치 레이어부터 (컨볼루션 레이어 8개와 완전 연결층 3개) 네트워크 E에 있는 19개의 가중치 레이어까지 (컨볼루션 레이어 16개와 완전 연결층 3개)까지 깊이만 다르다.
컨볼루션 레이어의 너비(채널의 수)는 첫번째 레이어에서 64로 시작하여 상당히 작으며, 512에 도달할 때까지 각 맥스 풀링 레이어를 지날때 마다 2배씩 증가한다.
표 2에는 각 구성의 파라미터 수가 서술되어 있다.
이러한 깊이에도 불구하고, 우리의 네트워크의 가중치의 수는 더 큰 컨볼루션 레이어 너비와 수용 영역을 가진 얕은 네트워크의 가중치 수보다 많지 않다.
우리의 CNN 구성들은 ILSVRC-2012 (Krizhevsky et al., 2012)와 ILSVRC-2013 (Zeiler & Fergus, 2013; Sermanet et al., 2014)에서 가장 좋은 성능을 보였던 것과는 꽤 다르다.
첫 컨볼루션 레이어에서 상대적으로 큰 수용영역을 사용하는 것 대신(예: 11x1, 스트라이드 4(Krizhevsky et al., 2012) 또는 7x7, 스트라이드 2(Zeiler & Fergus, 2013; Sermanet et al., 2014)), 우리는 전체 네트워크에서 매우 작은 3x3 수용영역을 사용하며, 이는 모든 픽셀에서 입력과 컨볼루션 된다. (스트라이드 1)
두 개의 3x3 컨볼루션 레이어(사이에 풀링 없음)는 효율적인 5x5 수용영역을 가지고, 세 개의 이러한 레이어는 효율적인 7x7 수용영역을 가진다.
그래서 예를 들어, 7x7 레이어 하나 대신 3x3 컨볼루션 레이어 세 개를 쌓아서 사용하면 무엇을 얻을 수 있는가?
먼저, 우리는 한 개 대신 세 개의 비선형함수 레이어를 포함하며, 이는 결정 함수를 더 차별적으로 만든다.
두번째로, 파라미터의 수를 줄인다. 세 개의 3x3 컨볼루션 레이어 스택의 입력과 출력 둘 다 채널을 가진다고 가정하면, 스택은 개의 가중치로 파라미터화되며, 하나의 7x7 컨볼루션 레이어는 개의 파라미터들을 필요로한다. 즉, 81% 더 많이 필요로한다.
이것은 7x7 컨볼루션 필터에 규제를 거는 것으로 볼 수 있으며, 3x3 필터로 분해되게 강제한다. (사이에 비선형성이 주입된다.)
1x1 컨볼루션 레이어의 통합은 (구성 C, 표 1) 컨볼루션 레이어의 수용영역에 영향을 끼치지 않으며 결정 함수의 비선형성을 증가시키는 방법이다.
비록 우리 경우에는 1x1 컨볼루션이 본질적으로 동일한 차원의 공간으로의 선형 투영이지만(입력과 출력 채널의 수가 같음), 추가적인 비선형성은 정류 함수에 의해 도입된다.
이는 1x1 컨볼루션 레이어가 최근 Lin et al.(2014)의 "Network in Network" 아키텍쳐에서 활용되었다는 것은 주목되어야 한다.
작은 컨볼루션 필터는 이전부터 Ciresan et al. (2011)에서 사용되었지만, 그들의 네트워크는 훨씬 덜 깊었고, 매우 큰 ILSVRC 데이터셋에서 평가하지 않았다.
Goodfellow et al. (2014)에서 거리 숫자 인지 작업에 깊은 CNN을 (11개의 가중치 레이어) 적용했으며, 증가된 깊이는 더 나은 성능을 이끈다는 것을 보여줬다.
ILSVRC-2014 분류에서 최고의 성능을 보여준 GooLeNet (Szegedy et al., 2014)는 우리의 것과 독립적으로 개발되었지만, 매우 깊은 CNN(22개의 가중치 레이어)와 작은 컨볼루션 필터(3x3 외에도 1x1과 5x5 또한 사용함)에 기반한다는 것은 비슷하다.
그러나 그들의 네트워크는 우리의 것보다 더 복잡하고, 연산의 양을 줄이기 위해 특징 맵의 공간 해상도는 첫번째 레이어에서 더 공격적으로 줄어든다.
섹션 4.5에 서술되어 있으며, 우리의 모델은 단일 네트워크 분류 정확도에서 Szegedy et al. (2014)보다 더 좋은 성능을 보인다.
이전 섹션에서 우리는 우리의 네트워크의 구성들의 세부사항에 대해 서술했다.
이번 섹션에서는, 우리는 분류 CNN 학습과 평가의 세부사항에 대해 서술한다.
CNN 학습 절차는 일반적으로 Krizhevsky et al. (2012)를 따른다. (다양한 스케일의 학습 이미지로부터 입력을 추출하는 샘플링 작업을 제외한다. 이는 뒤에 설명되어 있다.)
즉, 학습은 모멘텀과 함께 mini-batch 경사하강법(역전파에 기반한 (LeCun et al., 1989)을 사용하여 다중 로지스틱 회귀 객체를 최적화하는 것으로 수행된다.
배치 크기는 256으로 설정되었으며, 모멘텀은 0.9로 설정되었다.
학습은 가중치 감소( 페널티는 로 설정되었다.)와 처음 두 개의 완전 연결층에서 드롭아웃 규제(드롭아웃은 0.5로 설정되었다.)로 규제되었다.
학습률은 처음에 로 설정되었고, 검증 세트 정확도가 향상되는 것을 멈췄을 때 10으로 나누었다.
전체적으로, 학습률은 3번 감소하였고, 학습 파라미터는 37만번의 반복(74 에포크) 이후에 멈췄다.
우리는 (Krizhevsky et al., 2012)에 비해 파라미터의 수가 더 많고 네트워크의 깊이가 더 깊음에도 불구하고 네트워크가 수렴하는 데 필요한 에포크 수가 더 적은 이유는 (a) 더 깊은 깊이와 더 작은 컨볼루션 필터 크기로 인한 암묵적인 규제, (b) 특정 레이어의 사전 초기화 때문이라고 추측한다.
네트워크 가중치의 초기화는 중요한데, 잘못된 초기화는 깊은 네트워크에서 경사의 불안정성때문에 학습을 멈출 수 있기 때문이다.
이 문제를 피하기 위해, 우리는 구성 A의 학습을 시작했으며, 이는 무작위한 초기화에서도 학습되기에 충분히 얕다.
더 깊은 아키텍쳐를 학습할 때는, 우리는 네트워크 A의 레이어와 함께 처음 네 개의 컨볼루션 레이어와 마지막 세 새의 완전 연결층을 초기화했다. (중간 레이어는 무작위로 초기화됨.)
우리는 사전 초기화된 레이어에서는 학습률을 감소시키지 않았으며, 이것들이 학습동안 바꾸도록 하였다.
무작위 초기화에서는(이에 해당하는), 우리는 평균 0, 분산 0.01인 정규분포에서 가중치를 샘플링하였다.
바이어스는 0으로 초기화되었다.
논문 제출 후 Glorot & Bengio (2010)의 무작위 초기화 절차를 사용하는 것으로 사전 학습 없이 가중치를 초기화 할 수 있다는 것을 알게되었다는 것은 주목할만 하다.
고정된 크디의 224x22x CNN 입력 이미지를 얻기 위해 그들은 리스케일된 학습 이미지에서 무작위로 추출했다. (SGD 반복마다 하나의 이미지 추출)
학습 세트를 증강시키기 위해, 추출은 무작위 좌우 반전과 무작위 RGB 색상 이동을 거쳤다.
학습 이미지는 스케일링은 아래에 설명되어있다.
를 리샘플링된 학습 이미지의 가장 짧은 변이라고 두고, 여기서 CNN 입력이 추출된다. (우리는 또한 를 학습 스케일이라고 부른다.)
추출된 이미지의 크기가 224x224로 고정된 반면에, 원칙적으로 는 224보다 작지 않은 어떤 값이든 가질 수 있으며, 인 경우 추출은 학습 이미지의 가장 짧은 변을 완전히 포함하여 전체 이미지 객체를 포착할 것이고, 인 경우 추출은 작은 객체 또는 객체의 일부를 포함하는 이미지의 작은 부분에 해당할 것이다.
우리는 학습 스케일 의 설정을 위해 두가지 접근을 고려한다.
첫번째 방법은 를 고정하는 것이며, 이는 single-scale training에 해당한다. (추출된 이미지 안에는 여전히 다양한 크기의 객체가 포함될 수 있다는 것에 주목해라)
우리의 실험에서는 두가지 고정된 스케일로 모델을 평가했으며, 하나는 이고 (이는 기존방법 (Krizhevsky et al., 2012; Zeiler & Fergus, 2013; Sermanet et al., 2014)에서 널리 사용되었다.), 다른 하나는 이다.
주어진 CNN 구성에서 우리는 처음엔 으로 네트워크를 학습시켰다.
네트워크의 학습 속도를 높이기 위해, 으로 사전 학습된 가중치로 초기화되었으며, 초기 학습률을 으로 더 작게 설정했다.
를 설정하는 두번째 방법은 multi-scale training이며, 이는 특정 범위 에서 를 무작위로 샘플링하여 각 학습 이미지를 독립적으로 리스케일하는 것이다. (우리는 , 를 사용하였다.)
이미지 속 객체는 크기가 다를 수 있기 때문에, 이는 학습 과정에서 이것을 고려하는 것이 유익하다.
이것은 scale jittering에 의한 학습 데이터 증강으로 볼 수도 있으며, 이는 하나의 모델이 매우 다양한 크기의 객체들을 인식하도록 학습된다.
속도의 이유로, 고정된 로 사전 학습된 single-scale 모델의 모든 레이어를 같은 구성으로 미세 조정하는 것으로 multi-scale 모델을 학습시켰다.
테스트 시에는, 학습된 CNN과 입력 이미지가 주어지면, 다음과 같이 분류한다.
먼저, 사전에 정의된 가장 짧은 이미지의 변의 길이 가 되도록 비율을 유지하여 리스케일한다. (우리는 이것을 테스트 스케일 이라고 부른다.)
우리는 가 학습 스케일 와 반드시 같을 필요가 없다는 것에 주목했다. (우리는 섹션 4에서 성능 향상을 위해 각각의 에 몇몇의 값을 사용한 것을 보여줄 것이다.
그 다음, (Sermanet et al., 2014)과 비슷한 방법으로 리스케일된 테스트 이미지에 네트워크를 빽빽하게 적용한다.
즉, 완전 연결층은 컨볼루션 레이어로 변환된다. (첫 완전 연결층은 7x7 컨볼루션 레이어로, 마지막 두 개의 완전 연결층은 1x1 컨볼루션 레이어가 된다.)
최종 fully-convolutional 네트워크는 전체 (추출되지 않은) 이미지에 적용된다.
결과적으로 클래스 점수 맵이 생성되며, 채널 수는 클래스 수와 같고, 해상도는 입력 이미지 크기에 따라 달라진다.
마지막으로, 이미지 클래스 점수의 고정된 벡터를 얻기 위해 클래스 점수 맵은 공간적으로 평균화된다.(sum-pooled 된다)
우리는 또한 이미지 좌우반전으로 테스트 세트를 증강시켰고, 이미지의 최종 점수를 얻기 위해 원본과 반전된 이미지의 소프트 맥스 클래스 값을 평균화한다.
fully-convolutional 네트워크는 이미지 전체에 적용되므로, 테스트 시에는 여러 개의 crop을 샘플링할 필요가 없으며, 이는 각각의 재연산해야하기 때문에 비효율적이다.
한편, 방대한 crop 셋을 사용하는 것은 Szegedy et al.에 의해 수행되었으며, 이는 정확도 향상을 이끌 수 있고 이것은 fully-convolutional 방식보다 입력 이미지를 더 촘촘하게 샘플링한다.
또한 다중 crop 평가는 다른 컨볼루션 경계 상태 때문에 밀집 평과 방식돠 보완적인데, 이는 crop에 컨볼루션 레이어를 적용할 시킬 때 계산된 특징 맵은 0으로 패딩되는 반면, 밀집 평가의 경우엔 같은 crop에 대해 이미지의 자연적으로 오는 이웃한 부분으로 패딩된다.(컨볼루션 연산과 부분 풀링때문에) 이는 대체로 전체 네트워크의 수용 영역을 증가시키므로 더 많은 맥락을 포착할 수 있다.
우리가 여러 개의 crop들에 따른 증가된 연산 시간 실행은 정확도의 잠재적인 이익을 정당화하지 않는다고 믿지 않지만, 참고로 우리는 또한 스케일 별로 50개의 crop(5x5 그리드와 2개의 반전)을 사용하여 우리의 네트워크를 평가했으며, 이는 총 150개의 crop을 3개의 스케일에 걸쳐 사용한 것으로 Szegedy et al(2014)에서 사용한 144 crop을 4개의 스케일에 걸쳐 사용한 것과 유사하다.
우리의 구현은 공적으로 사용가능한 C++ Caffe toolbox로부터 파생되었으나, 이는 우리가 하나의 시스템에 설치된 여러 개의 GPU에서 학습과 평가를 수행할 수 있도록하고 전체 크기의 이미지(추출되지 않으)를 다양한 스케일로 학습과 평가할 수 있도록하는 몇몇 개의 주요한 수정이 포함되어 있다.(위에 설명된 것과 같이)
여러 개의 GPU 학습은 데이터 병렬화를 말하며, 각각의 GPU에서 병렬로 처리된 학습 이미지의 각 배치를 여러 개의 GPU 배치로 나누는 것으로 수행된다.
GPU 배치 그레디언트가 연산된 후에, 이들은 전체 배치의 그레디언트를 얻기 위해 평균화된다.
그레디언트 연산은 GPU들에 걸쳐 동기화되며, 따라서 결과는 하나의 GPU에서 연산될 때와 정확하게 같다.
최근 컨볼루션 네트워크 학습을 가속화하는 더 정교한 방법이 제안되었는데, 이는 네트워크의 다른 레이어에 대해 모델과 데이터 병렬화를 사용한다.
또한 우리는 우리의 개념적으로 더 간단한 방법이 하나의 GPU만을 사용했을 때와 비교하였을 때 off-the-shelf 4-GPU 시스템이 3.75배 가속을 이미 제공한다는 것을 알아냈다.
4개의 NVIDIA Titan Black GPU가 장비된 시스템은 아키텍쳐에 의존하여 하나의 네트워크를 학습시키는 데에 2-3주가 걸렸다.
이번 섹션에선, 우리는 ILSVRC-2012 데이터셋(ILSVRC 2012-2014 challenge에서 사용된)에서 설명한 CNN 아키텍쳐가 달성한 이미지 분류 결과를 서술한다.
데이터 셋은 1000개의 클래스의 이미지를 포함하고 3개의 세트로 분리되어 있으며, 이는 학습세트(1.3백만 이미지), 검증 세트 (5만 이미지), 테스트 세트 (10만 이미지)로 이루어져있다.
분류 성능은 두개의 측정법을 사용하여 평가되었으며, 이는 top-1, top-5 오류이다.
전자는 다중 클래스 분류 오류, 즉 장못 분류된 이미지의 비율이며, 후자는 ILSVRC에서 사용되는 주요 평가 방법으로, 실제 카테고리가 예측된 top-5 카테고리에 포함되지 않는 이미지의 비율로 계산된다.
다수의 실험을 위해, 우리는 검증 세트를 테스트 세트로서 사용했다.
특정 실험은 테스트 세트에서 수행되었고, ILSVRC-2014 경진대회에서 "VGG" 팀으로 공식 ILSVRC 서버에 제출되었다.
우리는 단일 스케일로 섹션 2.2의 레이어 설정이 사용된 각각의 CNN 모델의 성능 평가를 시작했다.
테스트 이미지 크기는 다음을 따른다: 고정된 는 이고, 변동되는 는 이다.
결과는 표 3에서 볼 수 있다.
먼저, 우리는 정규화 레이어가 없는 모델 A에서 local response normalization (A-LRN 네트워크)를 사용하는 것은 향상시키지 않는다는 것을 알아냈다.
우리는 또한 깊은 아키텍쳐 (B-E)에서도 정규화를 사용하지 않았다.
두번째로, 우리는 증가하는 CNN 깊이(A의 11개 레이어부터 E의 19개 레이어까지)에서 분류 오류가 감소한다는 것을 관찰했다.
특히, 같은 깊이임에도 불구하고, 설정 C(3개의 1x1 컨볼루션 레이어를 포함하는)는 3x3 컨볼루션 레이어를 사용하는 설정 D보다 나쁜 결과를 보여주었다.
이는 추가적인 비선형성이 도움을 주는 반면에(B보다 C에서 더), 이는 또한 사소하지 않은 수용 영역을 가진 컨볼루션 필터를 사용함으로써(C보다 D에서 더) 공간적인 맥락을 포착하는 데에 중요하다.
우리의 아키텍쳐의 오류율은 깊이가 19 레이어에 도달했을 때 포화하지만, 더 깊은 모델은 아마 방대한 데이터셋에서 이득일 것이다.
우리는 또한 네트워크 B를 5x5 컨볼루션 레이어를 가진 얕은 네트워크와 비교했으며, 이는 각 쌍의 3x3 컨볼루션 레이어를 하나의 5x5 컨볼루션 레이어로 대체하는 것으로 B로부터 파생되었다. (이는 섹션 2.3에서 설명한 것과 같이 같은 수용 영역을 가진다.)
얕은 네트워크의 top-1 오류는 B보다 (center crop에서) 7% 더 높게 측정되었으며, 이는 작은 필터를 가진 깊은 네트워크가 큰 필터를 가진 얕은 네트워크를 능가한다는 것을 보여준다.
마지막으로, 학습 시에 스케일 jittering()은 테스트 시에 고정된 가장 짧은 변으로 ( 단일 스케일이 사용되더라도 훨씬 나은 결과를 이끈다.
이는 스케일 jittering을 통한 학습 세트 증강이 다중 스케일 이미지 통계를 포착하는 데에 필수적으로 도움을 준다는 것이 확인된다.
단일 스케일에서 CNN 모델을 평가한 이후에, 우리는 이제 테스트 시 스케일 jittering의 효과를 평가한다.
이는 테스트 이미지의 여러가지 재스케일링된 버전(다른 값에 해당)에서 모델을 실행한 후, 결과로 나온 클래스 사후 확률을 평균내는 것으로 구성된다.
학습과 테스트 스케일의 큰 차이가 성능 저하를 이끈다는 것을 고려하여, 고정된 로 학습된 모델은 학습 때와 비슷한 세가지 테스트 이미지 크기에서 평가되었다.:
이때 학습 시 스케일 jittering은 테스트 시에 더 넓은 범위의 스케일에 네트워크가 적응하도록 하며, 로 학습된 모델은 더 넓은 크기 로 평가되었다.
결과는, 표 4에 제시된 것과 같이, 테스트 시 스케일 jittering이 더 나은 성능을 이끈다는 것을 말한다. (표 3에 제시된 단일 스케일로 같은 모델을 평가한 것과 비교)
이전에, 가장 깊은 구성(D와 E)이 가장 좋은 성능을 보였으며, 스케일 jittering은 가장 짧은 변에 고정된 로 학습했을 때보다 더 나은 성능을 보였다.
검증 세트에서의 우리의 가장 좋은 단일 네트워크 성능은 24.8%/7.5%의 top-1/top-5 오류율이다.
테스트 세트에서는, 구성 E가 7.3%의 top-5 오류율을 달성했다.
표 5에서 우리는 밀집 CNN 평가와 다중 crop 평가를 비교했다.
우리는 또한 이들의 소프트맥스 출력을 평균내는 것으로 두 가지 평가 기술의 상호보완성을 평가했다.
보이는 것과 같이, 다중 crop을 사용하는 것이 밀집 평가보다 약간 더 나은 성능을 보였으며, 그것들의 결합이 각각의 방법을 능가한 것에 따라 두 방법은 상호보완적이다.
위에서 언급한 것과 같이, 우리는 이것이 컨볼루션 경계 조건에 대한 서로 다른 처리 방식 때문이라고 가정한다.
위에서부터 지금까지, 우리는 각각의 CNN 모델들의 성능을 평가했다.
이번 실험에선, 우리는 이들의 소프트맥스 사후 확률을 평균내는 것으로 여러가지 모델의 출력을 결합한다.
이것은 모델들의 상호보완성때문에 성능이 향상되었으며, 2012, 2013년에 상위 ILSVRC 제출로 사용되었다.
결과는 표 6에 제시되어 있다.
ILSVRC 제출 당시에는 단일 스케일 네트워크와 다중 스케일 모델 D(모든 레이어가 아닌 완전 연결층만 미세조정)만 학습시킨 상태였다.
7개의 네트워크를 앙상블한 결과는 7.3%의 ILSVRC 테스트 오류율이다.
제출 후에, 우리는 두 개의 가장 좋은 성능을 보인 다중 스케일 모델들(구성 D와 E)의 앙상블을 고려했으며, 이는 밀집 평가를 사용했을 때 7.0%의 테스트 오류율로 감소시켰고 밀집 평가와 다중 crop 평가 방식을 결합하여 사용했을 때 6.8%까지 감소시켰다.
참고로, 우리의 가장 좋은 단일 모델은 7.1% 오류율을 달성했다.(모델 E, 표 5)
마침내, 표 7에서 우리는 우리의 결과를 이전 방법들과 비교한다.
ILSVRC-2014 challenge의 분류 작업에서 우리 "VGG"팀은 7개 모델 앙상블을 사용하여 7.3%의 테스트 오류율로 2등을 달성했다.
제출 후에, 우리는 2개 모델 앙상블을 사용하여 오류율을 6.8%로 감소시켰다.
표 7에서 제시된 것과 같이, 우리의 매우 깊은 CNN은 이전 세대의 모델들을 능가했으며, 이는 ILSVRC-2012와 ILSVRC-2013 경진대회에서 최고의 결과를 달성했다.
우리의 결과는 분류 작업 우승 결과(GooLeNet, 6.7% 오류율)와 비교해도 경쟁력 있으며, ILSVRC-2013 우승 결과인 Clarifai를 상당히 능가하는 성능으로, Clarifai는 외부 훈련 데이터를 사용했을 때 11.2%, 사용하지 않았을 때는 11.7%의 성능을 보였다.
단지 두 개의 모델을 결합하는 것으로 대부분의 ILSVRC 결과보다 주요하게 작은 최고의 결과를 달성했다는 것을 고려하면 이는 주목할만하다.
단일 네트워크 측면에서 우리의 아키텍쳐는 단일 GooLeNet을 0.9%로 능가하면서 최고의 결과를 달성했다.
특히, 우리는 클래식한 CNN 아키텍쳐 LeCun er al. (1989)에서 출발하지 않았으며, 그러나 대체적으로 깊이를 증가시키는 것으로 이를 향상시켰다.
우리는 큰 규모의 이미지 분류에서 매우 깊은 컨볼루션 네트워크(19개의 가중치 레이어까지) 평가했다.
이는 분류 정확도에서 깊이가 이득이라는 것이 증명되었으며, Imagenet challenge 데이터셋에서의 이전 방법의 성능은 대체적으로 증가된 깊이의 컨볼루션 CNN 아키텍쳐를 사용하는 것으로 달성될 수 있다는 것도 증명되었다.
부록에는, 우리는 또한 넓은 범위의 작업과 데이터셋에 우리의 모델이 잘 일반화한다는 것을 보여주며, 이는 덜 깊은 이미지 표현에서 만들어진 더 복잡한 인지 파이프라인에 잘 맞고 능가한다는 것을 보여준다.
우리의 연구 결과는 시각적 표현에서 깊이의 중요성을 다시 한번 확인시켜 준다.