반응형

논문 : Rethinking the Inception Architecture for Computer Vision 2016

 

suitably factorized convolutions 와 aggressive regularization

scaling up convolution networks in efficient ways

factorizing convolution

dimension reduction

batch-normalized auxiliary classifiers and label-smoothing

 

Abstract

Convolutional networks는 다양한 분야에서 state-of-the-art성능을 가진  computer vision 솔루션이다. 2014부터  deep convolutional networks 은 주류화되기 시작하여 , 다양한  benchmarks에서 상당한 이득을 얻었다 . model size 와 computational cost 증가하면 most tasks에 대한 즉각적인 성능 품질 향상 으로 이루어지는 경향이 있지만 (레이블링된 데이터가 학습을 위해 충분히 제공되는 한) , computational efficiency 와 low parameter count 는 여전히 mobile vision  및 big-data scenarios 와 같은 다양한 사용 사례에 대한 요소를 가능하게 한다. 여기서 우리는 suitably factorized convolutions 와 aggressive regularization 를 통해 추가된 계산을 최대한 효율적으로 활용하는 것을 목표로 네트워크를 확장하는 방법을 탐색하고 있다. 우리는 ILSVRC 2012 classification challenge validation set에 테스트 하여  state of the art 기법에 대해 상당한 이득을 입증한다. inference 당   computational cost이 less than 25 million parameters 5 billion multiply-adds인 네트워크를 가지고 테스트 한 결과는 다음과 같다. 

single frame evaluation  21.2% top-1 and 5.6% top-5 error  

4 models와 multi-crop evaluation로 구성된 앙상블을 통해 3.5% top-5 error and 17.3% top-1 error 를 보고한다. 

 

1. Introduction

2012년 “AlexNet” 성공한 이후 다양안 큰 컴퓨터 비전 작업이 적응되였다. 예를 들면 : object-detection [5], segmentation [12], human pose estimation [22], video classification [8], object tracking [23], and superresolution [3].

이것을 성공으로 인하여  convolutional neural networks를 찾는데 집중하였다.  2014년 이후로는  ,더  깊고 넓어진 네network architectures  를 활용하여 network architectures 의 성능이 크게 향상됬다 . VGGNet [18] and GoogLeNet [20] 2014 ILSVRC [16] classification challenge 에서 비슷하게 높은 성능을 가졌다. 한가지  흥미로운 관찰은 분류 성능을 얻기 위해서 다양한 응용 분야에서 상당한 품질 향상으로 이동하는 경향이 있다는 것이다. => application domains . 이는 deep convolutional architecture 의 구조적 개선이 high quality의 학습된 visual features에 점점 더 의존하는 대부분의 다른 컴퓨터 비전 작업에 대한 성능 향상에 활용될 수 있음을 의미한다.  또한, network quality 의 품질의 개선은 AlexNet  기능이 검출에서의 제안 생성과 같이 hand engineered, crafted solutions ( e.g. proposal generation in detection[4])과 경쟁할 수 없는 경우에 컨볼루션 네트워크를 위한 새로운 애플리케이션 도메인으로 이어졌다. 

VGGNet[18]은 architectural simplicity이라는 매력적인  특징을 가지고 있지만, 네트워크를 평가하는데 많은 계산이 필요하다. 반면에  , Inception아키텍츠의 GoogLeNet [20]의 Inception architecture는 메모리와 계산 예산에 대한 엄격한 제약 속에서도 잘 작동하도록 설계되었다.예를 들면 :

GoogleNet 5 million parameters 변수만을 사용했는데 

AlexNet은 약 60 million parameters 

VGGNet은 AlexNet의 3배이고 

GoogleNetAlexNet 보다 12배 적게 

Inception 의 computational cost은 또한 VGGNet나 혹은 보다 좋은 성능의 후속 네트워크들보다 훨씬 적다. 이로 인해 모바일과 같이 memory나 computational capacity가 제한된 환경에서  합리적인 비용으로 처리해야 하는 big-data scenarios[17], [13], 를 다루는 경우에 inception network를 활용할 수 있다. 물론, memory use [2], [15] 에 특화된 솔루션을 적용하거나 , computational tricks [10]으로  통해 특정 작업의 실행을 최적화함으로써 이러한 문제의 일부를 완화할 수 있다. 그러나 이러한 방법은 복잡성을 가중시키고 더욱이 이러한 방법들은 Inception architecture를 최적화 하는  데도 적용되어 효율성 격차를 다시 확대할 것이다. 

