[논문 리뷰] VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION

논문의 전문은 여기에서 확인할 수 있다.


0. Abstract

이 연구는 대규모 이미지 분류 task에서 CNN의 depth가 정확도에 미치는 영향을 조사한다.

이 논문을 발표한 Oxford 연구 팀은 매우 작은 convolution filter (3 x 3)을 이용하여 depth를 깊게하여 ImageNet Challenge 2014에서 1위와 2위를 차지하였다. 또한 이 모델은 ImageNet datatsets뿐 아니라 다른 데이터셋에서도 SOTA의 성능을 달성하는 우수한 성능을 보인다.


1. Introduction

CNN은 다양한 기술 발전에 의해 대규모 이미지, 비디오 인식에서 큰 성공을 거두었다. 특히 ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)가 다양한 이미지 인식 모델을 검증하는 시험대가 됨으로써 기술 발전의 원동력이 되었다.

CNN이 CV에서 활발하게 사용됨으로써 기존 모델보다 정확도 향상을 위해 많은 시도들이 있어 왔다. 예를 들어, smaller receptive window size와 smaller stride 를 사용하는 것과, 다양한 scales 에서 training과 testing을 진행하는 것이 그 예이다. 이 논문에서는 “depth”를 깊게하여 그 정확도를 높이는 연구를 진행한다.

결론적으로 CNN의 depth를 증가시킴으로써 ILSVRC에서 SOTA 정확도를 얻었을 뿐 아니라, 다른 이미지 인식 데이터 셋에서도 일반적으로 좋은 성능을 거둘 수 있음을 확인하였다.


2. ConvNet Configurations

Oxford 팀은 연구의 정확성을 위해 depth만을 변인으로 놓고, 나머지 모든 설정은 동일하게 유지하였다.

모델의 기본적인 소개를 2.1절, 구체적인 설명은 2.2절, 다른 연구와 차별점은 2.3절에서 소개하고 있다.

2.1 Architecture

모델의 아키텍쳐는 아래 그림과 같다.

Imgur

학습되는 동안에 모델은 224 x 224 x 3 크기의 이미지를 input으로 받는다. 이 input은 매우 작은 3x3 receptive field를 가진 CNN layer를 통과하고, pooling layer를 거친다. 또 1 x 1 receptive field를 가진 모델도 실험에 고안되었는데, 이는 input channel의 선형 변환이라 생각할 수 있다.

CNN layer를 통과한 후에는 3개의 Fully-Connected(FC) layer를 통과한다. 이 FC 구성은 모든 모델이 동일하다.

모든 은닉층은 활성화 함수로 ReLU 함수를 사용하고 있으며, Local Response Normalisation(LRN)은 ILSVRC 데이터셋에서 효과가 없음으로 하나의 모델에서만 사용하였다.

2.2 Configurations

모델 구성은 아래 표와 같다.

image

A~E 모델이 설정되었는데, 이는 “depth”만 차이를 둔 모델이고, 11개의 layer인 A부터 시작하여 19개의 layer를 가진 E순으로 점점 더 층이 깊어지는 모델이다. CNN layer의 parmeter는 “conv receptive field size-number of channels”로 기술되어 있다. 예를 들어, conv3-512는 3x3 receptive field를 가지며 512 channels를 가진 CNN layer를 나타낸다. channels은 max pooling layer를 지날때마다 2배씩 크게 설계하였다.

image

위 표는 parameter의 개수를 나타내는데, 더 깊은 layer를 가짐에도 불구하고 더 큰 CNN layer와 recptive fields를 가진 다른 모델의 parameter(144M) 보다 크기 않다는 것을 나타냄으로써 경제성이 있는 모델임을 보이고 있다.

2.3 Discussion

Oxford는 매우 작은 3 x 3 receptive field를 모든 계층에 사용함으로써 높은 성능을 내었다.

아래의 사진을 보며 receptive field를 살펴보자

image

Layer 2의 receptive fields는 5 x 5 크기를 가지고, Layer 3의 receptive fields는 7 x 7 크기를 가지는 것을 알 수 있다.

3 x 3 receptive fields Layer 3개를 도입하여 최종 receptive field는 7 x 7 크기를 가짐을 확인할 수 있는데,

그냥 7 x 7 recptive fields Layer 1개를 쓰는 것과 차이점이 있을까?

이 논문에서는 2가지 효과를 제시하며 3개의 Layer로 분해하는 것이 효과가 있다고 설명한다.

  1. decision function을 더 강력하게 한다.
  2. parameter 개수를 감소시킨다.

예를 들어, 3 x 3 CNN 3계층이 C 채널 수를 가지고 있다 가정하자. 그러면 총 parameter 개수는 3(3c)^2=27c^2 이다.

반면, 7 x 7 CNN 1계층은 동일 채널 수를 가정할 경우, 1(7c)^2=49c^2으로 위보다 81%나 많은 parameter를 가진다.

또한 1 x 1 CNN는 단순 선형 변환을 시키는 것 이외에 ReLU 함수의 비선형성을 증가시킬 수 있음을 알 수 있다.


3. Classification Framework

CNN의 분류 task에서의 training, evaluation에 대해 자세히 살펴본다.

3.1 Training

CNN training은 momentum 기반의 경사하강법을 이용한 다항 로지스틱 회귀를 최적화하는 방식으로 이루어졌다.

기존 방식보다 더 많은 parameters와 depth를 가짐에서 불구하고 적은 epoch에서 수렴하는 것으로 생각될 수 있는데 이는 아래와 같은 근거에 기반한다.

  1. 더 깊은 depth와 더 작은 cnn filters size에 의한 정규화
  2. 특정 layer의 사전 초기화

Training image size

S를 이미지 작은 쪽의 길이라 하자. S의 길이를 조정하는 두 가지 방식이 존재한다.

  1. S를 고정하는 방식, S=256, S=384로 설정하였다.
  2. S를 다양하게 변화시키는 방식, [Smin,Smax] 사이의 값중 random하게 설정한다.

3.2 Testing

Q는 이미지 작은 쪽의 길이이다. 이 Testing Image의 작은 쪽 길이를 나타내는 Q는 Training Image의 작은 쪽 길이를 나타내는 S과 같을 필요는 없다.

FC layer를 CNN layer로 바꾼다. 이러한 CNN layers를 거친 후 만들어진 score map을 pooling 하여 고정 크기의 벡터를 얻는다.

또한 test set을 다양하기 위해서 이미지를 수평 반전시킨 작업을 수행하였다.

3.3 Implementation Details

Oxford 팀은 C++ caffe toolbox에 수정사항을 가하여 GPU 병렬화를 이용하여 training time을 감소시켰으며, 2~3주 소요되었다고 한다.


4. Classification Experinments

Datasets

Datasets은 ILSVRC datasets을 이용한다. 이는 training set, validation set, testing set로 나뉜다.

성능 측정은 top-1 error와 top-5 error로 측정하는데, top-n error는 모델이 예측한 상위 n 개 class 중 해당 클래스가 포함되지 않은 비율을 나타낸다.

Oxford 팀은 validation set을 testing set과 같이 취급하여 실험을 진행하였고, VGG 라는 이름으로 대회에 제출하였다.

4.1 Single Scale Evaluation

4.2 Multi-Scale Evalution

4.3 Multi-Crop Evaluation

4.4 ConvNet Fusion

4.5 Comparison with the state of the art

Categories:

Updated:

Leave a comment