그럼에도 불구하고, Inception architecture의 복잡성은 network을 더욱 어렵게 만든다. architecture 가 순수하게 확장되는 경우, 계산 이득의 많은 부분이 즉시 손실될 수 있다. 또한,  [20] Google Net architecture은 다양한 design decisions 으로 이어지는 contributing factors에 대해 명확하게 설명하지 않았다. 이 것 때문에  효율성을 유지하면서 새로운 use-cases 적응하기가 훨씬 어려워진다. 예들 들어 일부 Inception-style model의 용량을 증가시킬 필요가 있다고 판단되는 경우, 모든 filter bank 크기의 수를 두 배로 늘리는 간단한 변환은 계산 비용과 매개변수 수 모두에서 4배 증가를 초래할 것이다. (filter back 2배 늘어나면 계산 비용과 매개변수 수  4배 ). 이는 특히 관련 이득이 크지 않은 경우, 많은 실제 시나리오에서 금지적이거나 비합리적인 (prohibitive or unreasonable)것으로 판명될 수 있다. => 불합리 본 논문에서는 convolution networks를 효율적으로 장하는 데 유용한 것으로 입증된 몇 가지 일반적인 원칙과 최적화 아이디어를 설명하는 것으로 시작한다. 우리의 원칙은  Inception-type networks에 국한하지 않지만, Inception style building blocks의 일반적인 구조는 그러한 제약 조건을 자연스럽게 통합할 수 있을 만큼 충분히 유연하기 때문에 그러한 맥락에서 관찰하기가 더 쉽다. 이는 인근 구성 요소에 대한 구조 변경의 영향을 완화할 수 있는 Inception module의 dimensional reduction 및 parallel structures를 관대하게 사용함으로써 가능하다. 그러나 모델의 높은 품질을 유지하기 위해서는 몇 가지 지침 원칙이 지켜져야 하기 때문에 그렇게 하는 데 신중할 필요가 있다.

 

2. General Design Principles

여기서 우리는 convolutional networks를 사용하여 다양한 architectural  선택 을 가진 대규모 실험 기반으로 하는 몇가지 설계 원리를  소계할 것이다. 이 시점에서는 , 아래 원칙들의 효용성은 추측적이며,  정확성과 유효성의 영역을 평가하기 위해 추가적인 실험 증거가 필요할 것이다.  그럼에도 불구하고, 이러한 원칙들로부터의 중대한 편차는 네트워크의 품질 저하를 초래하는 경향이 있으며, 그러한 편차가 감지된 상황을 수정하는 것은 일반적으로 architectures 개선을 초래하였다.

1. 특히 초기에 병목현상을 피하십시오. Feed-forward networks 는  input layer(s)에서 classifier or regressor간의  acyclic graph 표시 할 수 있다. 이는 명확하게 정보 흐름의 방향을 정의한다. inputs from the outputs을 구분하는 컷의 경우 컷을 통과하는 정보의 양에 액세스할 수있다. 극단적인 압축으로 인한 병목현상을 피해야 한다. 일반적으로 representation size는 used for the task at hand final representation 에 도달하기 전에 입력에서 출력으로 서서히 감소해야 한다. 이론적으로, 정보 내용은 상관 구조와 같은 중요한 요소를 무시하기 때문에 dimensionality of the representation 으로만 평가될 수 없다.

2. Higher dimensional representations 은 네트워크에서 local로 처리하기 더 쉽다. convolutional network 에서

per tile activations 을 늘리면  더 많은 disentangled features를 사용할 수 있다. 결과적으로 으로는 네트워크 학습이 더 빨리 될 것이다. 

3. Spatial aggregation는 표현력의 힘은 손실 없이 lower dimensional  임베딩을 통해 수행 할 수 있다. 예를 들어 , spread out (e.g. 3 × 3) convolution 을 수행하기 전에 ,  심각한 부작용없이  input representation의 dimension reduce 이 가능하므로 , spatial aggregation을 할 수 있다. 우리는 그 이유가 인접한 단위 결과 간의 강한 상관관계과 spatial aggregation context에서 출력을 사용하는 경우 dimension reduction 동안 정보의 손실을 훨씬 줄이기 때문이라고 가정한다. 이러한 신호가 쉽게 압축될 수 있어야 한다는 점을 고려하면, 차원 축소는 더 빠른 학습을 촉진한다.

4. network의 width and depth의 Balance 를 유지한다. per stage 별 filters 수와 network의 depth 의 균형을 유지함으로써 네트워크의 Optimal performance에 도달할 수 있다. network의 width and depth를 늘리면 더 높은 품질의 네트워크에 기여할 수 있다. 그러나 둘 다 병렬로 증가하면 일정한 양의 계산에 대한 최적의 개선에 도달할 수 있다. 따라서 computational budgetnetwork의 width and depth 사이에 균형 잡힌 방식으로 배분되어야 한다.

이러한 원칙이 타당할 수 있지만, 즉시 네트워크의 품질을 개선하기 위해 사용하는 것은 간단하지 않다. 애매한 상황에서만 현명하게 활용하자는 의미이다. 

3. Factorizing Convolutions with Large Filter Size

GoogLeNet network [20]의 원래 이득의 대부분은 차원축소를 매우 풍부하게 사용함으로써 발생한 것이다. 이것은  계산적으로의 factorizing convolutions 하는 특별한 경우로 볼수 있다. 예를 들어 1 × 1 convolutional layer 의 경우를 1x1 conv layer 다음에 3x3 conv layer가 오는 경우를 고려해보자 . vision network에서  near-by activations 의 출력은 상관관계가 높다는 것으로 예상된다.  따라서 우리는 그들의 집계전에 활성화를 줄일 수 있으며, 이는  유사한 지역 표현을 가지는 것으로 볼 수 있다. 

여기서는 특히 solution의 computational efficiency을 높이기 위해, 다양한 설정에서 convolutions 을 factorizing 하는 방법을 살펴본다. Inception networks 는 fully convolutional이기 때문에, 각 weight는 활성화당 하나의 곱셈에 해당한다. 따라서 computational cost 의 감소는 parameters의 number 를 감소한다. 이것은 적절한 factorization로 인해 더 많은 disentangled parameters 를 가질수 있고  따라서 더 빠른 훈련으로 끝날 수 있다는 것을 의미한다.  또한 computational and memory savings을 사용하여 network 의 filter-bank sizes를 늘리는 동시에 single computer에서 각 모델 복제본을 학습할 수 있는 능력을 유지할 수 있다. 

3.1. Factorization into smaller convolutions

더 큰 spatial filters (e.g. 5 × 5 or 7 × 7) 을 사용한  Convolutions 은 computation측면에서 disproportionally expensive경향이 있다. 예를 들어 , m개의 필터가 있는 그리드 위에 n개의 필터가 있는 5 × 5 convolution 은 동일한 filter 수가 3 × 3 convolution 에 비해 비용이 25/9 = 2.78배 더 비싸다.  ((5 × 5)/ (3 x 3) = 25 / 9물론 5 × 5 filter 는 earlier layers에서 멀리 떨어진 장치의 활성화 사이의 신호 간 의존성을 포착할 수 있으므로 필터의 geometric size를 줄이는 것은 표현력의 큰 비용을 지불하게 된다. 하지만 , 우리는 여기서 5 × 5 convolution는 input size and output depth가 동일한 parameters 를 적게 가진 multi-layer network로 대체될 수 있는지 물어볼 수 있느냐.  5 × 5 convolution의 computation graph를 확대하면, 각 출력은 입력 위로 5 × 5 tiles  위로  sliding 는 작은 fully-connected network처럼 보인다. vision network를 구축하기 때문에, translation invariance 을 다시 활용하고 fully connected 된 구성요소를 two layer convolutional architecture로 대체하는 것이 자연스러운 것으로 보인다. 

첫번째 레이어 : 3 × 3 convolution

두번째 레이어 : first layer 3 × 3 output grid 위에 fully connected layer  (see Figure 1). 

input activation grid위로 이 작은 network 를 Sliding 하는 것은 5 × 5 convolution을 2개의 3 × 3 convolution (compare Figure 4 with 5) 대체하는 것으로 요약된다 .

이 설정은 adjacent tiles에 weights 를 공유하여 parameter수를 명확하게 줄인다. 예상되는 computational cost savings 을 분석하기 위해 , 우리는 일반적인 상황에 적용되는 몇 가지 단순화된 가정을 할 것이다.  우리는 n = αm, 즉 일정한 알파 인자에 의해  활성화/단위의 수를 변경하고자 한다고 가정할 수 있다. 5 × 5 layer

에 대한 두 개의 레이어 교체가 있기 때문에, 두 단계 모두에서 필터 수를 √ α 만큼 증가시키는 두 단계로 이 확장에 도달하는 것이 타당해 보인다. (2-layer의 경우, 각 단계에서 filter 수를 만큼 증가시키는 방법을 취할 수 있다.) 만약 추정치를 단순화하기 위해α = 1 (no expansion), neighboring grid tiles사이의 computation 을 재사용하지 않고 network 를 단순히 slide 한다면, computational cost가 증가시킬 것이다. 이 network 를 sliding 하는 것은 adjacent tiles사이의 activations 를 재사용하는 two 3×3 convolutional layers로 나타낼 수 있다. 이러한 방식으로, 우리는 순 (9+9)/25 × 계산의 감소로 끝나게 되고, 이 인수 분해에 의해 28%의 상대적 이득을 얻는다. 각 parameter 가 각 unit의 activation  계산에 정확히 한 번 사용되므로 파라미터 카운트에 대해 정확히 동일한 저장이 유지된다. 그러나 이 설정에서는 다음과 같은 두 가지 일반적인 문제가 발생한다. 

1. replacement 으로 부터 expressiveness이 손실되는가 ?

2. 우리의 주요 목표가 계산의 linear part을 factorize 하는 것이라면, first layer에서 linear activations를 유지해야 하는가 ?

우리는 여러가지 control experiments(for example see figure 2)을 수행했으며 linear activation 를 사용하는 것은 , factorization의 모든 단계에서 rectified linear units를 사용하는 것보다 좋지 않았다.

저자들은 이러한 이득들이 특히 output activations를 batch-normalize [7]하는 network가 학습할 수 있는 향상된 space of variations 덕분이다고 한다. dimension reduction components에 linear activations를 사용할때도 비슷한 효과를 볼 수 있다.

3.2. Spatial Factorization into Asymmetric Convolutions

위의 결과는 큰 3 × 3 필터는 항상  3 × 3 convolutional layers의  sequence 로 축소될수 있기 때문에 일반적으로 유용하지 않을 수 있음을 시사한다.  여전히 우리는 예를 들어 2×2 convolutions과 같이 작은 단위로 인수분해해야 하는지에 대한 질문을 할 수 있다. 하지만 asymmetric convolutions, e.g. n × 1을 사용하면 2 × 2 보다 훨씬 더 잘 할 수 있다. 예들 들어 , 3 × 1 convolution 에 이어 1 × 3 convolution을 사용하는 것은 3 × 3 convolution (see figure 3)에 있는 것과 동일한 receptive fieldㄹㄹ 가진  two layer network 를 sliding하는 것과 같다. 그에 비해, 3 × 3 convolution 을 2개의 2 × 2 convolution으로 인수분해하는 것은 계산의 11% 절약을 나타낸다. 

이론적으로 , 우리는 더 나아가서 n × n convolution을 1 × n convolution이어서 n × 1 convolution을 대체할 수 있으며 계산 비용 절감은 n이 커질수록 극적으로 증가한다고 주장할 수 있다. (see figure 6). 실제로 , 우리는 이 factorization 를 사용하는 것이 

early layers에서는 잘 작동하지 않지만 medium grid-sizes(m×m 피처 맵에서는 m이 12~20 범위)에서는 매우 좋은 결과를 제공한다는 것을 발견하였다. 그 수준에서 1 × 7 convolutions에 이어 7 × 1 convolutions결과를 얻을 수 있다. 

 

4. Utility of Auxiliary Classifiers

[20] very deep networks 의 개념을 수렴하여 개선하는 auxiliary classifiers 의 개념을 도입했다. 원래의 동기는 유용한 gradients로 the lower layers로 밀어 즉시 유용하게 만들고 very deep networks에서 vanishing gradient problem를 해결함으로써 학습 중 수렴을 개선하는 것이었다.  또한 Lee et al[11]는 auxiliary classifiers보다 안정적인 학습과 더 나은 수렴을 촉진한다고 주장했다. 흥미롭게도, 우리는 auxiliary classifiers가 훈련의 초기에는 수렴을 개선하지 않았다는 것을 발견했다. side head가 있는 newtork와 없는 network의 훈련 진행은 두 모델이 높은 정확도에 도달하기 전에 사실상 같아 보인다. 훈련이 끝날 무렵, auxiliary branches 가 있는 network는 어떠한 것도 없이 network의 정확도를 추월하기 시작한다. 

플래토ː, plateau:무엇을 연습할 때, 처음에는 진보가 빠르나, 어느 단계에 이르면 진보가 멈추고 그 후 다시 연습을 계속하면 재차 진보하기 시작하는 상태. 고원 현상(高原現像).

또한 [20] network의 서로 다른 단계에서 두가지 side-heads를 사용했다. lower auxiliary branch의 제거는 network의 최종 품질에 악영향을 미치지 않았다. 이전 단락의 이전 관측과 함께, 이는 이러한 branches 가 low-level features 의 진화에 도움이 된다는 [20]의 원래 가설이 잘못되었을 가능성이 높다는 것을 의미한다. 대신에 , 우리는 auxiliary classifiers가 regularizer의 역할을 주장한다. 이것은 side branch가 batch-normalized [7] 되거나 dropout layer이 있는 경우 network의 main classifier가 더 잘 수행된다는 사실에 의해 뒷받침된다.  이것은 또한 batch normalization가 regularizer로서 작용한다는 대한 약한 근거를 제공한다. 

=>batch normalization acts as a regularizer

5. Efficient Grid Size Reduction

전통적으로 , convolutional networks 는 일부 pooling operation을 사용하여 feature maps의 grid size를 줄였다. representational bottleneck을 피하기 위해 maximum or average pooling전에 network filters의 activation dimension을 확장한다. 예를 들어, k filters로 d×d grid를 시작할때 , 2k filters로  (d/2) ×(d/2) grid 에 도착하면, 먼저 2k filters로 stride-1 convolution 을 계산한 다음 추가 pooling step를 적용해야 한다. 이는 전체 computational cost 이 2d^2k^2 연산을 사용하는 더 큰 grid의 expensive convolution에 의해 좌우된다는 것을 의미한다.  한가지 가능성은 convolution 을 사용한 pooling으로 전환하여   2*( d/2)^2*k^2로 계산 비용을 1/4로 절감하는 것이다. 그러나 , 이것은 표현의 전체 차원성이 (d/2)^2*k로 떨어져 representation 이 떨어지는 network를 만들면서 representational bottlenecks현상을 일어킨다. (see Figure 9).  그렇게 하는 대신, 우리는 representational bottleneck현상을 제거하는 계산 비용를 훨씬 더 절감하는 또 다른 변형을 제안했다. (see Figure 10) . 우리는 two parallel stride 2 blocks을 사용할 수 있어 P와 C. 

P: pooling layer (평균 또는 최대 pooling) activation

C: 둘다 그림 10과 같이 연결된 filter banks stride 2이다. 

 

6. Inception-v2

여기서 우리는 위에서 dots을 연결하고  ILSVRC 2012 classification benchmark에서 성능이 향상된 새로운 architecture 를 제안한다. 우리 network의 layour은 table 1에 나와 있다. section 3.1에서 설명한 것과 동일한 아이디어에 기초하여 7 × 7 convolution 을 3 × 3 convolutions으로 인수분해했다. network의 Inception 에서 , 우리는 각각  288 filters가 있는  35×35에 3개의 전통적인 Inception 모델을 가지고 있다. section 5에서 설명한 grid reduction techniqu을 사용하여 768개의 filter가 17 × 17 grid 로 축소된다. 이것은 figure 5에서 묘사된 것 과 같이 인수 분해된 inception modules 의 사례가 뒤따른다. 이것은  figure 10에 묘사된 grid reduction technique을 통해 8 × 8 × 1280 grid로 축소된다. 가장 coarsest 8 × 8 level에서, 우리는  figure 6에서 묘사된 것 처럼 각 tile에 2048인 두개의 Inception modules을 가지고 있다. Inception modules내부의 filter bank size를 포함함 network의 자세한 구조는 모델에 제시된 supplementary material에 제시되어 있다. 이 submission 의 tar 파일에 있는 model.txt이다. 그러나 Section 2의 원칙을 준수하는 한 network의 품질이 변화에 대해 상대적으로 안정적이라는 것을 관찰했다. network 깊이는 42 layers이지만, 계산 비용은 GoogLeNet보다 약 2.5배 더 높을 뿐이고 여전히 VGGNet보다 훨씬 효율적이다.

 

 

 

 

 

 

 

7. Model Regularization via Label Smoothing

여기서는 학습 중 label-dropout 의 한계 효과를 추정하여 classifier 계층을 정규화하는 메커니즘을 제안한다. 각 학습 데이터 x에 대해, 우리는 모델은 각 레이블

k ∈ {1 . . . K}: p(k|x) = p(k|x) = exp(z_k)/ \sum_{i=1}^kexp(z_i)

여기서 z_i는 logits 또는 unnormalized logprobabilities이다. 이 학습 예제의 레이블 q(k|x) 에 대한 ground-truth distribution 를  \sum_{k} q(k|x)=1 이 되도록 정규화한다 . 간략하게 하기 위해, 예제 x에서 p와 q의 의존성을 생략하라 . 우리는 예에 대한 손실을 교차 엔트로피 l = -\sum_{k=1}^Klog(p(k))q(k)로 정의한다.  이것을 최소화하는 것은 라벨이 ground-truth distribution q(k)에 따라 선택되는 라벨의 예상 log-likelihood of a label을 최대화하는 것과 같다. Cross-entropy loss는 logits z_k와 관련하여 구별할 수 있으므로 deep models의 gradient 학습에 사용될 수 있다. gradient 는 다소 단순한 형태를 가지고 있다.

\partial l / \partial z_k = p(k)-q(k) 

이며, -1과 1 사이의 경계이다. 

그래서 , k != y q(y) = 1 and q(k) = 0 이 되는 single ground-truth label y의 경우를 생각해 보십시오 . 이 경우 cross entropy를 최소화하는 것은 correct label the log-likelihood를 최대화 하는 것과 같다. label y이 있는 특정 예제 x의 경우 log-likelihood는 q(k) = δ k,y 에 대해 최대화 되며 여기서 δ k,y is Dirac delta이며, 일 때 1이고, 그렇지 않은 경우에는 0이다. 유한한 z_k에 대해 maximum 을 달성할수는 없지만, 의 경우에는 즉 ground-truth label에 해당하는 logit이 다른 logits 보다 훨씬 큰 경우에 접근한다. 그러나 이것은 두 가지 문제를 일으킬 수 있다.

1. over-fitting이 발생할 수 있다. model 이 각 학습 예제에 대해 ground-truth label의 모든 확률을 할당하도록 학습한다면, 일반화 성능을 조장할 수 없다.

2. largest logit 과 다른 all others to become large사이의 크기가 커지도록 장려하고 이는 bounded gradient ℓ/zk 와 함께 사용하게 되면  모델의 적응 능력을 감소시킨다. 직관적으로 모형이 예측에 대해 너무 확신하기 때문에 이러한 현상이 발생한다.

우리는 모델이 덜 신뢰하도록 장려하기 위한 메커니즘을 제안한다.  training labels의 log-likelihood을 최대화하는 것이 목적인 경우에는 이 방법이 바람직하지 않을 수 있지만 모형을 정규화하고 적응성을 높인다. 방법은 매우 간단하다. training example x에 독립인 label distribution  smoothing parameter인 을 고려한다. ground-truth label y일 때, label distribution q(k|x) = δ k,y 를 다음과 같이 바꿀 수 있다. 

q(kx)=(1ϵ)δk,y + ϵu(k)

original ground-truth distribution q(k|x) 와 the fixed distribution u(k) 에  1 − ϵ and ϵ 에 각각 weight 로 곱해진 혼합식이다. 

이것은 다음과 같이 얻은 레이블 k의 분포로 볼 수 있다: 

1. ground-truth label k = y를 설정한다. 

2. 그런 다음 확률이 ϵ, k를 distribution u(k)에서 추출한 표본으로 바뀐다. 

labels 에 대한 prior distribution를 u(k)로 용할 것을 제안한다. 실험에서 , uniform distribution u(k) = 1/K를 사용한다. q′(k)=(1−ϵ)δk,y+ϵK.

우리는 ground-truth label distribution의 이러한 변화를 label-smoothing regularization, or LSR이라고 부른다. 

LSR 은 largest logit 이 다른 logit보다 훨씬 더 커지는 것을 방지하는 목적할 수 있다는 점에 유의 하십시오. 실제로, 만약 이것이 일어난다면, 다른 모든 q(k)는 0에 접근하는 반면, 단일 q(k)는 1에 접근할 것이다. 실제로 LSR이 적용되면, q′(k)는 큰 cross-entropy 값을 가지게 될 것이고

LSR의 또 다른 해석은 cross entropy를 고려함으로써 얻을 수 있다. 

H(q,p)=Kk=1logp(k)q(k)=(1ϵ)H(q,p)+ϵH(u,p)

따라서 LSR은  single cross-entropy loss H(q,p) 를 그러한 losses H(q,p) and H(u,p)의 쌍으로 대체하는 것과 같다.  두번재 loss인 H(u,p)는 , prior u로 부터 얻어지는 predicted label distribution p의 deviation 에 대해 계산되며 , 첫번째 loss에 비해 상대적으로 만큼 가중된다. H(u,p) = D KL (ukp) + H(u)및  H(u)가 고정되었기 때문에 KL divergence에 의해 동등하게 포착될 수 있다. u 가 uniform distribution일 때 , H(u,p)는 predicted distribution p 는 uniform 하지 않는 지에 대한 측도이다. negative entropy −H(p)에 대해서 측정할 수 있지만 동일한 값은 아니다 .K = 1000 classes를 사용한  ImageNet experiments에서 u(k) = 1/1000 and ϵ = 0.1을 사용했다. ILSVRC 2012의 경우, top-1 error and the top-5 error (cf. Table 3) 모두에 대해  0.2%의 절대적인 개선을 발견했다. 

8. Training Methodology

TensorFlow [1] distributed machine learning system에서 50 replicas running 이 각각 NVidia Kepler GPU 상에서 stochastic gradient로 학습됐다.  

batch size 32 for 100 epochs .

초반 실험에서는 decay가 0.9인 momentum[19]을 사용했었으며,

best model은 decay가 0.9인 RMSProp[21] 과, ϵ=1.0을 사용할 때 얻었다.

Learning rate는 0.045에서 시작하여, 두 번의 epoch마다 0.94를 곱했다. 또한, threshold가 2.0인 gradient clipping [14] 이 안정적인 학습에 도움된다는 것을 발견했다.

모델의 평가는, 시간이 지남에 따라 계산 된 parameter의 running average을 사용하여 수행한다. 

 

9. Performance on Lower Resolution Input

vision networks의 일반적인  예를 들어 Multibox [4] context에서 detection의 post-classification을 위한 것이다. 여기에는 일부 context가 single object를 포함하는 이미지의 상대적으로 small patch분석이 포함된다. tasks 은 patch의 center part이 일부 object 에 해당하는지 여부를 확인하고 해당되는 경우 해당 개체의 클래스를 확인하는 것이다. 문제는 물체가 relatively small and low-resolution 경항이 있다는 것이다. 이에 따라 lower resolution input을 어떻게 적절히 처리할 것인가 하는 의문을 제기한다.

일반적으로 , higher resolution의 receptive field를 사용하는 모델이, recognition 성능이 크게 향상되는 경향이 있다고 알려져 있다.그러나 first layer receptive field의 resolution이 증가했을 때 효과와 model 이 크짐에 따라 capacitance and computation를 구별하는 것이 중요하다. model에 대한 추가 조정없이 resolution 만 변경하면 computationally 으로 훨씬 저렴한 모델을 사용하여 더  어려운 작업을 해결할 수 있다. 물론 computational effort이 감소했기 때문에 이러한 솔루션들이 이미 느슨해지는 것은 당연하다. accurate assessment를 하기 위해서는 , vague hints를 분석해 fine details을  “hallucinate”있는 능력이 필요하다.  

hallucinate: 환각을 느끼다. 

이것은 계산 비용이 많이 든다. 

따라서 문제는 computational effort이 일정하게 유지된다면 더 높은 입력 해상도가 얼마나 도움이 되는가 하는 것이다. 지속적인 노력을 보장하는 한 가지 간단한 방법은 lower resolution input의 경우 처음 두 계층의 발전을 줄이거나 네트워크의 첫 번째 pooling layer을 제거하는 것이다. 

    Receptive field의 resolution를 말하는 것으로 보인다.

이를 위해 다음 세 가지 실험을 수행했다.

1. stride가 2인 299x299 receptive field를 사용하고, 첫 번째 layer 다음에 max pooling을 사용.

2. stride가 1인 151x151 receptive field를 사용하고, 첫 번째 layer 다음에 max pooling을 사용.

3. stride가 1인 79x79 receptive field를 사용하고, 첫 번째 layer 다음에 pooling layer가 없음.

receptive field stride
299x299  2
151x151 1
79x79 1

 

위 실험에 해당하는 3개의 네트워크는 거의 동일한 계산 비용을 갖는다. 실제로는 3번 네트워크가 약간 저렴하지만, pooling layer의 계산 비용은 총 비용의 1% 이내 수준이기 때문에 무시한다. 각각의 네트워크는 수렴 될 때까지 학습했으며, 성능은 ImageNet ILSVRC 2012 classification benchmark의 validation set에 대해 측정됐다. 결과는 Table.2에서 혹인할 수 있다. lower-resolution networks는  네트워크가 학습하는 데 시간이 오래 걸리긴 하지만, 성능은 higher resolution newwork에 상당히 유사하다. 그러나 input resolution에 따라 단순하게 네트워크 크기를 줄이게 된다면 성능이 훨씬 떨어지게 된다. 하지만, 이는 어려운 작업에 대해서 16배나 저렴한 모델이기 때문에, 이를 비교하는 것은 불공평하다.

 

또한 Table.2의 결과들은, R-CNN[5] context 의 smaller object에 대해, high-cost low resolution networks 의 사용 가능성을 암시한다.

 

10. Experimental Results and Comparisons

Table 3은 Section 6에서  설명한 바와 같이 제안된 아키텍처 (Inception-v2) 의 인식 성능에 관한 실험 결과를 보여준다. 각 Inception-v2은 강조 표시된 새로운 modification 과 모든 이전 수정 사항을 포함한 누적된 변경의 결과를 보여준다. Label Smoothing은 Sect. 7에서 설명한 방법이다. Factorized 7 × 7은 first 7 × 7 convolutional layer를 이어 3 × 3 convolutional layers sequence로 인수분해 하는 부분을 포함한다. BN-auxiliary는 auxiliary classifier의 fully connected layer 가 convolutions뿐만 아니라  batch-normalized에도 버전을 말한다. 우리는 Table 3 마지막 줄에 있는 모델을 Inception-v3으로 언급하고 있으며 multi-cropensemble settings에서 성능을 평가하고 있다.

모든 evaluations 는 [16]에서 제안한 데로 ILSVRC-2012 validation set의 non-blacklisted examples의 48238 예에 대해 수행된다. 우리는 또한 모든 50000 examples를 평가했고 결과는 top-5 error 에서 약 0.1%, top-1 error 떨어졌다.pcoming version 의 이 논문에서 , 우리는 test에 대한 ensemble result 를 검증할 것이지만, spring [7] 에  BN-Inception 에 대한 마지막 평가  시점에 test and validation set erro가 매우 잘 상관되는 경향이 있음을 나타낸다.

11. Conclusions

우리는 convolutional networks를 scale up하기 위한 몇가지 design principles을 제공하고 Inception architecture의 context 에서 연구했다. 이 지침은 단순하고 , 더 monolithic architectures 에 비해 상대적으로 낮은 계산 비용을 가진 고성능 비전 네트워크로 이어질 수 있다. 가장 성능이 좋았던 Inception-v3의 경우, ILSVR 2012 classification에 대한 single-crop 성능이 top-1 error와 top-5 error에서 각각 21.2%, 5.6%에 도달하여 state of the art 기록을 하였다. 

이는 Ioffe et al [7]에서 설명한 네트워크에 비해 계산 비용이 상대적으로 적게 (2.5배) 증가하여 달성되었다.  여전히 우리의 솔루션은 더 denser networks를 기반으로 한 가장 잘 발표된 결과보다 훨씬 적은 계산을 사용한다. 우리의 모델은 계산 비용이 6배 저렴하고 매개 변수를 최소 5배(추정) 적게 사용하면서 He et al[6]의 결과(상위 5개)를 각각 25%(14%) 능가한다. 

4개의 Inception-v3 models 의 ensemble 은 3.5%에 도달하며, multi-crop evaluation 3.5%  의 top-5 error에 도달한다. 이는 best published results 에 대한 25% 이상의 reduction를 나타내며 ILSVRC 2014 winining GoogLeNet ensemble 오류에 거의 절반 해당한다. 

 

또한, 79x79의 낮은 receptive field resolution에서도 high quality results 을 얻을 수 있음을 입증했다. 이는 상대적으로 작은 object를 탐지하는 시스템에 도움될 수 있다. 이 논문에서는 neural network 에서의 factorizing convolution 기법과 aggressive  dimension reduction으로, 어떻게 높은 성능을 유지하면서도, 비교적 낮은 계산 비용이 드는 네트워크를 만들 수 있는지에 대해 알아봤다. batch-normalized auxiliary classifiers 및 label-smoothing 기법이 함께 사용되면, 크지 않은 규모의 학습 데이터 상에서도, 고성능의 네트워크를 학습 할 수 있다.

 

 

 

 

논문 출처 :

Rethinking the Inception Architecture for Computer Vision

 

참고 :

https://sike6054.github.io/blog/paper/third-post/

 

(Inception-v3) Rethinking the inception architecture for computer vision 번역 및 추가 설명과 Keras 구현

 

sike6054.github.io

요즘 파파고도 잘 되어 있어서 파파고 번역을 많이 참고하였다.

https://sike6054.github.io/blog/paper/third-post/

 

(Inception-v3) Rethinking the inception architecture for computer vision 번역 및 추가 설명과 Keras 구현

 

sike6054.github.io

 

반응형

+ Recent posts