반응형

논문 :

[OCR]Spatial Transformer Networks

2015, NIPS
Max Jaderberg, Karen Simonyan, Andrew Zisserman, Koray Kavukcuoglu 
Google DeepMind

 

cnn으로 만족시키지 못한 것을 stn으로 한다.

3가지 절차가 있다.

Localisation net: U  ->  parameter matrix 

Grid generator:  에 -> sampling grid Tθ(G)를 계산

Sample:

 

이 논문의 저자들은, CNN (Convolutional Neural Network)이 spatially invariant하지 못한 점이 근본적인 한계라고 주장합니다.CNN의 max-pooling layer가 그런 점을 다소 만족시켜 주기는 하지만, 2×2 픽셀 단위의 연산으로는 데이터의 다양한 spatial variability에 대처하기 어렵다는 것입니다. 여기서 말하는 spatial variability란 scale (크기 변화), rotation (회전), translation (위치 이동)과 같은 공간적 변화를 의미한다고 보시면 되겠습니다.

이를 해결하기 위해 이 논문에서는 기존 CNN에 끼워 넣을 수 있는 Spatial Transformer라는 새로운 모듈을 제안합니다.

 

non-rigid deformations

 

end-to-end training

end-to-end 딥러닝은 자료처리 시스템 / 학습시스템에서 여러 단계의 필요한 처리과정을 한번에 처리합니다. 즉, 데이터만 입력하고 원하는 목적을 학습시키는 것입니다.

www.edwith.org/deeplearningai3/lecture/34893/

 

[LECTURE] End-to-End Deep Learning 은 무엇인가요? : edwith

학습목표 end-to-end 딥러닝을 학습한다. 핵심키워드 end-to-end 딥러닝 파이프라인 (pipline) - 커넥트재단

www.edwith.org

Spatial Transformer의 개념

Spatial transformer란, 기존의 neural network architecture에 집어넣어 아래 그림과 같이 spatial transformation 기능을 동적으로 제공하는 모듈입니다.

 

 

Localisation net: input feature map U에 적용할 transform의 parameter matrix θ를 추정합니다.

Grid generator:  에 따라 input feature map에서 sampling할 지점의 위치를 정해주는 sampling grid Tθ(G)를 계산합니다.

Sample:

 

Projective Transformation(원근변환)

이것은 선만 보존되는 변환이다. 각도도 바뀐다. 단지 선의 성질은 보존되어 곡선으로 되지는 않는다.

이 변환은 원근감을 표현하기 위해 필요한 변환이며, 입체를 평면이 투영할때도 꼭 필요한 변환이다.

 

blog.daum.net/shksjy/228

 

[영상처리] 일지 16: Transformations -- 기본적이며 전반적 이해를 위해

일지 16 : Transformations(변환) 아무 개념없이 이미지의 이동/ 회전/ 확대를 앞 일지에서 하였다. 그러다가 원근변환을 해야하는 일이 있어 공부해보니 이 모든 것이 다 변환이었다. 그래서 영상처리

blog.daum.net

근데 원근법에 의해서 멀리있는 기둥은 짧아 보이고 가까이 있는 기둥은 길어 보여서 마치 화면의 중심점으로 소실되어 가는 것처럼 보이죠.

이게 바로 원근변환입니다

5.2.4. Affine Transformations

  

선형변환에서 이동변환까지 포함하여 Affine변환이라고 한다. 여기에서는 변환전 물체의 속성중에서 서로 평형한 선은 Affine변환후에도 역시 평형하다는 것이 특징이다. 따라서 Shear도 Affine변환이다.

위의 그림에서 보듯이 평형사변형을 Affine변환시키면 역시나 평형사변형이 된다. 만약 평형사변형을 perspective(원근변환)시키면 사다리꼴이 되어 서로 평형했던 선이 더 이상 평형관계에 있지 않게 된다.

 

 

image classification은 이미지가 개에 관한 것인지, 고양이에 관한 것인지, 사람에 관한 것인지, 자동차에 관한 것인지 분류하는 컴퓨터 비전 과제다. 그렇다면 fine-grained image classification은 무엇일까? 새의 종, 꽃의 종, 동물의 종 또는 자동차의 모델 같이 구분하기 어려운 클래스들을 분류하는 과제다. 

image classification의 대표 데이터셋이 이미지넷(ImageNet)이라면, fine-grained image classfication에 자주 사용되는 데이터셋에는 CUB-200-2011, Stanford Cars, Stanford Dogs 등이 있다. CUB-200-2011은 200개의 클래스를 포함하고, 5994개의 훈련셋과 5794개의 테스트셋으로 구성되어 있다. Standford Cars는 196개의 클래스, 8144개의 훈련셋, 8041개의 테스트셋을 제공한다. Stanford Dogs의 경우에는 120개 클래스, 12000개 훈련셋, 8580개 테스트셋을 갖는다. 

 

Coarse-grained 의 사전적 정의는 "결이 거친", "조잡한" 입니다. 곡식을 낱알로 분리하는 작업을 "grain" 이라고 할 수 있는데, 이를 거칠고 큼직큼직하게 할지, 곱고 세밀하게 할지에 따라서 Coarse 와 Fine 으로 나누어 표현한다고 이해할 수 있습니다.
Coarse-grained classification 은 Cifar10, Cifar100, MNIST 등의 데이터셋을 사용해 classification 하는 것이 Coarse-grained classification 의 예시입니다.

Fine-grained classification 은 Coarse-grained classification 보다 더 세밀하게 classification 을 한다고 이해할 수 있습니다. Stanford dogs 가 가장 유명한 Fine-grained classification dataset 인데, 아래 이미지를 보시면 "개" 라는 동물종 안에서 더 세세하게 "개의 품종"을 classification 하기 위한 데이터셋임을 알 수 있습니다. Fine-grained classification 은 Coarse-grained classification 보다 상대적으로 비슷한 특징을 가진 classs 들을 분류하는 것이라고 이해할 수 있습니다.

출처: https://light-tree.tistory.com/215 [All about]

 

bskyvision.com/643

 

image classification과 fine-grained image classification의 차이

image classification은 이미지가 개에 관한 것인지, 고양이에 관한 것인지, 사람에 관한 것인지, 자동차에 관한 것인지 분류하는 컴퓨터 비전 과제다. 그렇다면 fine-grained image classification은 무엇일까?.

bskyvision.com

light-tree.tistory.com/215

 

딥러닝 용어 정리, Coarse-grained classification과 Fine-grained classification의 차이와 이해

이 글은 제가 공부한 것을 정리한 글입니다. 잘못된 내용이 있다면 댓글로 지적 부탁드립니다. 감사합니다. Coarse-grained classification 과 Fine-grained classification 의 차이 Coarse-grained 의 사전적 정..

light-tree.tistory.com

 

 

 

 

참조 :

jamiekang.github.io/2017/05/27/spatial-transformer-networks/

 

Spatial Transformer Networks · Pull Requests to Tomorrow

Spatial Transformer Networks 26 May 2017 | PR12, Paper, Machine Learning, CNN 이번 논문은 Google DeepMind에서 2015년 NIPS에 발표한 “Spatial Transformer Networks”입니다. 이 논문의 저자들은, CNN (Convolutional Neural Network)이 sp

jamiekang.github.io

 

반응형
반응형

논문 출처 :

Robust Scene Text Recognition with Automatic Rectification

Abstract

irregular shapes 

perspective distortion : 사진 및 영화 촬영에서 원근 왜곡은 물체와 그 주변 영역이 뒤틀 리거나 변형되어 주변 및 원거리 피처의 상대적 스케일로 인해 일반 초점 거리에서 물체가 어떻게 보일지와 크게 다릅니다. en.wikipedia.org/wiki/Perspective_distortion_(photography)

 

Perspective distortion (photography) - Wikipedia

Simulation showing how adjusting the angle of view of a camera, while varying the camera distance and keeping the object in frame, results in vastly differing images. At narrow angles and large distances, light rays are nearly parallel, resulting in a "fla

en.wikipedia.org

자연 이미지에서 텍스트를 인식하는 것은 여전히 ​​어려운 작업이며이 논문에서는 불규칙한 텍스트에 대한 강력한 인식 모델 인 RARE(Robust text recognizer with Automatic REctification)를 제안합니다. RARE는 공간 변환 네트워크 STN (Spatial Transformer Network)과 시퀀스 인식 네트워크 SRN (Sequence Recognition Network)을 포함하는 심층 신경망입니다. 두 네트워크는 동시에 BP 알고리즘을 사용하여 훈련됩니다.테스트에서는 먼저 TPS (Thin-Plate-Spline)를 통해 이미지를보다 읽기 쉬운 일반 이미지로 변환합니다.이 변환은 전송 변환 및 곡선 텍스트를 포함하여 다양한 유형의 불규칙한 텍스트를 수정할 수 있습니다. 

RARE is end-to-end trainable, requiring only images and associated text labels, making it convenient to train and deploy the model in practical systems.

 

Thin-Plate-Spline: 박판 스플라인은 데이터 보간 및 스무딩을위한 스플라인 기반 기술입니다.

www.google.com/search?newwindow=1&sxsrf=ALeKk002Hfj8gKX_zn7li6QvxABwVjkjoQ:1600839909996&q=Thin+plate+spline+%EC%9D%B4%EB%9E%80&sa=X&ved=2ahUKEwjEr7Wxyf7rAhVK05QKHYrnBWMQ1QIoAXoECAsQAg&biw=1536&bih=754

 

Thin plate spline 이란 - Google 검색

Principal Warps: Thin-Plate Splines and the Decomposition of Deformations, F.L. Bookstein, PAMI 1989 (Vol. 11, No. 6) pp. 567-585.

www.google.com

Thin Plate Spline(TPS) 원래 점에서 한 점을 였을 때 어떻게 하면 그 점의 curve가 잴 적는가 ?

 

Introduction

Ideally, the STN produces an image that contains regular text, which is a more appropriate input for the SRN than the original one. The transformation is a thinplate-spline [6] (TPS) transformation, whose nonlinearity allows us to rectify various types of irregular text, including perspective and curved text. The TPS transformation is configured by a set of fiducial points, whose coordinates are regressed by a convolutional neural network.

 

 

TPS 변환은 일련의 기준점으로 표시되고 좌표는 컨벌루션 신경망 회귀를 통해 얻습니다. 그런 다음 식별을 위해 SRN에 넣습니다. SRN은 인코더 및 디코더를 포함하여 주의 기반 시퀀스 인식 방법을 사용합니다. 인코더는 특징 표현 시퀀스, 즉 시퀀스의 특징 벡터를 생성하고, 디코더는 입력 시퀀스에 따라 문자 시퀀스를 주기적으로 생성한다. 이 시스템은 end-to-end 텍스트 인식 시스템으로 훈련 과정에서 문자열의 키 포인트와 문자 위치를 추가로 표시 할 필요가 없습니다.

 

attention based model은 실제로 유사성의 척도입니다. 현재 입력이 목표 상태와 유사할수록 전류 입력의 가중치가 커져 현재 출력이 전류 입력에 더 많이 의존 함을 나타냅니다.

attention는 실제로 전류 입력과 출력 간의 일치 정도입니다.

 

이 논문의 주요 공헌 :

1) 불규칙한 텍스트에 대한 새롭고 robust scene text recoginition 방법 제안,

2) attention-based model  STN 프레임 워크 채택. 기존 STN은 일반 컨볼 루션 신경망에서만 테스트됩니다 .

3) convolutional-recurrent  구조는 SRN 인코더에서 사용됩니다.

 

3. Proposed Model

모델의 입력은 이미지 I이고 출력은 시퀀스 L =입니다. (L1,…, LT), Lt는 T 번째 문자를 나타내고 T는 시퀀스 길이입니다.

 

3.1. Spatial Transformer Network

STN은 예측 된 TPS 변환을 사용하여 입력 이미지 I를 수정 된 이미지 I '로 변환합니다. 아래 그림과 같이:

Figure 2. Structure of the STN. The localization network localizes a set of fiducial points C, with which the grid generator generates a sampling grid P. The sampler produces a rectified image I 0 , given I and P.

먼저 포지셔닝 네트워크를 통해 참조 점 집합을 예측 한 다음 위의 참조 점을 사용하여 그리드 생성기에서 TPS 변환 매개 변수를 계산하여 I에 대한 샘플링 그리드를 생성합니다. 샘플러는 샘플링 그리드의 포인트를 통해 그리드와 입력 이미지를 결합합니다. 나는 이미지를 가져옵니다. STN은 샘플러가 미분 할 수있는 고유 한 속성을 가지고 있으므로 미분 할 수있는 포지셔닝 네트워크와 미분 할 수있는 그리드 생성기가 있으면 STN은 훈련을 위해 오류를 역 전파 할 수 있습니다.

STN의 장점은 위 모든 연산이 differentiable 한 연산들로 구성되어 각 모듈의 파라미터들이 학습이 가능하다는 점이다.

 

3.1.1 Localization Network

포지셔닝 네트워크는 x 및 y 좌표를 회귀하여 K 참조 점을 결정합니다. 상수 K는 짝수이고 좌표는 C =로 표시됩니다.

Localization network는 CNN으로 구성되고 출력은 K개의 좌표 값(=2K)에 대한 regression을 수행한다. 출력 노드는 tanh() activation function을 이용하여, (-1,1) 범위로 normalized된 좌표값을 예측하도록 한다.

이 때 중요한 점은 fiducial point에 대한 GT 없이 오직 back-propagation에 의해 학습된 포인트 위치 좌표로 rectification이 수행된다는 점이다.

www.notion.so/Robust-Scene-Text-Recognition-with-Automatic-Rectification-4149ef9f3dc24ed5bf120d941085a799

 

Robust Scene Text Recognition with Automatic Rectification

Paper Info

www.notion.so

 

3.1.2 Grid Generator

Figure 3. Fiducial points and the TPS transformation. Green markers on the left image are the fiducial points C. Cyan markers on the right image are the base fiducial points C0 . The transformation T is represented by the pink arrow. For a point (x 0 i , y0 i) on I 0 , the transformation T finds the corresponding point (xi, yi) on I.

Grid generator는 예측된 fiducial points로 부터 TPS transform을 위한 파라미터를 측정하여, 샘플링 그리드를 생성한다.

우리는 처음에 또 다른 fiducial points(기준점) 을 정의하는데 것을 base fiduacial points,라고 한다.

샘플링 그리드는 출력 영상(=rectified Image)의  각 화소에서 입력 영상의 어떤 위치의 화소와 매칭이 되는지를 계산하여, 매칭되는 부분의 화소값을 샘플링해 오는 역할을 한다. 출력 영상에서 fiducial point는 항상 이미지의 상단과 하단에 균일하게 분포되도록 설정하기 때문에, 출력 영상의 base fiducial points C'은 constant이다.

 

그리드 생성기는 TPS 변환의 매개 변수를 평가하고 샘플링 그리드를 생성합니다.

 

TPS transform의 파라미터는 행렬 T로 표현 된다.

이 때, R'은 두 base fiducal points c'_i, c'_j 간의 euclidean distance로서 contant이고, △C' 는 contant 행렬 C' 와 R'에 의해 결정되므로, 이 또한 constant 이다. (참고로, 행렬 C는 localization network에 의해 예측되는 값이다.)

Rectified 이미지 I'에서의 픽셀 그리드 좌표는 다음과 같이 정의된다.

위 그림 3에서와 같이, Rectified 이미지 I'의 모든 화소에 대한 대응 점 p_i=[x_i,y_i]를 찾기 위해 다음의 변환을 적용한다.

P'의 모든 포인트에 대해 위 변환을 적용하여, 입력 영상 I에 대한, 그리드 P를 생성한다. 참고로, 해당 변환은 두개의 행렬 곱 연산(Eq.1, Eq.4)으로 구성되므로, 미분 가능하다.

 

3.1.3 Sampler

그중 V는 차별화 가능한 모델 인 bilinear sampler를 의미합니다.

TPS 변환의 유연성을 통해 다음과 같은 효과를 통해 다양한 유형의 불규칙한 텍스트를 규칙적이고 읽기 쉽게 만들 수 있습니다.

위 수식에서 V는 bilinear sampler이고, 이 또한 미분가능한 연산이다. 아래는 학습된 STN의 결과 샘플들이다.

we show some common types of irregular text, including

a) loosely-bounded text, which resulted by imperfect text detection;

b) multi-oriented text, caused by non-horizontal camera views;

c) perspective text, caused by side-view camera angles;

d) curved text, a commonly seen artistic style. The STN is able to rectify images that contain these types of irregular text, making them more readable for the following recognizer.

 

In our model, the SRN is an attention-based model [4, 8], which directly recognizes a sequence from an input image. The SRN consists of an encoder and a decoder. The encoder extracts a sequential representation from the input image I 0 . The decoder recurrently generates a sequence conditioned on the sequential representation, by decoding the relevant contents it attends to at each step.

 

기존 Encoder-Decoder RNN/LSTM 모델의 문제점

- 아무리 긴 input sentence가 주어져도 고정 길이 벡터fixed-length vector로 압축해서 표현해야 함 

- Decoder는 Encoder의 마지막 은닉상태만 전달받음 → 엄청 긴 문장이라면 엄청 많이 까먹음 

- Attention은 Encoder와 Decoder 사이에 있으며, Decoder에게 (Encoder의 마지막 은닉상태뿐만 아니라) Encoder의 (모든) 은닉상태를 전해줌 

* Attention의 두 종류 1) global attention 2) local attention 

1) global attention : Encoder의 모든 은닉상태를 Decoder에 전해줌 

2) local attention : Encoder의 일부 은닉상태를 Decoder에 전해줌 

 

codlingual.tistory.com/92

 

Attention Model 번역 및 정리

출처 1) Neural Machine Translation By Jointly Learning to Align and Translate 2) Attention: Illustrated Attention 3) Attention and Memory in Deep Learning and NLP 기존 Encoder-Decoder RNN/LSTM 모델..

codlingual.tistory.com

www.jianshu.com/p/27efdd561897

 

基于TPS的STN模块-Robust Scene Text Recognition with Automatic Rectification

基于TPS的STN模块-Robust Scene Text Recognition with Automatic Rectification TPS:薄板样条插值(Thin ...

www.jianshu.com

localization network: TPS 보정에 필요한 K 기준점 예측(fiducial point)

 

Grid Generator기준점을 기반으로 TPS 변환을 수행하여 Feature map을 출력하는 샘플링 창을 생성합니다.(Grid)

Sampler각 그리드에 대해 쌍 선형 보간 수행

 

3.2. Sequence Recognition Network

SRN은 인코더와 디코더를 포함하여 입력 이미지에서 시퀀스를 직접 식별 할 수있는주의 기반 모델입니다. 인코더는 입력 이미지 I '에서 특성 시퀀스 표현을 추출하고, 디코더는 각 단계에서 관련 콘텐츠를 디코딩하여 시퀀스 표현에 따라 조정 된 시퀀스를 주기적으로 생성합니다.

 

3.2.1 Encoder: Convolutional-Recurrent Network

컨볼 루션 레이어와 반복 네트워크를 결합하여 특징 벡터를 추출하는 구조를 구축했으며 입력 이미지 크기는 임의적 일 수 있습니다.

Figure 5. Structure of the SRN, which consists of an encoder and a decoder. The encoder uses several convolution layers (ConvNet) and a two-layer BLSTM network to extract a sequential representation (h) for the input image. The decoder generates a character sequence (including the EOS token) conditioned on h.

 

convolutional layers와 recurrent network를 combine 한다. 

encoder 아래쪽에는 여러개의 convolutional layers가 있다. => feature maps를 생산하며 robust and high - level descriptions of an input image.

가설 : feature map  D conv (depth ) x H conv(height) x W conv(width) 

그 다음에는 maps 를 sequence 에 변하게 한다. Wconv vecotrs , each has D conv W conv 차원

Specifically, the “map-to-sequence” operation takes out the columns of the maps in the left-to-right order, and flattens them into vectors. According to the translation invariance property of CNN, each vector corresponds to a local image region, i.e. receptive field, and is a descriptor for that region.

 

two-layer Bidirectional Long -Short Term Memory(BLSTM)

BLSTM은 양방향 시퀀스의 독립성을 분석 할 수있는 순환 네트워크로, 출력은 입력 값과 크기와 길이가 동일한 또 다른 시퀀스이고,h = (h1, . . . , hL),  L은 특성 맵의 너비입니다.

 

3.2.2 Decoder: Recurrent Character Generator

디코더는 인코더에 의해 생성 된 시퀀스를 기반으로 일련의 문자 시퀀스를 생성하며 루프 부분에서는 GRU (Gated Recurrent Unit)를 cell로 사용합니다.

 

st−1 is the state variable of the GRU cell at the last step. For t = 1, both s0 and α0 are zero vectors.

Since αt has non-negative values that sum to one, it effectively controls where the decoder focuses on.

The state st−1 is updated via the recurrent process of GRU [7, 8]:

st-1은 GRU주기 프로세스를 통해 업데이트됩니다.

Lt-1은 훈련에서 t-1 번째 실제 레이블을 나타냅니다.

 

 

확률 분포 함수는 다음과 같습니다.

The label space includes all English alphanumeric characters, plus a special “end-of-sequence” (EOS) token, which ends the generation process.  => 영어 알파벳 

The SRN directly maps a input sequence to another sequence. Both input and output sequences may have arbitrary lengths. It can be trained with only word images and associated text.

 

3.3. Model Training

training set : 

 

, we minimize the negative log-likelihood over X :

where the probability p(·) is computed by Eq. 8, θ is the parameters of both STN and SRN.

 

optimization :  ADADELTA [41] : we find fast in convergence speed.

  • 스텝 사이즈도 가중치의 누적 변화에 따라 감소

datascienceschool.net/view-notebook/ba1f343cbe134837959f5c1c4fd98406/

 

Data Science School

Data Science School is an open space!

datascienceschool.net

Figure 6. Some initialization patterns for the fiducial points.

모델 파라미터는 localization network의 fully-connected layers의 가중치 0을 설정하는 것  제외하고 randomly initialized되며, 편차는 위의 그림 a와 같은 형태로 초기화됩니다. 경험에 따르면 b와 c의 초기화 효과가 상대적으로 낮습니다. 그러나 포지셔닝 네트워크의 매개 변수를 임의로 초기화하면 결과가 수렴되지 않습니다.

3.4. Recognizing With a Lexicon

단어를 인식하기 위해 사후 조건부 확률을 사용합니다. 50 k words 효율성있게 이 큰 사전을 죄회해야 한다. 

사전 집합을 줄이기 위해 접두사 트리는 다음과 같이 구성됩니다.

Figure 7. A prefix tree of three words: “ten”, “tea”, and “to”.  and Ω are the tree root and the EOS token respectively. The recognition starts from the tree root. At each step the posterior probabilities of all child nodes are computed. The child node with the highest probability is selected as the next node. The process iterates until a leaf node is reached. Numbers on the edges are the posterior probabilities. Blue nodes are the selected nodes. In this case, the predicted word is “tea”.

tree를 만들어서 한다. 

 

Recognition performance could be further improved by incorporating beam search.

Larger beam width usually resultbeam searchs in better performance, but lower search speed.

beam search : 자연어처리 조회하는 기법이다. 

그리디 탐색에서 확장된 빔 탐색이 많이 사용한다. 이것은 가장 높은 확률을 시퀀스를 반환한다.

빔 탐색은 모든 가능한 다음 스텝들로 확장하고, 가 사용자 지정 파라미터 이고, 빔의 숫자 또는 확률 시퀀스에서 병렬 탐색들을 조절가능한 곳에서 가능한 를 유지하려고 한다.

그리디 탐색의 경우 빔이 1인 탐색과 같다. 빔의 수는 일반적으로 5 또는 10을 사용하고, 빔이 클수록 타겟 시퀀스가 맞을 확률이 높지만 디코딩 속도가 떨어지게 된다.

velog.io/@nawnoes/%EC%9E%90%EC%97%B0%EC%96%B4%EC%B2%98%EB%A6%AC-Beam-Search

 

자연어처리 Beam Search

텍스트 생성 문제에 대해서 Greedy Search와 Beam Search을 어떻게 사용하는지 How to Implement a Beam Search Decoder for Natural Language Processing블로그를 보고 정리캡션 생성, 요약, 기계 번역은

velog.io

이오스는 위임지분증명 방식을 사용하는 제3세대 암호화폐이다. 이오스의 화폐 단위는 EOS이다.

ko.wikipedia.org/wiki/%EC%9D%B4%EC%98%A4%EC%8A%A4

 

이오스 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 이오스(EOS.IO)는 위임지분증명(DPoS) 방식을 사용하는 제3세대 암호화폐이다. 이오스의 화폐 단위는 EOS이다. 2017년 댄 라리머가 이더리움 기반으로 개발했고, 2018�

ko.wikipedia.org

4. Experiments

recognition benchmarkets  on irregular text

First we evaluate our model on some general recognition benchmarks, which mainly consist of regular text, but irregular text also exists.

Next, we perform evaluations on benchmarks that are specially designed for irregular text recognition. For all benchmarks, performance is measured by word accuracy.

4.1. Implementation Details

Spatial Transformer Network: 

STN의 localization network는 4 개의 convolution layers, 각 2 × 2 max-pooling layer가 있다.  

all convolutional layers

filter size : 3 , padding size : 1, stride : 1

filters are respectively 64, 128, 256 and 512

Following the convolutional and the max-pooling layers is two fully-connected layers with 1024 hidden units.

fiducial points K = 20, meaning that the localization network outputs a 40-dimensional vector

activation function : ReLU [27]  output layer  tanh(·). 을 제외하고 

 

Sequence Recognition Network:

encoder has 7 convolutional layers, whose {filter size, number of filters, stride, padding size} are respectively {3,64,1,1}, {3,128,1,1}, {3,256,1,1}, {3,256,1,1,}, {3,512,1,1}, {3,512,1,1}, and {2,512,1,0}.

The 1st, 2nd, 4th, 6th convolutional layers are each followed by a 2 × 2 max-pooling layer

On the top of the convolutional layers is a two-layer BLSTM network, each LSTM has 256 hidden units.

decoder: 

we use a GRU cell that has 256 memory blocks and 37 output units (26 letters, 10 digits, and 1 EOS token).

 

Model Training

8 백만 개의 합성 샘플, 배치 크기 = 64, [17, 16]에 따라 이미지 크기는 100x32, STN의 출력 이미지 크기도 100x32입니다.

 

Implementation  => gpu

 

4.2. Results on General Benchmarks
• IIIT 5K-Words [25] (IIIT5K)

• Street View Text [35] (SVT)

• ICDAR 2003 [24] (IC03)

• ICDAR 2013 [20] (IC13)

Table 1. Recognition accuracies on general recognition benchmarks. The titles “50”, “1k” and “50k” are lexicon sizes. The “Full” lexicon contains all per-image lexicon words. “None” means recognition without a lexicon.

4.3. Recognizing Perspective Text

Figure 8. Examples of irregular text. a) Perspective text. Samples are taken from the SVT-Perspective [29] dataset; b) Curved text. Samples are taken from the CUTE80 [30] dataset.

SVT-Perspective [29] is specifically designed for evaluating performance of perspective text recognition algorithms.

Figure 8. Examples of irregular text. a) Perspective text. Samples are taken from the SVT-Perspective [29] dataset; b) Curved text. Samples are taken from the CUTE80 [30] dataset.
Table 2. Recognition accuracies on SVT-Perspective [29]. “50” and “Full” represent recognition with 50-word lexicons and the full lexicon respectively. “None” represents recognition without a lexicon.

We use the same model trained on the synthetic dataset without fine-tuning. For comparison, we test the CRNN model [32] on SVT-Perspective. We also compare RARE with [35, 25, 37, 29], whose recognition accuracies are reported in [29].

 

Figure 9. Examples showing the rectifications our model makes and the recognition results. The left column is the input images, where green crosses are the predicted fiducial points. The middle column is the rectified images (we use gray-scale images for recognition). The right column is the recognized text and the ground truth text. Green and red characters are correctly and mistakenly recognized characters, respectively. The first five rows are taken from SVT-Perspective [29], the rest rows are taken from CUTE80 [30].

4.4. Recognizing Curved Text

Table 3. Recognition accuracies on CUTE80 [29].

5. Conclusion

irregular text problem =>scene text recognition에서의 어려운 문제 

불규칙한 텍스트 인식을 해결하기 위해 차별화 가능한 공간 변환기 네트워크(spatial transformer network를 사용하고,주의 학습 attention-based sequence 인식과 결합하여 전체 모델을 end-to-end 인식 할 수 있습니다.

실험 결과 :

1) 이 모델은 geometric supervision없이 더 가독성이 높은 이미지를 자동으로 생성 할 수 있습니다 .

2) 본 논문에서 제안한 이미지 보정 모델은 인식의 정확도를 향상시킬 수 있습니다 .

3) 본 논문에서 제안한 인식 시스템과 현재의 방법 보다 더 나은 결과를 가진다.

In the future, we plan to address the end-toend scene text reading problem through the combination of RARE with a scene text detection method, e.g. [43].

 

STN먼저 소계하고 

SRN  : encoder decoder

반응형
반응형

 

논문 : What Is Wrong With Scene Text Recognition Model Comparisons?Dataset and Model Analysis

 

Abstract

최근 몇 년 동안 Scene text recognition (STR)에 대한 많은 새로운 제안  모델이 소개되었습니다.그렇지만, 각 논문들이 기술의 한계를 뛰어넘을 정도로 선보였지만 , 실제 공정한 비교는 잘 안 돼있다고 한다.

이 논문에서는 3가지  주요 공헌에 대하여 제기하였다.

1. training과 evaluation 데이터셋의 불일치성에 대해서 조사하고 , 그러한 불일치성으로 인한 성능 하락도 조사했다. 

2. 기존의 STR을 포함한 통합된 4가지 STR framework 도입했다고 한다.

  • 이 프레임 워크를 사용하면 이전에 제안 된 STR 모듈을 광범위하게 평가하고 이전에 탐험되지 않은 모듈 조합을 발견할 수 있습니다.

3. 일관된 training과 evaluation 데이터 세트에서 정확성, 속도 및 메모리 요구 측면에서 성능에 대한 module-wise contributions를 분석합니다.

이러한 분석은 기존 모듈의 성능 향상을 이해하기 위해 현재 비교의 장애를 제거합니다. 우리의 코드는 공개적으로 사용 가능합니다.

 

1. Introduction

Optical Character Recognition (OCR)은 cleaned  documents에서 성공적이지만 

하지만 ocr methods 는 real world의 데이터 부분에서 문제가 있다. 

scene text recognition (STR)

 

multi-stage pipelines => 각 stage에서 deep nerual network 

다양한 stage에서 다양한 기술을 사용하였다. 이전 방법은 multi-stage pipelines을 제안했으며 각 stage은 심층 신경망입니다. 특정 문제를 해결합니다. 예를 들어 RCNN은 서로 다른 문자 수를 처리하고 CTC는 문자 수를 구분합니다. 변환 모듈은 입력을 직선 텍스트로 정규화하여 곡선 텍스트를 처리하는 다운 스트림 모듈의 부담을 줄입니다.

 

그러나 일부 논문에서는 서로 다른 평가 및 테스트 환경을 제안하여보고 된 수치를 비교하기 어렵 기 때문에 새로 제안 된 모듈이 현재 성능을 향상시키는 지 여부 또는 방법을 평가하기가 어렵습니다. 우리는 1) 훈련 세트와 2) 테스트가 서로 다른 방법 사이에 편향되어 있음을 관찰합니다. 예를 들어, 서로 다른 작업에서 IC13 데이터 세트의 서로 다른 하위 집합을 평가 세트로 사용하므로 평가 차이의 15 % 이상이 발생할 수 있으므로 서로 다른 모델 간의 성능을 공정하게 비교하는 데 방해가됩니다. =>서로 른 평가 및 테스트 환경이고 데이터세트도 다르기 떄문에 모델 간의 성능은 공정하기 잖다.

 

우리의 논문은 다음과 같은 주요 기여를 통해 이러한 문제를 해결합니다.

먼저이 STR 문서에서 일반적으로 사용되는 모든 훈련 데이터와 검증 데이터 세트를 분석했습니다. =>dataset 

STR 데이터 세트 사용에 대한 불일치 및 이유 노출. 예를 들어, IC03 데이터 세트에서 7 개의 누락 된 예제와 IC13 데이터 세트에서 158 개의 누락 된 예제를 발견했습니다. 우리는 STR 데이터 세트에 대한 작업을 연구했으며 표 1에서 불일치로 인해 비교할 수없는 결과가 발생했음을 보여주었습니다.

둘째, 기존 방법에 대한 공통적 인 관점을 제공하기 위해 STR에 대한 통합 아키텍처를 제안합니다. 구체적으로 STR 모델을 변환 (Trans.), 특징 추출 (Feats.), 시퀀스 모델링 (Seq.), 예측 (Pred.) 등 4 가지 연속 단계로 나눕니다.이 아키텍처는 기존 방법을 제공 할뿐만 아니라 , 가능한 변형을 제공하고 모듈 간의 기여도에 대한 광범위한 분석을 수행합니다.

마지막으로 통합 실험 설정에서 정확도, 속도 및 메모리 요구 사항에 대한 모듈의 기여도를 연구했습니다. 이 연구에서 우리는 독립 모듈의 기여도를보다 엄격하게 평가하고 최고의 성능을 향상시키기 위해 이전에 무시되었던 모듈 조합을 제안합니다. 또한 STR 작업의 기존 과제를 지적하기 위해 표준 데이터 세트의 오류 예를 분석했습니다.

Table 1: Performance of existing STR models with their inconsistent training and evaluation settings. This inconsistency hinders the fair comparison among those methods. We present the results reported by the original papers and also show our re-implemented results under unified and consistent setting. At the last row, we also show the best model we have found, which shows competitive performance to state-of-the-art methods. MJ, ST, C, and, PRI denote MJSynth [11], SynthText [8], Character-labeled [4, 30], and private data [3], respectively. Top accuracy for each benchmark is shown in bold.

2. Dataset Matters in STR

이전 작업에서 사용 된 다양한 교육 및 평가 데이터 세트를 확인하고 이들 간의 차이점을 해결했습니다. 작업 별 데이터 세트 구성 및 사용의 차이를 강조하고 성과 비교의 불일치로 인한 편차를 조사합니다.

 

 

2.1. Synthetic datasets for training

• MJSynth (MJ) [11] : 8.9M word box images

• SynthText (ST) [8] : STR에 대한 텍스트 상자를 자르면 문자 및 숫자가 아닌 문자를 자르고 필터링합니다. 4.2는 훈련 세트가 최종 성과에 미치는 영향을 설명합니다. 향후 STR 연구는 훈련 세트를 명확하게 표시하고 동일한 훈련 세트를 사용하는 것이 좋습니다.

 

렌더링 또는 이미지 합성(rendering 또는 image synthesis)은 컴퓨터 프로그램을 사용하여 모델 또는 이들을 모아놓은 장면인 씬 파일(scene file)로부터 영상을 만들어내는 과정을 말한다. ko.wikipedia.org/wiki/%EB%A0%8C%EB%8D%94%EB%A7%81

 

3차원 모델링 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 3차원 모델링(영어: 3D modeling)은 컴퓨터가 이해할 수 있는 형태의 데이터로 저장된다. 3차원 모델은 일반적으로 렌더링 과정을 통해 실제 물체와 비슷한 모양과

ko.wikipedia.org

 

2.2. Real-world datasets for evaluation

regular datasets:

• IIIT5K-Words (IIIT)

• Street View Text (SVT)

 ICDAR2003 (IC03) [20]  860 867

irregular datasets:

• ICDAR2015 (IC15) [13]

• SVT Perspective (SP)

• CUTE80 (CT) [23]

different benchmark datasets. Specifically, the evaluation has been conducted on different versions of benchmarks in IC03, IC13 and IC15. In IC03, 7 examples can cause a performance gap by 0.8% that is a huge gap when comparing those of prior performances. In the case of IC13 and IC15, the gap of the example numbers is even bigger than those of IC03.

 

3. STR Framework Analysis

scene text recognition (STR) framework  4 개의 모듈, 각 모듈의 옵션에 대해 설명합니다.

 

STR 작업과 컴퓨터 비전 작업 (예 : 표적 탐지) 및 시퀀스 예측 작업 사이의 유사성으로 인해 STR은 CNN 및 RNN의 고성능 이점을 누릴 수 있습니다. STR을위한 CNN과 RNN의 첫 번째 조합은 입력 이미지에서 CNN 특징을 추출하고 RNN을 사용하여 강력한 시퀀스 감지를 위해 재구성하는 CRNN (Convolutional-Recurrent Neural Network)입니다. CRNN 이후에는 성능 향상을 위해 여러 변형이 사용됩니다. 모든 모양의 텍스트 지오메트리에 대해 변환 모듈은 텍스트 인스턴스를 표준화 할 것을 제안합니다. 고유 한 차원과 잠재 요인이 높은 복잡한 텍스트 이미지를 처리하기 위해 향상된 CNN 기능 추출기가 사용됩니다. 또한 추론 시간을 고려하여 일부 방법은 RNN 단계를 생략합니다. 문자 시퀀스 검출 능력을 향상시키기 위해 어텐션 메커니즘에 기반한 디코더가 제안된다.

 

기존 STR 모델에서 가져온 4 개의 모듈은 다음과 같습니다.

1. Transformation (Trans.) normalizes the input text image using the Spatial Transformer Network (STN [12]) to ease downstream stages. =>STN (Spatial Transformer Network)을 사용하여 데이터를 정규화하여 나중 단계의 어려움을 완화하십시오.

2. Feature extraction (Feat.) maps the input image to a representation that focuses on the attributes relevant for character recognition, while suppressing irrelevant features such as font, color, size, and background.=>문자 인식 관련 속성에 초점을 맞출 수있는 표현에 입력 이미지를 매핑하고 글꼴 색상 크기 배경과 같은 관련없는 기능을 억제합니다.

3. Sequence modeling (Seq.) captures the contextual information within a sequence of characters for the next stage to predict each character more robustly, rather than doing it independently. =>문자 시퀀스에서 컨텍스트 정보를 캡처하는 것은 다음 단계에서 각 문자를 독립적으로 예측하는 것이 아니라 더 강력하게 예측하는 데 사용됩니다.

4. Prediction (Pred.) estimates the output character sequence from the identified features of an image. =>인식 된 이미지 특징을 기반으로 출력 문자 시퀀스를 추정합니다.

그림 3은 개요로 제공되며이 기사에서 사용 된 모든 아키텍처는 보충 자료에서 찾을 수 있습니다.

 

Figure 3: Visualization of an example flow of scene text recognition. We decompose a model into four stages.

3.1. Transformation stage

입력 된 그림 X는 정규화 된 그림 X '로 변환됩니다. 자연스러운 장면의 텍스트 이미지는 곡선 및 비스듬한 텍스트와 같은 다른 모양을 가지고 있습니다. 이러한 입력 이미지가 변경되지 않으면 다음 특징 추출 단계에서 이러한 기하학적 모양의 불변 표현에 대해 학습해야합니다. 이 부담을 줄이기 위해. 공간 변환 네트워크 (STN)의 변형 인 TPS (Thin-plate spline) 변환은 다양한 종횡비의 텍스트 라인을 처리 할 수있는 유연성 때문에 적용됩니다. TPS는 일련의 참조 점에서 부드러운 스플라인 보간을 사용합니다. 보다 정확하게는 TPS는 상단 및 하단 경계 지점에서 여러 참조 지점을 찾아 텍스트 영역을 미리 정의 된 사각형으로 정규화합니다.

 

3.2. Feature extraction stage

이 단계에서 CNN은 입력 이미지를 추출하여 시각적 특징 맵을 출력합니다. 연구 VGG, RCNN 및 ResNet의 세 가지 아키텍처가 사용됩니다. ->feature map

 

jeinalog.tistory.com/13

 

Transfer Learning|학습된 모델을 새로운 프로젝트에 적용하기

#Transfer Learning #전이학습 #CNN #합성곱 신경망 #Image Classification #이미지 분류 이 글은 원작자의 허락 하에 번역한 글입니다! 중간 중간 자연스러운 흐름을 위해 의역한 부분들이 있습니다. 원 의미�

jeinalog.tistory.com

일반적인 CNN은 다음 두 가지 파트로 구성되어 있습니다.

  • Convolutional base
    합성곱층과 풀링층이 여러겹 쌓여있는 부분입니다. convolutional base의 목표는 이미지로부터 특징을 효과적으로 추출하는 것 (feature extraction) 입니다. 합성곱층과 풀링층에 대한 직관적인 설명을 보시려면 Chollet (2017) 논문을 참고하세요.

  • Classifier
    주로 완전 연결 계층 (fully connected layer)로 이루어져 있습니다. 완전 연결 계층이란 모든 계층의 뉴런이 이전 층의 출력 노드와 하나도 빠짐없이 모두 연결되어 있는 층을 말합니다. 분류기(Classifier)의 최종 목표는 추출된 특징을 잘 학습해서 이미지를 알맞은 카테고리로 분류하는 것 (image classification) 입니다.

 

3.3. Sequence modeling stage

Feat. 스테이지에서부터 추출 된 특징은 시퀀스 정보로 변환되며, 특징 맵의 각 열은 시퀀스 구조로 사용됩니다. 이 시퀀스에는 컨텍스트 정보가 없을 수 있습니다. 이전 방법은 BiLSTM을 사용하여 더 나은 시퀀스 H를 얻습니다. 반면 Rosetta는 계산 복잡성과 메모리 소비를 줄이기 위해 BiLSTM를 삭제했습니다. 우리의 프레임 워크는 BiLSTM을 허용하거나 사용하지 않습니다.

주로 BiLSTM, RNN은 단방향 인 CNN의 기능에서 추가 기능을 주로 추출합니다.

 

3.4. Prediction stage

이 단계에서 입력 H에서 모듈은 문자 시퀀스를 예측합니다. 이전 방법을 요약하면 예측을위한 두 가지 선택이 있습니다. (1) CTC (2) Atn.

CTC는 가변 개수의 특징을 예측할 수 있습니다. 고정 된 개수의 특징이 주어 지더라도 CTC 방법의 핵심은 각 열의 문자를 예측하고 반복되는 문자와 공백을 제거하여 전체 문자 시퀀스를 가변 길이의 문자 스트림으로 개선하는 것입니다.

반면 Atn 기반 방법은 입력 시퀀스의 정보 흐름을 자동으로 캡처하여 출력 시퀀스를 예측합니다. STR 모델은 출력 클래스의 종속성을 표현하기 위해 문자 수준 언어 모델을 학습 할 수 있습니다.

 

  • CTC(Connectionist Temporal Classification) : 고정된 개수의 feature가 주어지더라도 고정되지 않은 수의 sequence를 예측할 수 있음 -> 각 H의 열에 있는 문자를 예측하고 반복되는 문자와 공백을 삭제하여 full character sequence를 고정되지 않은 문자 스트림으로 수정함

  • Attn(Attention-based sequence prediction) : output sequence를 예측하기 위해 input sequence 내의 information flow를 캡쳐함

 

 

4. Experiment and Analysis

이 모듈에는 가능한 모든 STR 모델 조합 (2 x 3 x 2 x 2 = 24)에 대한 평가 및 분석이 포함됩니다. 모든 평가는 2 단계에 나열된 교육 및 평가 데이터 세트에 따라 수행됩니다.

 

4.1. Implementation detail

STR training and model selection:

training data: MJSynth 8.9 M and SynthText 5.5 M (14.4 M in total)

AdaDelta [31] optimizer, whose decay rate is set to ρ = 0.95

training batch size : 192 and the number of the iterations is 300k

validation data : IC13, IC15, IIIT, and SVT

   IC03 train data 사용X : IC13와 겹친다 (34 scene images = 215 word boxes)

   2000 training steps마다 validate한다. (set에서 가장 높은 정확도를 가지는 model을 택함)

Evaluation metrics:

a unified evaluation dataset (8,539 images in total); 3,000 from IIIT, 647 from SVT, 867 from IC03, 1015 from IC13, 2,077 from IC15, 645 from SP, and 288 from CT

only alphabets & digits

5trials(매번 random seeds를 다르게 초기화)를 통해 accuracy의 평균 구함

Environment:

same environment: an Intel Xeon(R) E5-2630 v4 2.20GHz CPU, an NVIDIA TESLA P40 GPU, and 252GB of RAM. All experiments are performed with NAVER Smart Machine Learning (NSML) platform [15].

 

4.2. Analysis on training datasets

MJSynth와 SynthText를 각각 사용하는 것보다 둘의 combination으로 train하였을 때, 더 높은 accuracy를 보인다는 것을 확인하였다. (자신들의 best model로 실험한 결과, 약 4.1% 더 높았다)

MJSynth 20% (1.8M) + SynthText 20% (1.1M)의 조합(2.9M으로 SynthText의 반 크기)으로 하였을 때 각각 사용한 것보다 더 좋은 accuracy를 보였다. 다시말해, training images의 개수보다는 training data의 다양성이 더 중요하다는 것을 알 수 있다.

 

4.3. Analysis of trade-offs for module combinations

  • accuracy-time trade-offs
    : T1 ~ T5까지 ResNet, BiLSTM, TPS, Attn 순서대로 추가
    • ResNet, BiLSTM, TPS : 속도가 늦어지는 반면 정확도가 빠르게 높아짐(+13.4%)
    • Attn : 속도가 많이 늦어진 만큼 정확도가 높아지지 않음(+1.1%)
  • accuracy-memory trade-offs
    : P1 ~ P5까지 Attn, TPS, BiLSTM, ResNet 순서대로 추가
    • Attn, TPS, BiLSTM : 메모리 사용을 크게 하지 않음 -> 가벼우면서도 정확성 높여줌
    • ResNet : 메모리를 많이 사용하지만(7.2M -> 49.6M) 그 만큼 정확도가 높아지지 않음(+1.7%)
  • accuracy-speed는 prediction(CTC/Attn), accuracy-memory는 feature extrator(ResNet)에서 영향을 크게 미치므로 필요에 따라 선택해야 한다.

Figure 4: Two types of trade-offs exhibited by STR module combinations. Stars indicate previously proposed models and circular dots represent new module combinations evaluated by our framework. Red solid curves indicate the trade-off frontiers found among the combinations. Tables under each plot describe module combinations and their performance on the tradeoff frontiers. Modules in bold denote those that have been changed from the combination directly before it; those modules improve performance over the previous combination while minimizing the added time or memory cost.
Figure 5: Color-coded version of Figure 4, according to the prediction (left) and feature extraction (right) modules. They are identified as the most significant factors for speed and memory, respectively.

4.4. Module analysis

  • accuracy-time ResNet, BiLSTM, TPS, Attn 순서대로 upgrade하였을 때 가장 효율적이었다. (T1 -> T5)

  • accuracy-memory RCNN, Attn, TPS, BiLSTM, ResNet 순서대로 upgrade하였을 때 가장 효율적이었다. (P1 -> P5)

서로 반대 순서로 upgrade하였을 때 효율적이지만, 결과적으로 가장 효율적이 combination(TPS-ResNet-BiLSTM-Attn)은 동일하다.

 

Figure 6: Samples of failure cases on all combinations of our framework.

 

Figure 7: Challenging examples for the STR combinations without a specific module. All STR combinations without the notated modules failed to recognize text in the examples, but upgrading the module solved the problem.

 

  • TPS transformation : curved and perspective texts를 normalize하여 standardized view로 변환함

  • ResNet feaure extrator : 표현력 향상 (심한 배경 혼란, 처음 보는 font의 경우 개선됨)

  • BiLSTM sequence modeling : 관련없는데 잘라진 문자를 무시함

  • Attn prediction : 사라지거나 누락된 문자를 찾음

4.5. Failure case analysis

 

  • Calligraphic Fonts : 브랜드 font, 가게 이름
    • 정규화하는 feature extrator 사용하자!
    • font가 overfitting될 수 있으므로 regularization 하자!
  • Vertical Texts : 현재 대부분 horizontal text image 제공

  • Special Characters : 현재 이러한 case train안함 -> alphanumeric characters로 취급하여 fail
    • 그냥 sepcial character train하자! (IIIT에서 87.9% -> 90.3%로 정확도 오름)
  • Heavy Occlusions : 현재 문맥정보를 광범위하게 사용하지 않음

  • Low Resolution : 현재 다루지 않음
    • image pyramids
    • super-resolution modules
  • Label Noise : incorrect labels 찾음
    • mislabeling (special characters 포함x) 1.3%
    • mislabeling (special characters 포함) 6.1%
    • mislabeling (case-sensitive) 24.1%

5. Conclusion

이 논문은 일관되지 않은 실험 설정 때문에 문제가 있던 STR model의 기여도를 분석하였다. 주요 STR method 중 공통 framework와 일관된 dataset(7 banchmark evaluation dataset + 2 training dataset)을 소개하여, 공정한 비교를 제공하였다.

 

hryang06.github.io/str/STR/

 

STR - What is Wrong with Scene Text Recognition Model Comparisons? Dataset and Model Analysis

What Is Wrong With Scene Text Recognition Model Comparisons? Dataset and Model Analysis 논문 정리입니다.

hryang06.github.io

 

https://data-newbie.tistory.com/156

 

What is wrong with scene text recognition model comparisons? dataset and model analysis (네이버 논문) - 1

https://arxiv.org/abs/1904.01906 https://github.com/clovaai/deep-text-recognition-benchmark?fbclid=IwAR1JQZMgF39xFWbiZUNFmvbgyPX1x6hKkFmqSSbG4szytZUFqYuKa7m3nNc 갓 네이버에서 OCR 관련 논문을 내주셨..

data-newbie.tistory.com

동일한 작업과 데이터로 CRNN 웨이브를 훈련 한 후이 기사의 프레임 워크를 훈련했기 때문에

CRNN에는 이전 Transformation 부분이 없으며 CTC는 뒤에 손실에 사용됩니다.

이 기사의 TRBA (TPS-Resnet-BiLSTM-Attn)는 이전 변환을 추가하여 데이터의 저 차원 통합을 만들 수 있습니다.

동시에 CTC 손실은 문자의 실제 길이에 대한 제어가별로 좋지 않다고 생각합니다 .CRNN에 비해 TRBA는 훨씬 더 높은 정확도 (데이터 세트의 70 %에서 88 %로)를 제공합니다. 주된 이유는 CTC를 Attn 손실로 변경하는 것입니다.

 

 

1. 일관 되지 않은 데이터

2. 4가지 단계

3. 성능 측정

대상 : 일관되지 않은 데이터나 여러가지 데이터를 Scene Text Recognition 

도구 : 4stage에 사용하는 모델들

방법 : 같은 환경에서 dataset 으로 4 stage에서 사용하거나 다른 모델을 사용하여 정확도 , 시간 , 메모리 등을 비교

 

 

Fig. 5: Overview of segmentation-free STR approach. Image preprocessing and sequence modeling stages are not necessarily required. Moreover, elements of image preprocessing can be combined to further improve recognition performance.

위 표 출처 :Text Recognition in the Wild: A Survey

 

3.4. Prediction Stage

  이 단계의 모듈은 입력 H로 부터 일련의 문자를 예측한다. 이전 연구를 종합해 보면 다음과 같이 두 가지 예측 옵션이 있다.

 

  1) CTC (Connectionist Temporal Classificaton) [6]

    -> CTC는 일정한 수의 Feature를 통해, 일정하지 않은 갯수의 시퀀스 예측을 한다.

    -> 주요 방법 : 각 열에서 문자를 예측하고, 반복된 문자와 공백을 삭제하여 전체 문자 순서를 비고정 문자 흐름으로 수정

 

  2) Attn (Attention-based Sequence Prediction) [25, 4]

    -> Attn은 입력 시퀀스 내의 정보 흐름을 자동으로 캡쳐하여, 출력 시퀀스[1]를 예측한다. 

    -> Attn은 STR 모델이 출력 클래스 의존성을 나타내는 문자 수준의 언어 모델을 학습할 수 있도록 한다. 

ropiens.tistory.com/23

 

What Is Wrong With Scene Text Recognition Model Comparisons? Dataset and Model Analysis

논문 주제 : 딥러닝 -> 텍스트 인식(STR 분야, OCR 학습 모델) 작성자 : 한양대학원 융합로봇시스템학과 유승환 석사과정 2019년 12월 18일, 네이버 클로바 AI 연구팀에서 발행한 논문 "What Is Wrong With Sce

ropiens.tistory.com

 

반응형
반응형

Abstract

우리는 mobile and embedded vision applications 효율적인 모델 클라스 제시하며 MobileNets이라고 한다. MobileNets은 streamlined architecture을 기반으로 하고 ,  depthwise separable convolutions  을 사용하여 light weight deep neural networks 로 만들었다. 우리는 두가지 간단한 latency and accuracy사이에서의 global hyperparameters that efficiently trade off 를 소계한다. 이러한 hyper-parameters를 통해 model builder는 문제의 제약 조건에 따라 애플리케이션에 맞는 올바른 크기 모델을 선택할 수 있다. 또한 리소스 및 정확도 절충에 대한 저자의 광범위한 실험은 MobileNet이 ImageNet 분류 문제 및 기타 인기있는 모델에서 매우 강력한 성능을 가지고 있음을 보여준다. 그런 다음 저자는 object detection, finegrain classification, face attributes and large scale geo-localization을 포함한 광범위한 애플리케이션 시나리오에서 MobileNet의 효율성을 입증했다.

finegrain classification : 세밀하게 구분하는것 

 

1. Introduction

AlexNet [19] popularized deep convolutional neural networks 가 ImageNet Challenge ILSVRC 2012 [24]. 에서 우승을 그듭한후 Convolutional neural network은 computer vision에서 어디에서 있는 모습을 드러냈다.  더 깊거나 더 복잡한 networks은 높은 정확도 [27, 31, 29, 8] 를 가질 수 있다 .  

[27] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014. 1, 6

[31] C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z. Wojna. Rethinking the inception architecture for computer vision. arXiv preprint arXiv:1512.00567, 2015. 1, 3, 4, 7

[29] C. Szegedy, S. Ioffe, and V. Vanhoucke. Inception-v4, inception-resnet and the impact of residual connections on learning. arXiv preprint arXiv:1602.07261, 2016. 1

[8] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385, 2015. 1

 

논문에서는  efficient network architecture와  mobile and embedded vision applications모델에서 아주 작고, low latency 을 만들기 위한 두가지 hyper-parameters  들을 소계한다. 

Section 2 : small models을 만들기 위한 prior work

Section 3 : describes the MobileNet architecture and two hyper-parameters width multiplier and resolution multiplier to define smaller and more efficient MobileNets

Section 4 describes experiments on ImageNet as well a variety of different applications and use cases. => 경험적으로 연구 결과 

Section 5 closes with a summary and conclusion. => 결론

 

2. Prior Work

building small and efficient neural networks in the recent literature

pretrained networks or training small networks directly

choose a small network that matches the resource restrictions (latency, size) for their application

mobilenet 기본적으로 optimnizing for latency, samll networks에 관심을 한다.

하지만 매우 많은 논문에서는 small networks에만 집중을 하고 속도에 고려 하지 않는다.

 

MobileNet은 주로 L. Sifre. Rigid-motion scattering for image classification. PhD 논문, Ph. D. 논문, 2014. 1, 3에서 처음 소개 된 deep separable convolutions로 구성되며, 마지막으로 Inception 모델에서 초기를 줄이기 위해 사용되었습니다. 여러 계층의 계산. 플랫 네트워크는 완전히 분해 된 네트워크를 통해 설정되어 네트워크를 분해 할 수있는 큰 잠재력을 보여줍니다. Factorized Networks는이 기사와 거의 관련이 없으며 분해 및 컨볼 루션과 유사한 방법과 topological 연결 사용을 소개합니다. 그런 다음 Xception 네트워크는 Inception V3보다 더 나은 네트워크 성능을 달성하기 위해 분리 가능한 컨볼 루션 커널 (텍스트의 필터, 이전 CNN 연구 노트에서 필터도 컨볼 루션 커널, 커널을 참조 함)의 깊이를 확장하는 방법을 시연했습니다. 또 다른 소규모 네트워크는 SqueezeNet입니다. 병목 방식을 사용하여 소규모 네트워크를 설계합니다. 계산량을 줄이는 다른 네트워크로는 structured transform networks和deep fried convents가 있습니다.

 

소규모 네트워크를 얻는 다른 방법은 축소하는 것입니다. 즉, 네트워크를 분해하거나 압축하고 훈련시키는 것입니다. literature의 압축 방법에는 제품 양자화, 해싱, 프 루닝, 벡터 양자화 및 Huffman 코딩이 포함됩니다. 사전 훈련 네트워크를 가속화하기 위해 제안 된 다양한 인수 분해 방법도 있습니다. 소규모 네트워크를 훈련시키는 또 다른 방법은 대규모 네트워크를 사용하여 소규모 네트워크를 가르치는 증류입니다. 증류 방법은 저자의 방법을 보완하는 것으로 섹션 4에서 예제와 함께 사용됩니다. 또 다른 새로운 방법은 low bit networks 입니다.

Figure 1. MobileNet models can be applied to various recognition tasks for efficient on device intelligence.

기존에는 pre-train된 모델을 줄였고, 주로

  • compression
  • quantization
  • hashing
  • pruning

등을 통해 모델을 줄였는데, 주로 '속도’를 위한 것이라기 보다는 네트워크 '크기’에 초점이 맞추어져 있었는데, 이 논문은 '속도’를 타겟으로 합니다.

 

3. MobileNet Architecture

우리는 먼저 the core layers that MobileNet is built on which are depthwise separable filters에 대해서 소계드린다. 그다음 the MobileNet network structure and conclude with descriptions of the two model shrinking hyperparameters width multiplier and resolution multiplier 에 대해서 소계르린다.

 

3.1. Depthwise Separable Convolution

MobileNet 모델은 표준 회선을 깊이 별 회선과 1 * 1 회선, 1 * 1 회선으로 분해하는 분해 된 회선의 한 형태 인 깊이 별 분리 가능한 회선을 기반으로합니다. pointwise convolution이라고도합니다. MobileNet의 경우 딥 컨볼 루션은 각 채널에 컨볼 루션 커널을 적용합니다. 그런 다음 점별 컨볼 루션은 1 * 1 컨볼 루션을 적용하여 출력 및 깊이 컨볼 루션을 결합합니다. 표준 컨볼 루션은 컨볼 루션 커널과 입력을 한 번에 새 출력으로 결합합니다. 깊이 분리 가능한 컨볼 루션은 필터링을위한 레이어와 결합을위한 레이어의 두 레이어로 나눕니다. 이 분해 프로세스는 계산량과 모델 크기를 크게 줄입니다.Figure 2 shows how a standard convolution 2(a) is factorized into a depthwise convolution 2(b) and a 1 × 1 pointwise convolution 2(c).

Figure 2. The standard convolutional filters in (a) are replaced by two layers: depthwise convolution in (b) and pointwise convolution in (c) to build a depthwise separable filter.

Depthwise separable convolution are made up of two layers:

depthwise convolutions and pointwise convolutions.

We use depthwise convolutions to apply a single filter per each input channel (input depth). Pointwise convolution, a simple 1×1 convolution, is then used to create a linear combination of the output of the depthwise layer. MobileNets use both batchnorm and ReLU nonlinearities for both layers.

Depthwise convolution is extremely efficient relative to standard convolution.

 

MobileNet uses 3 × 3 depthwise separable convolutions which uses between 8 to 9 times less computation than standard convolutions at only a small reduction in accuracy as seen in Section 4.

MobileNets는 3 * 3 깊이 분리형 컨볼 루션을 사용하므로 표준 컨볼 루션을 사용하는 것보다 계산량이 8-9 배 감소합니다.

공간 차원의 추가 분해는 깊이 컨볼 루션의 계산량이 본질적으로 작기 때문에 계산량을 너무 많이 줄이지 않습니다.

 

3.2. Network Structure and Training

앞서 언급했듯이 MobileNet 구조는 첫 번째 레이어가 완전 컨볼 루션 레이어라는 점을 제외하고는 분리 가능한 깊은 컨볼 루션을 기반으로합니다. 이러한 간단한 방법으로 네트워크를 정의하면 네트워크 토폴로지를 탐색하여 좋은 네트워크를 찾을 수 있습니다. 표 1은 MobileNet의 아키텍처입니다. 비선형 활성화 함수가 없지만 분류를 위해 소프트 맥스 계층에 직접 입력되는 최종 완전 연결 계층을 제외하고 모든 계층은 batchnorm 및 ReLU 비선형 활성화 함수입니다. 그림 3은 표준 컨볼 루션과 깊이 분리 가능한 컨볼 루션을 비교하며, 둘 다 batchnorm 계층과 ReLU 비선형 활성화 함수를 따릅니다. 딥 컨볼 루션 레이어와 첫 번째 레이어 모두 다운 샘플링을 처리 할 수 ​​있습니다. 최종 평균 풀링 계층은 완전히 연결된 계층 이전의 공간 차원을 1로 줄입니다. Deep convolution과 point-by-point convolution을 독립적 인 레이어로 생각하십시오 .MobileNet에는 (1 + 13 * 2 + 1 = 28) 레이어가 있습니다.

Table 1. MobileNet Body Architecture
Figure 3. Left: Standard convolutional layer with batchnorm and ReLU. Right: Depthwise Separable convolutions with Depthwise and Pointwise layers followed by batchnorm and ReLU.
Table 2. Resource Per Layer Type

적은 수의 다중 추가를 통해 네트워크를 정의하는 것만으로는 충분하지 않습니다. 이러한 작업을 효율적으로 구현할 수 있는지 확인하는 것도 중요합니다. 예를 들어, 비정형 희소 행렬 연산은 일반적으로 희소 행렬의 정도가 충분하지 않으면 조밀 행렬 연산보다 빠르지 않습니다. 저자의 모델 구조는 거의 모든 계산 복잡성을 1 * 1 컨볼 루션에 넣습니다. 이는 고도로 최적화 된 GEMM (General Matrix Multiplication)을 통해 달성 할 수 있습니다. 일반적으로 회선은 GEMM에 의해 구현되지만 im2col이라는 메모리에서 초기 정렬도 필요합니다. 예를 들어,이 방법은 인기있는 Caffe 패키지에서 유용합니다. 1 * 1 컨볼 루션은 메모리에서 이러한 정렬이 필요하지 않으며 가장 최적화 된 수치 선형 대수 알고리즘 중 하나 인 GEMM에 의해 직접 구현 될 수 있습니다. MobileNet은 1 * 1 컨볼 루션에서 계산 시간의 95 %를 소비하며 매개 변수의 75 %도 포함합니다 (표 2). 거의 모든 추가 매개 변수는 완전 연결 계층에 있습니다.

 

MobileNet 모델은 Inception V3과 유사한 비동기 경사 하강 법 RMSprop를 사용하여 TensorFlow에서 학습됩니다. 그러나 큰 모델을 훈련하는 것과는 반대로, 작은 모델은 과적 합하기 쉽지 않기 때문에 저자는 정규화 및 데이터 증가 기술을 덜 사용합니다. MobileNet을 훈련 할 때 저자는 side headslabel smoothing을 사용하지 않고 이미지 왜곡을 줄이기 위해 대규모 Inception 훈련에 사용되는 작은 자르기 크기를 사용했습니다. 또한 저자는 depthwise filters에 매개 변수가 거의 없기 때문에 weight decay(L2 정규화)를 적게 또는 전혀 두지 않는 것이 중요하다는 것을 발견했습니다. 다음 섹션의 ImageNet 벤치 마크에서 모든 모델은 동일한 매개 변수로 학습되지만 모델의 크기는 고려되지 않습니다.

 

3.3. Width Multiplier: Thinner Models

기본 MobileNet 아키텍처는 충분히 작고 대기 시간이 충분히 낮지 만 특정 사용 사례 또는 애플리케이션은 모델을 더 작고 빠르게 만들 수 있습니다. 더 작고 계산 비용이 덜 드는 모델을 만들기 위해 저자는 폭 승수 α라는 간단한 매개 변수를 도입했습니다. 그 기능은 네트워크의 각 계층에 대한 부담을 균등하게 줄이는 것입니다. 주어진 레이어 및 폭 승수 α에 대해 입력 채널 M은 αM이되고 출력 채널은 αN이됩니다.

 

Width multiplier는 모든 모델 구조에서 사용되어 합리적인 정확도, 지연 및 크기로 새롭고 작은 모델을 정의 할 수 있습니다. 재교육이 필요한 새로운 단순화 된 구조를 정의하는 데 사용됩니다.

 

3.4. Resolution Multiplier: Reduced Representation

신경망의 계산 비용을 줄이는 두 번째 하이퍼 파라미터는 resolution multiplier ρ 입니다. 작성자는이 매개 변수를 입력 이미지에 적용하고 각 레이어의 내부 특징을 동일한 승수로 뺍니다. 실제로 저자는 입력 해상도를 설정하여 암시 적으로 ρ를 설정합니다.

Table 3. Resource usage for modifications to standard convolution. Note that each row is a cumulative effect adding on top of the previous row. This example is for an internal MobileNet layer with DK = 3, M = 512, N = 512, DF = 14.

MobileNet의 일반적인 레이어를 예로 살펴보고 width multiplierresolution multiplier를 사용한 깊이 분리형 컨볼 루션이 비용과 매개 변수의 양을 줄이는 방법을 확인할 수 있습니다. 표 3은 다른 프레임 워크 축소 방법이이 계층에 적용될 때 계산량과 매개 변수 수를 보여줍니다. 첫 번째 줄은 완전 연결 계층에서 Mult-Adds의 수와 매개 변수입니다. 입력 특성 맵 크기는 14 * 14 * 512이고 컨볼 루션 커널 크기는 3 * 3 * 512 * 51입니다. 다음 섹션에서는 모델 리소스와 정확성 간의 타협에 대한 세부 정보를 볼 수 있습니다.

width multiplier는 논문에서 α로 표현하였고 인풋과 아웃풋의 채널에 곱해지는 값입니다

반면 resolution multiplier는 인풋의 height와 width에 곱해지는 상수값입니다. 

 

4. Experiments

이 섹션에서는 먼저 압축 모델을 선택하기 위해 레이어 수를 줄이는 대신 딥 컨볼 루션의 영향을 탐색하고 네트워크 폭을 줄입니다. 그런 다음 네트워크는 width multiplierresolution multiplier라는 두 개의 하이퍼 파라미터를 기반으로 축소되고 현재 주류 모델과 비교됩니다. 그런 다음 다양한 애플리케이션에서 MobileNet의 애플리케이션을 논의합니다

 

4.1. Model Choices

첫째, 깊은 분리 가능한 컨볼 루션과 완전 컨볼 루션 모델을 사용한 MobileNet의 결과를 비교합니다. 표 4는 ImageNet에서 심도 분리 가능 컨볼 루션을 사용하는 정확도가 전체 컨볼 루션에 비해 1 % 만 감소하지만 다중 추가 및 매개 변수의 수가 크게 감소 함을 보여줍니다.

 

그런 다음 저자는 width multiplier를 사용하는 더 얇은 모델과 더 적은 레이어를 사용하는 더 얕은 모델의 결과를 비교했습니다. MobileNet을 더 얕게 만들기 위해 표 1에서 분리 가능한 컨볼 루션 커널의 5 개 계층이 제거되었습니다 (기능 크기 : 14 * 14 * 512). 표 5는 계산 및 매개 변수의 양이 유사한 경우 Thinner의 MobileNet의 정확도가 얕은 모델보다 3 % 더 높다는 것을 보여줍니다.

 

 

4.2. Model Shrinking Hyperparameters

표 6은 width multiplier α를 사용하여 MobileNet 아키텍처를 축소 한 후 정확도, 계산량 및 크기 간의 균형을 보여줍니다. 모델이 작아지면 정확도가 떨어집니다.

표 7은 reduced input resolutions로 MobileNet을 훈련 할 때 다른 resolution multiplier ρ 값의 정확도, 계산량 및 크기 사이의 절충안입니다. 해상도가 낮아지면 정확도가 감소합니다.

Figure 4 shows the trade off between ImageNet Accuracy and computation for the 16 models made from the cross product of width multiplier α ∈ {1, 0.75, 0.5, 0.25} and resolutions {224, 192, 160, 128}. Results are log linear with a jump when models get very small at α = 0.25.

Figure 4. This figure shows the trade off between computation (Mult-Adds) and accuracy on the ImageNet benchmark. Note the log linear dependence between accuracy and computation.

Figure 5 shows the trade off between ImageNet Accuracy and number of parameters for the 16 models made from the cross product of width multiplier α ∈ {1, 0.75, 0.5, 0.25} and resolutions {224, 192, 160, 128}.

Figure 5. This figure shows the trade off between the number of parameters and accuracy on the ImageNet benchmark. The colors encode input resolutions. The number of parameters do not vary based on the input resolution.

Table 8 compares full MobileNet to the original GoogleNet [30] and VGG16 [27]. MobileNet is nearly as accurate as VGG16 while being 32 times smaller and 27 times less compute intensive. It is more accurate than GoogleNet while being smaller and more than 2.5 times less computation.

Table 9 compares a reduced MobileNet with width multiplier α = 0.5 and reduced resolution 160 × 160. Reduced MobileNet is 4% better than AlexNet [19] while being 45× smaller and 9.4× less compute than AlexNet. It is also 4% better than Squeezenet [12] at about the same size and 22× less computation.

 

 

4.3. Fine Grained Recognition

 fine-grained image classification은 무엇일까? 새의 종, 꽃의 종, 동물의 종 또는 자동차의 모델 같이 구분하기 어려운 클래스들을 분류하는 과제다. 

bskyvision.com/643

 

image classification과 fine-grained image classification의 차이

image classification은 이미지가 개에 관한 것인지, 고양이에 관한 것인지, 사람에 관한 것인지, 자동차에 관한 것인지 분류하는 컴퓨터 비전 과제다. 그렇다면 fine-grained image classification은 무엇일까?.

bskyvision.com

4.4. Large Scale Geolocalizaton

4.5. Face Attributes

4.6. Object Detection

4.7. Face Embeddings

 

=>

상용화를 위하여 필요한 여러가지 제약 사항을 개선시키기 위하여 경량화 네트워크

가벼운 네트워크 

small and latency

 

  • Channel Reduction : MobileNet 적용
    • Channel 숫자룰 줄여서 경량화
  • Depthwise Seperable Convolution : MobileNet 적용
    • 이 컨셉은 Xception에서 가져온 컨셉이고 이 방법으로 경량화를 할 수 있습니다.
  • Distillation & Compression : MobileNet 적용
  • Remove Fully-Connected Layers
    • 파라미터의 90% 정도가 FC layer에 분포되어 있는 만큼 FC layer를 제거하면 경량화가 됩니다.
    • CNN기준으로 필터(커널)들은 파라미터 쉐어링을 해서 다소 파라미터의 갯수가 작지만 FC layer에서는 파라미터 쉐어링을 하지 않기 때문에 엄청나게 많은 수의 파라미터가 존재하게 됩니다.
  • Kernel Reduction (3 x 3 → 1 x 1)
    • (3 x 3) 필터를 (1 x 1) 필터로 줄여서 연산량 또는 파라미터 수를 줄여보는 테크닉 입니다.
    • 이 기법은 대표적으로 SqueezeNet에서 사용되었습니다.

 

 

 

[논문] MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications

참조사항:

gaussian37.github.io/dl-concept-mobilenet/

 

MobileNets - Efficient Convolutional Neural Networks for Mobile Vision Applications

gaussian37's blog

gaussian37.github.io

openresearch.ai/t/mobilenets-efficient-convolutional-neural-networks-for-mobile-vision-applications/20

 

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

구글에서 나온 논문입니다. 모바일에서(내지는 cpu에서) realtime으로 network forward가 되는 결과를 보여줍니다. Key Idea는 Convolution Layer가 무거우니 이를 줄일건데, 일종의 Factorization을 제시합니다. Dep

openresearch.ai

blog.csdn.net/qq_31914683/article/details/79330343

 

【论文学习】MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Applications_斯丢劈德的博客-CSDN

MobileNets是谷歌公司在2017年发布的一种可以在手机等移动终端运作的神经网络结构。 论文地址:点击打开链接 作者给出了移动端和嵌入式视觉应用的MobileNets模型。MobileNets基于流线型结构设计,�

blog.csdn.net

 

반응형
반응형

Franc¸ois Chollet Google, Inc. fchollet@google.com 

Xception: Deep Learning with Depthwise Separable Convolutions

 

Abstract

우리는 이 논문에서는 Inception module을 regular convolution과 depthwise separable convolution(depthwise convolution 뒤에 pointwise convolution이 뒤따르는 형태이다.)의 중간 단계로 해석하는 것을 제시한다. 이러한 관점에서 depthwise separable convolution은 가장 많은 수의 tower가 있는 inception module로 볼 수 있다. 이러한 통찰은 Inception 기반의 새로운 CNN 구조를 제안하는데 기여됐다. 새로운 구조에서는 Inception module들이 depthwise separable convolution으로 대체된다. Xception이라 부르는 이 아키텍처는, ImageNet datasett (which Inception V3 was designed for)에서 Inception-V3보다 성능이 약간 좋았으며, 3.5억개의 이미지와 17000개의 class로 구성된 dataset에서는Inception-V3보다 훨씬 뛰어난 성능을 보였다. Xception 구조는 Inception-V3과 동일한 수의 parameter를 가지므로, 성능의 향상은 capacity의 증가가 아닌, 모델 parameter의 효율적인 사용으로부터 얻어진 것이다.

 

depthwise convolution:기본적인 개념은 쉽다. 위 처럼 H*W*C의 conv output을 C단위로 분리하여 각각 conv filter을 적용하여 output을 만들고 그 결과를 다시 합치면 conv filter가 훨씬 적은 파라미터를 가지고서 동일한 크기의 아웃풋을 낼 수 있다. 또한 각 필터에 대한 연산 결과가 다른 필터로부터 독립적일 필요가 있을 경우에 특히 장점이 된다. =>나누고 합치기 

pointwise convolution:흔히 1x1 Conv라고 불리는 필터이다. 많이 볼 수 있는 트릭이고 주로 기존의 matrix의 결과를 논리적으로 다시 shuffle해서 뽑아내는 것을 목적으로 한다. 위 방법을 통해 총 channel수를 줄이거나 늘리는 목적으로도 많이 쓴다.

Tower는 inception module 내부에 존재하는 conv layer와 pooling layer 등을 말한다. 

 

1. Introduction

최근에는 Convolutional neural networks 가 컴퓨터 vision 분야에서 master algorithm 으로 등장하였으며 , 이를 설계하기 위한 기법의 개발에 상당한 관심을 기울이고 있다. convolutional neural network 설계의 역사는 feature extraction을위한 간단한 convolutions 과 spatial sub-sampling 을 위한 max-pooling으로 이루어진 LeNet-style models [10]으로 시작됬다. 이 아이디어는 2012년에 AlexNet에서 개선됐으며 Max-pooling 사이에는 convolution이 여러 번 반복되어, 네트워크가 모든 spatial scale에 대해 풍부한 feature를 학습 할 수 있게 됐다.What followed was a trend to make this style of network increasingly deeper, mostly driven by the yearly ILSVRC competition; first with Zeiler and Fergus in 2013 [25] and then with the VGG architecture in 2014 [18].

 

이 시점에서 새로운 스타일의 network가 등장하였으며, the Inception architecture, introduced by Szegedy et al. in 2014 [20] as GoogLeNet (Inception V1), later refined as Inception V2 [7], Inception V3 [21], and most recently Inception-ResNet [19]. Inception으로 소계된 이 후로 , ImageNet dataset [14]과 Google 에서 사용하는 internal dataset JFT [5]에 대해 가장 성능이 우수한 모델 군 중 하나였다.

 

Inception 스타일 모델의 기본적인 building block은, 여러 버전이 존재하는 Inception module이다.Fig.1에서는 canonical Inception module Inception-v3에서 볼 수 있는 표준 형태의 Inception module을 보여준다.Inception 모델은 이러한 모듈들의 stack으로 이해할 수 있다. 이것은 simple convolution layers의 스택이었던 이전 VGG-style networks에서 출발 한 것이다.

 

Inception module은 개념적으로 convolutions (they are convolutional feature extractors)과 유사하지만, 실험에서는 적은 parameter로도 풍부한 표현을 학습할 수 있는 것으로 나타났다. 이들은 어떻게 작동하며, 일반적인 convolution과 어떻게 다른 것일까? Inception 이후에는 어떤 디자인 전략이 나올까?

 

1.1. The Inception hypothesis

Convolution layer는 2개의 spatial dimension(width and height)과 channel dimension로 이루어진 3D 공간에 대한 filter를 학습하려고 시도한다. 따라서 single convolution kernel은 cross-channel correlation spatial correlation을 동시에 mapping하는 작업을 수행한다.

 

Inception module의 기본 아이디어는 cross-channel correlation spatial correlation을 독립적으로 볼 수 있도록 일련의 작업을 명시적으로 분리함으로써, 이 프로세스를보다 쉽고 효율적으로 만드는 것이다. 더 정확하게 , 일반적인 Inception module의 경우, 우선 1x1 convolution으로 cross-correlation을 보고, input보다 작은 3~4개의 분리 된 공간에 mapping한다. 그 다음 보다 작아진 3D 공간에 3x3 혹은 5x5 convolution을 수행하여 spatial correlation을 mapping한다. Fig 1 참조 . 실제로 Inception의 기본 가설은 cross-channel correlations 과 spatial correlations는 충분히 분리되어 공동으로 매핑하지 않는 것이 좋다. 

 

convolution (e.g. 3x3)를 하나만 사용하고 average pooling tower (figure 2)을 포함하지 않는 simplified 버전의  an Inception module를 고려한다. 이 Inception module은 a large 1x1 convolution을 수행하고 , output channels (figure 3)

들의 겹치지 않는 segment에 대한 spatial convolutions이 오는 형태로 재구성한다. 이 관찰은 자연스럽게 다음의 문제를 제기한다 :  Partition 내의 segment 개수나 크기가 어떤 영향을 갖는가? nception의 가설보다 훨씬 강력한 가설을 세우고, cross-channel correlation spatial correlation을 완전히 분리시켜 mapping 할 수 있다고 가정하는 것이 합리적인가?

Figure 1. A canonical Inception module (Inception V3).
Figure 2. A simplified Inception module.
Figure 3. A strictly equivalent reformulation of the simplified Inception module.
Figure 4. An “extreme” version of our Inception module, with one spatial convolution per output channel of the 1x1 convolution.

1.2. The continuum between convolutions and separable convolutions

“extreme” version of an Inception module 강렬한 가설의 기반으로 , 우선 우리는 1x1 convolution으로 cross-channel correlations 매핑하고 , 각각의 output channel 들의 spatial correlations을 따라 매핑한다. figure 4에서 볼 수 있다. We remark that this extreme form 의 an Inception module 이 depthwise separable convolution 거의 almost identical 하며 , an operation that has been used in neural network design as early as 2014 [15] and has become more popular since its inclusion in the TensorFlow framework [1] in 2016. 

 

depthwise separable convolution는  deep learning frameworks such as TensorFlow and Keras에서  일반적으로 “separable convolution”부르며 , depthwise convolution으로 구성된다. 즉 input의 각 channel에 대해 , 독립적으로 , a spatial convolution이 수행되고 , 그 뒤로는 pointwise convolution 따라오는 형태이다. 1x1 convolution은 depthwise convolution 의 output을 새로운 channel space 에 projecting한다. spatially separable convolution과 혼동되서는 안되며 image processing community에서는 일반적으로 “separable convolution”라고 한다.

 

“extreme” version의 Inception module과 depthwise separable convolution 간의 두가지 차이점은 아래와 같다.

operations의 순서 : Inception에서는 1x1 convolution을 먼저 수행하는 반면, 예를 들면 TensorFlow에서와 같이 일반적으로 구현된 depthwise separable convolution channel-wise spatial convolution을 먼저 수행한 뒤에 1x1 convolution을 수행한다.

첫 번째 operation 뒤의 non-linearity presence or absence . Inception에서는 두 operation 모두 non-linearity로 ReLU가 뒤따르는 반면, separable convolution은 일반적으로 non-linearity 없이 구현된다.

우리는 operation들이 stacked setting에서 사용되기 때문에, 첫 번째 차이점은 중요하지 않다고 주장한다. 두 번째 차이점은 중요할 수 있으므로 실험 파트에서 조사한다.(in particular see figure 10)

 

또한 , 일반  Inception module 과 depthwise separable convolutions 사이의 intermediate formulations도 가능함에 주목한다. 사실은, there is a discrete spectrum between regular convolutions and depthwise separable convolutions, parametrized by the number of independent channel-space segments used for performing spatial convolutions.

일반적인 convolution , (preceded by a 1x1 convolution) , at one extreme of this spectrum,  single-segment case에 해당한다;  a depthwise separable convolution channel당 하나 해당한다; Inception modules은 수백개의 channel을 3 or 4 segments 다루기 때문에 이 둘 사이에 있다. 

 

이러한 관측으로 부터 우리는 Inception modules을 depthwise separable convolutions으로 대체함으로써 Inception family 의 구조를 개선하는 것이 가능할 것이라 제안한다. i.e. depthwise separable convolution을 stacking한 모델을 building 한다. 이는 Tensorflow에서 사용할 수 있는 효율적인 depthwise separable convolution으로 실현된다. 다음에서 우리는 이 아이디어를 기반으로  Inception V3와 유사한 수의 매개 변수 를 사용하는 convolutional neural network architecture를 제시하고  ,  two large-scale image classification task Inception V3에 대한 성능을 평가한다.

 

2. Prior work

이 연구는 다음 분야의 이전 연구들에 크게 의존한다.

• Convolutional neural networks [10, 9, 25], 특히  VGG-16 architecture [18] 는 몇 가지 측면에서 우리가 제안한 아키텍처와 개략적으로 유사하다.

The Inception architecture family of convolutional neural networks [20, 7, 21, 19], 여러개의  branches 로 factoring하여 ,channel들과 이 공간에서 연속적으로 등장하는 것에 대한  중점을 두었다.

 

• Depthwise separable convolutions는 아키텍처가 전적으로 기반으로 제안되였다. 네트워크에서 spatially separable convolution이 사용됐던건 2012[12] (but likely even earlier) 년 이전이지만, depthwise version은 더 최근에 사용됐다. Laurent Sifre는 2013년에 Google Brain internship 과정에서 depthwise separable convolution을 개발했으며, 이를 AlexNet에 적용하여 큰 수렴 속도 향상과 약간의 성능 향상, 모델 크기의 감소 등의 성과를 얻었다. 그의 작업에 대한 개요는 ICLR 2014[23]에서 처음 공개되었다. 자세한 실험결과는 Sifre’s thesis, section 6.2 [15]에서 보고됐다.Depthwise separable convolution에 대한 초기 연구는, Sifre and Mallat on transformation-invariant scattering [16, 15]에서 영감을 받았으며, 이후에는 depthwise separable convolution이 Inception V1와 Inception V2 [20, 7]의 첫번째 레이어에 사용되였다. Google의 Andrew Howard [6] 는 depthwise separable convolution을 사용하여 MobileNets이라는 효율적인 모바일 모델을 도입했다. Jin et al. in 2014 [8] and Wang et al. in 2016 [24] 연구에서도 separable convolution을 사용하여 CNN의 크기 및 계산 비용을 줄이는 연구를 수행했다. 또한 우리의 작업은 TensorFlow 프레임 워크에 깊이 별 분리 가능한 컨볼 루션을 효율적으로 구현 한 경우에만 가능하다 [1].

 

• Residual connections, introduced by He et al. in [4], which our proposed architecture uses extensively.

 

3. The Xception architecture

우리는 전적으로 depthwise separable convolution layers에 기반한 convolutional neural network구조를 기반으로 제안한다. 사실은 다음과 같은 가설을 세운다. convolutional neural networks의 feature maps에서 cross-channels correlations and spatial correlations의 mapping 은 완전히 분리될수 있다. 이는 Inception 구조에 기반한 강력한 버전의 가설이므로, 제안하는 구조를 “Extreme Inception“을 나타내는 이름인 Xception으로 명명한다.

 

network에 대한 자센한 정보는 figure 5를 참조한다. Xception 구조는 36개의 conv layer로 feature extraction을 수행한다. 실험 평가에서는 image classification에 대해서만 조사하므로, 제안하는 CNN에는 logistic regression layer가 뒤따른다.선택적으로 logistic regression layer 앞에 완전히 연결된 계층을 삽입 할 수 있다.이것은 experimental evaluation section (in particular, see figures 7 and 8)에 나와있다. 36개의 conv layer는 14개의 모듈로 구성되며, 첫 번째와 마지막 모듈을 제외한 나머지의 주위에는 linear residual connection이 있다.

 

간단하게 말하자면 ,  Xception 구조는 residual connection이 있는 depthwise separable convolution의 linear stack으로 볼 수 있다. 따라서 Xception 구조는 정의와 수정이 매우 쉽게 이루어질 수 있다. Keras [2] 나 TensorFlow-Slim[17] 과 같은 high-level library를 사용하면 30~40줄의 코드로 구현이 가능하다. VGG-16[18]이나 훨씬 복잡한  Inception-v2혹은 Inception-v3과는 차이가 있다. 오픈 소스 구현은 Keras 애플리케이션 모듈 , MIT 라이센스에 따라 Keras 및 TensorFlow를 사용하는 Xception은 다음의 일부로 제공된다. 

 

4. Experimental evaluation

우리는 규모의 유사성을 고려해 , Xception to the Inception V3 architecture 비교한다. Xception과 Inception-v3의 parameter 수는 거의 동일하므로, 성능 차이는 네트워크 capacity의 차이에서 비롯된 것이 아니다. (Table.3 참조) 우리는 성능은 두 개의 image classification task에 대해 비교한다. 하나는 우리가 알고있는 1000-class single-label classification task on the ImageNet dataset [14], 또 다른 하나는 17,000-class multi-label classification task on the large-scale JFT dataset.

 

4.1. The JFT dataset

JFT는 large-scale image classification dataset을 위한  internal Google dataset  으로, Hinton et al. in [5] 처음으로 도입했다. 데이터는 17000-class label로 분류 된 350 million 의 고해상도 이미지로 구성된다.  JFT에 대해 학습 된 모델의 성능 평가를 위해, 보조 dataset인 FastEval14k를 사용한다.

 

FastEval14k is a dataset of 14,000 images with dense annotations from about 6,000 classes (36.5 labels per image on average).  이 dataset에서는 top-100 prediction에 대한 Mean Average Precision(이하 MAP@100)으로 성능을 평가하고, MAP@100의 각 class에 기여도를 가중치로 부여하여, 소셜 미디어 이미지에서 해당 class가 얼마나 흔하게 사용되는지 추정한다.이 평가 절차는 소셜 미디어 이미지에서 자주 발생하는 label의 성능을 측정하기 위한 것으로, Google의 production models에 중요하다고 한다.

 

4.2. Optimization configuration

ImageNet과 JFT에서는 서로 다른 optimization configuration을 사용했다.

• On ImageNet:

– Optimizer: SGD

– Momentum: 0.9

– Initial learning rate: 0.045

– Learning rate decay: decay of rate 0.94 every 2 epochs

• On JFT:

– Optimizer: RMSprop [22]

– Momentum: 0.9

– Initial learning rate: 0.001

– Learning rate decay: decay of rate 0.9 every 3,000,000 samples

 

두 dataset 모두, Xception과 Inception-v3에 동일한 optimization configuration이 사용됐다.이 configuration은 Inception-v3의 최고 성능에 맞춘 것이며, Xception에 최적화 된 hyperparameter로 조정하려는 시도를 하지 않았다. 두 네트워크의 학습 결과가 다르기 때문에, 특히 ImageNet dataset에서는 Inception-v3에 맞춰진 configuration이 최적값이 아닐 수 있다. (Fig.6 참조) 

 

모든 모델은 inference time에 Polyak averaging [13] 을 사용하여 평가된다.

 

4.3. Regularization configuration

 

• Weight decay:

Inception-v3은 rate가 4e-5인 weight decay(L2 regularization)를 사용하여, ImageNet의 성능에 맞게 신중하게 조정됐다. Xception에서는 이 rate가 매우 부적합하기 때문에, 1e-5를 사용한다.우리는 Optimal weight decay rate에 대한 광범위한 탐색은 하지 않았으며, ImageNet과 JFT에 대한 실험 모두에서 동일한 weight decay rate가 사용됐다.

 

• Dropout:

ImageNET 실험의 경우  , 두가지 모델의 dropout layer of rate 0.5 before the logistic regression layer포함한다 . JFT 실험의 경우, dataset의 크기를 고려하면 적절한 시간 내에 overfitting 될 수가 없으므로 dropout이 포함되지 않는다.

 

• Auxiliary loss tower:

Inception-v3 아키텍처에서는 네트워크의 초반부에 classification loss를 역전파하여, 추가적인 regularization 메커니즘으로 사용하기 위한 auxiliary loss tower를 선택적으로 포함할 수 있다. 단순화를 위해, auxiliary tower를 모델에 포함하지 않기로 했다.

 

4.4. Training infrastructure

모든 networks 의 TensorFlow framework [1] 구성했으며  NVIDIA K80 GPUs 에서 60가지를 학습하였다. ImageNet 실험의 경우, 최상의 classification 성능을 달성하기 위해 synchronous gradient descent과 data parallelism을 이용했으며, JFT의 경우에는 학습 속도를 높이기 위해 asynchronous gradient descent를 사용했다. ImageNet에 대한 실험은 각각 약 3일이 걸렸고, JFT에 대한 실험은 1개월이 넘게 걸렸다. JFT 모델 에 대해 full convergence로 학습하려면 3개월씩 걸리기 때문에, 이렇게까지 학습하진 않았다고 한다.

Figure 5. The Xception architecture: the data first goes through the entry flow, then through the middle flow which is repeated eight times, and finally through the exit flow. Note that all Convolution and SeparableConvolution layers are followed by batch normalization [7] (not included in the diagram). All SeparableConvolution layers use a depth multiplier of 1 (no depth expansion).

4.5. Comparison with Inception V3

4.5.1 Classification performance

모든 평가는 single crop과 single model에 대해 수행됐다.ImageNet에 대한 결과는 test set이 아닌 validation set에 대해 측정됐다. (Table.1, Fig.6 참조) JFT에 대한 결과는 full convergence 후가 아닌  30 million회의 iteration (one month of training)후에 측정됐다.  결과는 in table 1 and table 2, as well as figure 6, figure 7, figure 8 에 있다. 우리는  JFT에서는 fully-connected layer가  포함되지 않은 버전과, logistic regression layer 이전에 4096개의 노드로 이루어진 fully-connected layer가 2개 포함 된 버전을 테스트했다.

 

ImageNet에서 Inception V3은 Xception보다  약간 더 나은 결과를 보여준다. JFT에서의 Xception은 FastEval14k에 대한 MAP@100에서 4.3%의 상대적 개선을 보여줬다. 또한 Xception은, ResNet에서 보고 된 ResNet-50, ResNet-101, ResNet-152의 ImageNet classification 성능보다 우수하다.

Table 1. Classification performance comparison on ImageNet (single crop, single model). VGG-16 and ResNet-152 numbers are only included as a reminder. The version of Inception V3 being benchmarked does not include the auxiliary tower

Xception 아키텍처는 ImageNet dataset보다 JFT dataset에 대해 더 큰 성능 향상을 보여줬다. 이는 Inception-v3가 ImageNet dataset에 중점을 두고 개발됐기 때문에, 디자인이 특정 작업에 과적합 된 것으로 볼 수 있다. 즉, ImageNet dataset(부분적인 optimization parameters 와 regularization 파라미터들 )에 더 적합한 hyperparameter를 찾는다면 상당한 추가적 성능 향상을 얻을 수 있을거라 볼 수 있다.

 

Table 2. Classification performance comparison on JFT (single crop, single model).
Figure 6. Training profile on ImageNet
Figure 7. Training profile on JFT, without fully-connected layers

4.5.2 Size and speed

Table 3. Size and training speed comparison.

table 3에서 우리는 Inception V3 와  Xception 사이즈 및 속도에 대해 비교한다. Parameter의 개수는 ImageNet(1000 가지 종류, fully-connected layers가 없다. )에 대한 학습 모델에서 측정됐으며, 초당 training step(gradient update)은 ImageNet dataset에 대한 synchronous gradient descent 횟수를 측정했다. 두 모델의 크기 차이는 거의 같으며(약 3.5% 이내로), 학습 속도는 Xception이 약간 느린 것으로 나타났다. 두 모델이 거의 동일한 수의 parameter를 가지고 있다는 사실은, ImageNet과 JFT에 대한 성능 향상이 capacity의 증가가 아니라, 모델의 parameter를 보다 효율적으로 사용함으로써 이뤄졌다는 것을 나타낸다.

 

4.6. Effect of the residual connections

Figure 9. Training profile with and without residual connections.

Xception 구조에서의 residual connection 효과를 정량화하기 위해, residual connection을 포함하지 않는 버전의 Xception을 ImageNet에 대해 벤치마크했다. 결과는 figure 9에서 참조한다. 수렴 속도나 최종 classification 성능 측면에 있어, residual connection은 반드시 필요한 것으로 보여진다. 물론, residual 버전과 동일한 optimization configuration으로 non-residual 버전을 벤치마킹했기 때문에 차이가 더 크게 나온 것일 수도 있다.

 

추가적으로 , 이 결과는 Xception에서 residual connection의 중요성을 보여준 것일 뿐이지, depthwise separable convolution의 stack인 이 모델의 구축에 필수 조건은 아니다. 또한, non-residual VGG-style 모델의 모든 conv layer를 depthwise separable convolution(with a depth multiplier of 1)으로 교체했을 때, 동일한 parameter 수를 가지고도 JFT dataset에서 Inception-v3보다 뛰어난 결과를 얻었다.

 

4.7. Effect of an intermediate activation after pointwise convolutions

Figure 10. Training profile with different activations between the depthwise and pointwise operations of the separable convolution layers.

우리는 전에서 depthwise separable convolution Inception module의 다른 점이, depthwise separable convolution의 depthwise operation pointwise operation 사이에 non-linearity를 포함해야할 수도 있음을 시사한다고 언급했었다. 지금까지의 실험 파트에서는 non-linearity가 포함되지 않았다. 이 절에서는 intermediate non-linearity로 ReLU 또는 ELU [3]의 포함 여부에 따른 효과를 실험적으로 테스트한 결과를 보인다. ImageNet에 대한 실험 결과는 Fig.10에 보이듯, non-linearity가 없으면 수렴이 빨라지고 최종 성능도 향상됐다.

 

이는 Inception module에 대한 Szegedy et al.와 반대되는 놀라운 관찰이다. 이는 spatial convolution이 적용되는 intermediate feature space의 depth가 non-linearity의 실용성에 매우 중요하게 작용되는 것으로 볼 수 있다: 즉, Inception module에 있는 deep feature space(e.g. those found in Inception modules)의 경우에는 non-linearity가 도움이 되지만, shallow feature space (e.g. the 1-channel deep feature spaces of depthwise separable convolutions)의 경우에는 오히려 정보 손실로 인해 해로울 수가 있다.

 

5. Future directions

우리는 전에서 일반적인 convolution과 depthwise separable convolution 간에는 별개의 스펙트럼이 존재한다고 언급했었다. Inception module은 이 스펙트럼의 한 지점에 해당한다. 우리는 실험적인 평가에서 Inception module의 extreme formulation 인 depthwise separable convolution이 일반적인 Inception module보다 이점을 가질 수 있음을 보여줬지만, depthwise separable convolution이 optimal이라고 믿을 이유는 없다.일반적인 Inception module과 depthwise separable convolution의 스펙트럼 사이에 위치한 아키텍처가 추가적인 이점을 가질 수도 있다. 이는 향후 연구를 위해 남겨졌다.

 

6. Conclusions

Convolution과 depthwise separable convolution이 어떻게 양 극단의 스펙트럼에 놓여 있는지를 보여줬다. Inception module은 둘의 중간 지점에 위치한다. 이러한 관찰에 따라, 컴퓨터 비전 아키텍처에서 Inception module을 depthwise separable convolution으로 대체 할 것을 제안했다.이 아이디어를 기반으로 Xception이라는 새로운 아키텍처를 제시했으며, 이는 Inception-v3과 유사한 수의 parameter를 갖는다. Xception을 Inception-v3과 성능을 비교했을 때, ImageNet dataset에 대해서는 성능이 조금 향상됐으며, JFT dataset에 대해서는 성능이 크게 향상됐다. 우리는 Depthwise separable convolution은 Inception module과 유사한 속성을 지녔음에도 일반 conv layer만큼 사용하기가 쉽기 때문에, 향후 CNN 아키텍처 설계의 초석이 될 것으로 기대된다.

 

 

 

Depth-wise-separable convolution

depth-wise separable convolution 연산은 각 채널 별로 convolution 연산을 시행하고 그 결과에 1x1 convolution 연산을 취하는 것이다. 기존의 convolution이 모든 채널과 지역 정보를 고려해서 하나의 feature map을 만들었다면, depthwise convolution은 각 채널 별로 feature map을 하나씩 만들고, 그 다음 1x1 convolution 연산을 수행하여 출력되는 피쳐맵 수를 조정한다. 이 때의 1x1 convolution 연산을 point-wise convolution이라 한다.

 

https://www.youtube.com/watch?v=T7o3xvJLuHk

 

 

 

 

[논문] : Xception Deep Learning with Depthwise Separable Convolutions

[참고]

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

 

(Xception) Xception: Deep Learning with Depthwise Separable Convolutions 번역 및 추가 설명과 Keras 구현

 

sike6054.github.io

https://wingnim.tistory.com/104

 

Depthwise Separable Convolution 설명 및 pytorch 구현

Depthwise Convolution 우선 Depth-wise Seperable Convolution에 대한 설명을 하기에 앞서 Depth-wise Convolution에 대한 설명을 먼저 할까 한다. 기본적인 개념은 쉽다. 위 처럼 H*W*C의 conv output을 C단위..

wingnim.tistory.com

https://datascienceschool.net/view-notebook/0faaf59e0fcd455f92c1b9a1107958c4/

 

Data Science School

Data Science School is an open space!

datascienceschool.net

 

반응형
반응형

[논문]Deep Residual Learning for Image Recognition

Microsoft Research

Kaiming He Xiangyu Zhang Shaoqing Ren Jian Sun

 

residual learning framework

residual function

stacking more layer : vanishing/exploding gradients

deeper network : accuracy gets saturated => overfitting 이 아니다. 

shortcut connections

identity mappings

 

 

Abstract

 

neural networks는 깊으면 깊을수록 학습하기 힘들다.  우리는 이전 연구에서 사용된 네트워크들보다 훨씬 학습하기 용이한 residual learning framework 을 제안한다. 여기서 우리는 unreferenced functions을 학습하는 대신, layer의 input을 참조하는 residual function을 명시적으로 재구성한다.  우리가 제공하는 residual networks 는 optimize하기도 쉬우며, 상당히 깊은 네트워크의 경우에도 합리적인 정확도를 얻어낼 수 있음을 실험 결과로 보여준다. ImageNet dataset에서는 VGG nets [41](still having lower complexity ) 보다 8배 깊은 152 layers ResNet을 평가하였다.  이들 residual nets 과 앙상블을 한 결과 ImageNet test set에서 3.57%의 top-5 error를 보였다. the ILSVRC 2015 classification task에서 1등을 하였다. 우리는 CIFAR-10 with 100 and 1000 layers 에서도 분석하였다.

depth of representations는 다양한 visual recognition tasks 에서  매우 중요한 역할을 한다. residual network로부터 얻어낸 deep representation으로부터 COCO object detection dataset에서 28%의 개선 효과를 얻었다. Deep residual network의기초는 ILSVRC & COCO 2015 competitions  에 제출하였다. ImageNet detection/localization, COCO detection/segmentation부문에서 1위를 차지했다.

 

1. Introduction

Figure 1. Training error (left) and test error (right) on CIFAR-10 with 20-layer and 56-layer “plain” networks. The deeper network has higher training error, and thus test error. Similar phenomena on ImageNet is presented in Fig. 4.
Figure 2. Residual learning: a building block.

Deep convolutional neural networks [22, 21]의 는 image classification [21, 50, 40]에서 여러가지 돌파구로 이어졌다 . Deep networkslow/mid/highlevel features [50]와 classifiers를 end-to-end multi-layer fashion으로 자연스럽게 통합하며, features 들의 풍부한 ‘level’은 해당 feature를 추출하기 위해 stacked  layer의 depth에 따라 달라진다. 최근의 증거 [41, 44] 따르면 network depth은 결정적 중요하며 ,  challenging ImageNet dataset [36]주요 결과[41, 44, 13, 16] 들은 모두 depth가 16 [41]~30[16] 정도인 “very deep” [41]을 활용했다. 다른 non-trivial visual recognition [8, 12, 7, 32, 27] 에서도 ‘very deep’ model이 큰 도움이 됐다. 깊이의 중요성에 따라 다음과 같은 의문이 생긴다.

더 나은 네트워크를 배우는 것이 stacking more layers 쉬운가? 이 질문에 대한 걸림돌은 처음부터 수렴을 방해하는  vanishing/exploding gradients [1, 9] 의 악명 높은 문제점이 있다. 그러나 이 문제는 주로 normalized initialization [23, 9, 37, 13]와 intermediate normalization layers [16]에 의해 해결되었으며, 이 계층의 수십개의 layers가  있는 network의 back-propagation [22]를 통해 stochastic gradient descent (SGD)에 대한 수렴을 하게 한다. 

deeper networks가 수렴하기 시작할 때, 또 다른 성능 저하 문제가 드러난다. 이는 network depth 가 늘어남에 따라

정확도가 포화상태(놀랍지 않을 수 있습니다)에 도달하게 되면 성능이 급격하게 떨어지는 현상을 말한다. 놀랍게도 , 하락문제는 overfitting 때문에 생긴것이 아니라 , depth가 적절히 설계된 모델에 더 많은 layer를 추가하면 training error가 커진다는 이전 연구[11, 42] 결과에 기반한다. 아래 Fig.1에서는 간단한 실험을 통해 성능 저하 문제를 보여준다.

예기치 않게, 그러한 저하는 overfitting 에 의해 야기되지 않으며, 적절히 깊은 모델에 더 많은 레이어를 추가하면 [11, 42]에서 보고되고 우리의 실험에서 철저히 검증된 바와 같이 더 높은 ttraining error 로 이어진다. 그림 1은 대표적인 예이다.( Depth 가 깊어질 수록 높은 training error가 높았으며 이에 따른 test error도 높았다. ) 이와 같은 성능 저하(training accuracy의 ) 문제는, 모든 시스템의 최적화 난이도가 쉬운 것은 아님을 나타낸다. shallower architecture와 deeper model를 추가하는 더 깊은 아키텍처를 고려해보자. 이를 만족하는 deeper architecture를 위한 constructed solution이 있긴 하다. added layers 는identity mapping 이며, other layers 는 shallower architecture에서 복사된다. (기존에 학습된 shallower architecture에다가 identity mapping인 layer만 추가하여 deeper architecture를 만드는 방법이다.) 이미 존재한 constructed solution에서 ej deeper model 이 shallower counterpart 보다 더 높은  training error 를 생성해서는 안 된다는 것을 나타낸다. 하지만, 실험을 통해 현재의 solver들은 이 constructed solution이나 그 이상의 성능을 보이는 solution을 찾을 수 없다는 것을 보여준다(or unable to do so in feasible time). 

이 논문에서는 우리는 deep residual learning framework을 도입하여 성능 저하 문제를 다룬다.  이 방법은 few stacked layer를 underlying mapping을 직접 학습하지 않고, residual mapping에 맞추어 학습하도록 한다. 공식적으로, 원하는 underlying mappin을  H(x)로 나타낸다면, stacked nonlinear layer의 mapping인 F(x)는 H(x)-x 를 학습하는 것이다. F(x) := H(x)−x 따라서 original mapping은 F(x)+x 로 재구성 된다. 또한, 저자들은 unreferenced mapping인 original mapping보다, residual mapping을 optimize하는 문제가 더 쉽다고 가정한다. 극단적으로 identity mapping 이 optimal일 경우 , nonlinear layers stack에 의한 identity mapping을 맞추는 것보다 residual  0으로 밀어넣는 것이 더 쉬울 것이다. F(x)+x의 공식은 “shortcut connections” 이 있는 feedforward neural networks 으로 구현할 수 있다(Fig. 2). Shortcut connections [2, 34, 49]는 하나 이상의 계층을 건너뛴다. 우리의 예에서는 ,  shortcut connection은 단순한  identity mapping을 수행하고, 그 출력을 stacked layer의 출력에 더하고 있다(Fig. 2). 이와 같은 identity shortcut connection은 별도의 parameter나 computational complexity가 추가되지 않는다. 전체 네트워크는 여전히 backpropagation를 통해 SGD에 의해 end-to-end 로 학습이 가능하며, solver 수정 없이도 common library를 사용하여 쉽게 구현할 수 있다 (e.g., Caffe [19]).

우리는 degradation problem를 보여주고 방법을 평가하기 위해 , ImageNet[36]에 대한  comprehensive experiments을 제시한다. 

우리는 다음과 같이 보여준다. 

1). 우리의 extremely deep residual nets을 최적화하기 쉽지만, 상대적인 “plain” nets (that simply stack layers)은 깊이가 증가할때 더 높은  training error를 나타낸다. 

2). deep residual nets는 훨씬 더 깊어진 깊이에서 정확도 향상을 쉽게 누릴 수 있어며 , 이전 네트워크보다 훨씬 향상된 결과를 얻을 수 있다. 

CIFAR-10 set[20]에도 유사한 현상이 나타나는데, 이는 우리 방법의 최적화 어려움과 효과가 특정 데이터 세트와만 유사한 것이 아님을 시사한다.우리는 100 이상의 layers를 가진 이 데이터 세트에 대해 성공적으로 훈련된 모델을 제시하고 1000개 이상의 레이어를 가진 모델을 탐색한다. 

ImageNet classification dataset [36]에서, 우리는 extremely deep residual nets를 통해 우수한 결과를 얻었다. 우리의 152-layer residual net 는 VGG nets [41]보다 complexity보다 여전히 낮으면서도 ImageNet에 제공된 네트워크 중 가장 깊다. 우리의 ensemble 모델은 ImageNet test set에서 3.57% top-5 error를 기록했으며, ILSVRC 2015 classification competition에서 1등을 차지했다.   또한 extremely deep representations은 other recognition tasks에서 탁월한 성능을 가지고 있으며, ILSVRC & COCO 2015 competitionsImageNet detection, ImageNet localization, COCO detection, and COCO segmentation 부문에서 1등을 차지했다. 이 strong evidence는  residual learning principle이 일반적이라는 것을 보여주며 , 우리는 그것이 다른 시각 및 비전 문제에 적용될 수 있을 것으로 기대한다. 

 

2. Related Work

Residual Representations.

In image recognition에서 VLAD [18]는 dictionary에 대한 residual vectors로 encodes 하는 표현이며, Fisher Vector [30]은 VLAD의 probabilistic version [18] 으로 공식화할 수 있다. 둘 다 image retrieval and classification [4, 48] 를 위한 강력하고 얕은 표현이다. vector quantization의 경우, residual vectors [17]를 encoding 하는 것이 original vectors를 encoding하는 것보다 더 효과적이다. 

low-level vision 과 computer graphics에서 Partial Differential Equations (PDEs)를 해결하기 위해, 널리 사용되는 Multigrid method [3] 은 시스템을 multiple scales에서 subproblems 로 재구성하며, 여기서subproblems 는 a coarser와 a finer scale 사이의 residual solution을 담당한다. Multigrid 의 대안으로는 hierarchical basis pre-conditioning [45, 46]가 있는데 , two scales사이의 residual vectors를 나타내는 변수에 의존한다. [3,45,46] these solvers는 residual nature of the solutions을 인식하지 못하는 standard solvers보다 훨씬 빠르게 수렴하는 것으로 나타났다. 

 

Shortcut Connections.

shortcut connections [2, 34, 49]로 이어지는 Practices and theories은 오래 동안 연구되어 왔다. multi-layer perceptrons(MLPs) 을 학습하는 초기 방법은 네트워크 입력에서 출력 [34, 49]으로 연결된  a linear layer를 추가하는 것이다. [44, 24]에서 , a few intermediate layers은 vanishing/exploding gradients를 다루기 위한 auxiliary classifiers에 연결된다. [39, 38, 31, 47]의 논문은 shortcut connections에 의해 구현되는 layer responses, gradients, and propagated errors의 중심을 맞추는 방법을 제안한다. [44]에서 “inception” layer은 a shortcut branch and a few deeper branches로 구성된다. 

본 연구와 동시에 , “highway networks” [42, 43]는 gating functions [15]과의 shortcut connections를 제공한다. 이러한 gates는 data-dependent이며 parameter-free our identity shortcuts달리 parameters를 가지고 있다. gated shortcut is “closed” (approaching zero)일 때, highway networks의 layer은 non-residual functions를 나타낸다. 반대로 , 위리의 공식은 항상 residual functions를 학습한다 : 우리의 identity shortcuts가 결코 닫히지 않으며, 모든 정보는 항상 전달되며 additional residual functions 를 학습한다. 또한  high-way networks 는 극단적으로 increased depth (e.g., over 100 layers)에도 정확성을 보여주지 않았다. 

 

3. Deep Residual Learning

 

 

3.1. Residual Learning

H(x)를 몇 개의 stacked layers(꼭 전체 네트는 아님) 에 의해 적합한 underlying mapping 으로 간주하고, x는 이러한 레이어 중 첫 번째 레이어에 대한 입력을 나타낸다. 만약 multiple nonlinear layers이 complicated functions 2에 점근적으로 근사할 수 있다는 가설이 있다면, H(x) − x (assuming that the input and output are of the same dimensions)와 같은 점근적으로 근사할 수 있다는 가설과 같다. 따라서  stacked layers 이 대략 H(x)일 으로 예상하는 대신, 우리는   layers들이 residual function F(x) := H(x) − x에 근접하도록 명시적으로 한다. 따라서 original function는  F(x)+x가 된다. 비록 두 형태 모두 (as hypothesized) 로 원하는 기능을 점근적으로 근사할 수 있어야 하지만, 학습의 용이성은 다를 수 있다. 

이 reformulation 는 degradation problem에 대한 counterintuitive phenomena의해 자극을 받는다(Fig. 1, left). introduction에서 논의 한것과 같이 , added layers이 identity mappings으로 구성될 수 있다면, deeper model 은 shallower counter-part보다 training error를 가져야 한다. degradation problem는 solvers 가 여러 nonlinear layers에 의한 identity mappings을 근사화하는데 어려움이 있을 수 있음을 시사한다.residual learning을 통해 , identity mappings이 최적인 경우, solvers 는 단순히 identity mappings에 접근하기 위해 multiple nonlinear layers weights 를 0으로 유도할 수 있다.  

실제의 경우, identity mappings이 최적일 가능성이 낮지만, 우리의 reformulation은 문제를 precondition 하는 데 도움이 될 수 있다. optimal function가  zero mapping보다 identity mapping이 더 가까울 경우, solver 는 새로우 기능으로 함수를 학습하는 것보다 identity mapping을 참조하여 perturbations 을 찾는 것이 더 쉬워야 한다. 

실험에서는 학습된 residual function에서 일반적으로 작은 반응이 있다는 결과를 보여준다(Fig.7 참조). 이 결과는 identity mapping이 합리적인 preconditioning을 제공한다는 것을 시사한다. 우리는 실험(Fig.7)을 통해 , 학습된 residual functions가 일반적으로 작은 반응을 가지고 있다는 것을 보여주며, identity mappings이 합리적인 preconditioning을 제공한다는 것을 시사한다. 

 

3.2. Identity Mapping by Shortcuts

우리는 모든 few stacked layers마다 residual learning을 사용한다. building block은 Fig.2에서 나와있다. 공식적으로 , 이 논문에서는 우리는 a bulding block 을 아래와 같이 정의했다.  

y = F(x,{W i }) + x.                         (1)

x와 y는 각각 building block의 input와 output vector이다.

function F(x,{W_i })는 학습 해야 할 residual mapping이다. 

Fig. 2 에서 two layers가 있는 예를 들면, F = W_2 σ(W_1 x)로 나타낼 수 있다. 

여기서 σ는 ReLU [29]를 나타내며 간소화를 위해 biases 는 생략되었다.  

F + x연산은 shortcut connection 및 element-wise addition으로 수행된다. addition 후에는 second nonlinearity로 ReLU를 적용한다. (i.e., σ(y), see Fig. 2) 

Eqn.(1) 의 shortcut connection 연산은 별도의 parameter나 computational complexity가 추가되지 않는다. 이는 실제로 매력적일 뿐만 아니라  plain network와 residual network 간의 를 비교하는 데에도 중요하다.(공정한 비교를 가능하게 해준다. ) 우리는 parameters의 수, depth, width, 및 computational cost(except for the negligible element-wise addition-> element-wise addition은 무시할 정도이다. )  동일한 plain/residual networks를 공정하게 비교할 수 있다. 

Eqn.(1)에서 x와 F의 dimensin이 같아야 한다. 그렇지 않은 경우 (예: 입력/출력 채널을 변경할 때), shortcut connections을 통해 a linear projection W_s 를 수행하여 dimensions maching 시킬 수 있다. 

y = F(x,{W i }) + W s x.                       (2)

Eqn.(1)에서 square matrix W_s를 사용할 수 있다. 하지만 우리는 실험을 통해 identity mapping이 degradation problem를 해결하기에 충분하고  경제적이므로 W_s는 dimensions maching 시킬 때만 사용하는 것을 보여줄 수 있다. 

residual function F 의 형태는 유연하게 결정할 수 있다. 즉, 본문에서는 two or three layers (Fig. 5)가 function F를 사용하지만, 더 많은 layer를 포함하는 것도 가능하다.  하지만, F가 단 하나의 layer만 갖는 경우에는 Eqn.(1)은 단순 linear layer와 유사하다. y = W_1 x+x 이 layer에서는 이점을 관찰하지 못했다. 

우리는 또한 위의 수식이 단순성을 위해 fully-connected layers에 대한 것이지만, convolutional layers에 적용할 수 있다는 점에 주목한다. function F(x,{W_i })는 multiple convolutional layers를 나타낼 수 있다 . element-wise addition는 channel by channel(channel 별)로  two feature maps에서 수행된다. 

 

3.3. Network Architectures

이 논문에서는 다양한 형태의 plain/residual network에 대해 테스트 했으며, 일관된 현상을 관찰한다. instances for discussion을 증명하기 위하여 , 우리는  ImageNet dataset을 위한 두 모델을 다음과 같이 정의했다.

Plain network

우리의 plain의 baseline(Fig.3 middle)은 주로 VGG net(Fig.3 left)의 철학에서 영감을 받았다. convolutional layers는 대부분 3x3 filter를 가지며, 다음과 같이 두 가지의 간단한 규칙에 따라 디자인 된다.

1). 동일한 output feature map size에 대해, layer의 filters수는 동일하다. 

2).  feature map size가 절반으로 줄어들  경우, layer 당  time complexity를 보전하기 위해 filter의 수를 2배로 한다.

stride 2인 convolutional layers에 의해 직접 downsampling을 사용했다. 네트워크의 마지막에는 global average pooling layer 와 activation이 softmax인 1000-way fully-connected laye로 구성된다 . Fig. 3 (middle)에서 총 weighted layers 수는 34이다. 우리의 모델은 VGG nets [41] (Fig. 3, left)보다 filter수가 작고 complexity 가 lower 다는 것을 주목할 필요가 있다. 우리의 34개의 layer로 구성된 이 baseline plain network(Fig.3 가운데)는 3.6 billion FLOPs이며, 이는 VGG-19(19.6 billion FLOPs)의 18%에 불과하다.

Residual network

위의 plain network의 가반으로, 우리는 shortcut connections((Fig. 3, right) 을 삽입하여  residual version의 network를 만든다. (Fig.3 오른쪽) identity shortcut(Eqn.1)은 input과 output이 동일한 dimension인 경우(Fig.3의 solid line shortcuts)에는 직접 사용할 수 있다. 

dimension이 증가하는 경우(Fig.3의 dotted line shortcuts)에는 아래의 두 옵션을 고려한다. 

(A) shortcut 는 여전히 identity mapping을 수행하며, 

zero entry padding 를 추가되어서  dimensions을 널린다.  이 옵션은 별도의 parameter가 추가되지 않음

(B) Eqn.2의 projection shortcut을 dimension matching에 사용한다. (done by 1x1 convolutions). shortcut connection이 다른 크기의 feature map 간에 mapping될 경우, 두 옵션 모두 strides를 2로 수행한다.

y = F(x,{W i }) + W s x. (2) 

FLOPS :플롭스는 컴퓨터의 성능을 수치로 나타낼 때 주로 사용되는 단위이다. 

 

3.4. Implementation

논문에서 ImageNet dataset에 대한 실험은 [21, 41] 방법에 따른다.  이미지는  scale augmentation [41]를 위해 [256, 480]에서 무작위하게 샘플링 된 shorter side를 사용하여 rescaling된다. 224x224 crop은 horizontal flip with per-pixel mean subtracted [21] 이미지 또는 이미지에 무작위로 샘플링 된다. standard color augmentation in [21] 도 사용된다. 우리는 [16]에 이어 , 각 convolution 직후와 activation 전에 batch normalization (BN) [16]를 사용했다. [13] 과 같이 weights 를 초기화하고 모든 plain/residual nets를 처음부터 학습한다. 우리는 SGD 사용하고 mini-batch size는 256이다.  learning rate는 0.1에서 시작하여, error plateau 나올때 rate를 10으로 나누어 적용하며, 모델은 최대 iteration은 6X10^4회이다. 우리는 weight decay는 0.0001, momentum은 0.9로 한 SGD를 사용했다. [16]의 관례에 따라 dropout[14]을 사용하지 않는다. 

테스트에서 , 비교 연구를 위해 ,  standard 10-crop testing [21]를 채택한다. 

최상의 결과를 위해 , 우리는  [41, 13] 와 같은 fully convolutional form 적용하였으며 , multiple scales를 평균화하였다 (images are resized such that the shorter side is in {224, 256, 384, 480, 640}).multiple scale은 shorter side가 {224, 256, 384, 480, 640}인 것으로 rescaling하여 사용한다.

 

 

4. Experiments

 

4.1. ImageNet Classification

우리는 1000 classes로 구성된  ImageNet 2012 classification dataset[36] 에서 제안하는 방법을 평가한다. 

모델의 학습및 테스트 에 사용된 데이터는 아래와 같다.

training images : 1.28 million

validation images : 50k 

test images images : 100k => final result 

테스트 결과는 top-1 error와 top-5 error를 모두 평가한다. 

Plain Networks

우선 우리는 18-layer and 34-layer plain nets에 대해서 평가한다. 34-layer plain net은 Fig. 3 (middle)에 있다.  18-layer plain net 는 비슷한 형태로 구성된다 . 상세한 구조는  Table 1에서 보여준다.

plain net  = > Table 2 의 결과에서는 18-layer plain net 에 비해, deeper 34-layer plain net 의  validation error가 높다는 것이다. => deeper 34-layer plain net의 validation error가 높다 .

이유를 알아보기 위 Fig. 4 (left)에서 우리는 학습 중의 training/validation error를 비교한다. 우리는 degradation problem 를 관찰했다. -  18-layer plain network의 solution space는 34-layer plain network의 subspace임에도 불구하고, 오히려 34-layer plain net 인 경우 학습 과정 전반에서  더 높은 training error 를 갖는다.  

논문의 저자들은 여기서 직면하는 optimization difficulty가 vanishing gradients에 의한 것과 같지 않다고 하였다. 그 이유는 plian network 가 BN [16]을 포함하여 학습하기 때문에 forward propagated signal의 분산이 0이 아니도록 보장한다. 우리는 또한 backward propagated gradients가 BN과 함께 healty norm을 보이는 것도 확인했기 때문이다. 따라서forward/backward signal은 vanishing 하지 않았다고 볼 수 있다. 실제로 ,  Table 3 의 결과를 따르면 34-layer plain network가 여전히 경쟁력 있는 정확도를 달성했으며, 이는 solver의 작동이 이루어지긴 한다는 것을 의미한다. 저자들은 또한, deep plain network는 exponentially low convergence rate를 가지며, 이것이 training error의 감소에 영향 끼쳤을거라 추측하고 있다. optimization difficulties의 원인에 대해서는 미래에 배울 것이다. 

=> 층이 깊을 수록 training error가 낮은 것 보다 낮다. optimization difficulties가  gradient vanishing 문제가 아닌것 같고  exponentially low convergence rate를 가지고 있으서 training error의 감소에 영향 끼쳤을거라 추측하고 있다.

We have experimented with more training iterations (3×) and still observed the degradation problem, suggesting that this problem cannot be feasibly addressed by simply using more iterations. => 저자들은 더 많은 training iterations (3×) 으로 실험했지만 여전히 degradation problem를 관찰하였으며 , 이는 단순히 더 많은 반복을 사용하는 것으로 이 문제를 해결할 수 없음을 시사한다.

Residual Networks

다음으로 18-layer 및 34-layer residual network(이하 ResNet)를 평가한다. baseline architecture는 위의 plain network와 동일하며, Fig.3의 오른쪽과 같이 각 3x3 filter pair에 shortcut connection을 추가했다. In the first comparison (Table 2 and Fig. 4 right),  모든 shortcut connection은 identity mapping을 사용하며, dimension matchings (option A)을 위해서는 zero-padding을 사용한다(3.3절의 옵션 1 참조). 따라서, 대응되는 plain network에 비해 추가되는 parameter가 없다.

Table.2와 Fig.4에서 알 수 있는 3가지 주요 관찰 결과는 다음과 같다.

1. residual learning으로 인해 상황이 바뀌었다. 34-layer ResNet이 18-layer ResNet(by 2.8%)보다 우수한 성능을 보인다. 또한, 34-layer ResNet이 상당히 낮은 training error를 보였으며, 이에 따라 향상된 validation 성능이 관측됐다. 이는 성능 저하 문제가 잘 해결됐다는 것과, 증가된 depth에서도 합리적인 accuracy를 얻을 수 있다는 것을 나타낸다.

2. 34-layer ResNet은 이에 대응하는 plain network와 비교할 때, validation data에 대한 top-1 error를 3.5% 줄였다(Table.2 참조). 성공하게 training errors을 줄이는 것은 (Fig. 4 right vs. left) 결곽 있다.  이는 extremely deep systems에서 residual learning의 유효성을 입증하는 결과다.

3. 마지막으로는 , 18-layer plain/residual network 간의 정확도(Table 2) 유사한 성능을 보였지만, Fig.4에 따르면 18-layer ResNet이 더욱 빠르게 수렴한다r (Fig. 4 right vs. left). 이는 network가 “not overly deep”한 경우(18-layers의 경우), 현재의 SGD solver는 여전히 plain net에서도 좋은 solution을 찾을 수 있다는 것으로 볼 수 있다. 하지만, 이러한 경우에도 ResNet에서는 빠른 수렴속도를 기대할 수 있다.

Identity vs. Projection Shortcuts

앞에서 parameter-free한 identity shortcut이 학습에 도움 된다는 것을 보였다. 이번에는 Eqn.2의 projection shortcut에 대해 조사하자. Table.3에서는 다음 3가지 옵션에 대한 결과를 보여준다.

  1. zero-padding shortcut는 dimension matching에 사용되며, 모든 shortcut는 parameter-free하다(Table.2 및 Fig.4의 결과 비교에 사용됨).
  2. projection shortcut는 dimension을 늘릴 때만 사용되며, 다른 shortcut은 모두 identity다.
  3. 모든 shortcut은 projection이다.

Table.3에서는 3가지 옵션 모두 plain network보다 훨씬 우수함을 보여준다. 우리는 이것이 A의 zero-padded dimensions이 실제로 esidual learning이 없기 때문이라고 주장한다. C에 비해서 B보다 약간 낫고 , 우리는 이것을 많은 (thirteen) projection shortcuts에 의해 도입된 추가 parameters 때문이라고 본다. 그러나  A/B/C 간의 작은 차이는 projection shortcuts가 degradation problem를 해결하는데 필수적이지 않다는 것을 나타냅니다. 따라머 memory/time complexity와 model size를 줄이기 위해 이 논문의 나머지 부분에서는 옵션 C를 사용하지 않느다. Identity shortcuts은 아래에 소개된 bottleneck architecture의 complexity를 증가시키지 않는데 특히 중요하다. 

Deeper Bottleneck Architectures. 

다음으로 mageNet을 위한 deeper nets에 대해 설명한다. 학습 시간에 대한 우려로 인해 building block as a bottleneck desig으로 설계한다. 

Deeper non-bottleneck ResNets (e.g., Fig. 5 left) also gain accuracy from increased depth (as shown on CIFAR-10), but are not as economical as the bottleneck ResNets. So the usage of bottleneck designs is mainly due to practical considerations. We further note that the degradation problem of plain nets is also witnessed for the bottleneck designs. =>Deeper non-bottleneck ResNets  (예: Fig. 5 lef ) 도 증가된 depth (CIFAR-10에 표시된 대로)에서 정롹도를 얻지만 bottleneck ResNets만큼 경제적이지는 않는다. 그래서 bottleneck designs의 사용은 주로 실용적인 고려 사항 때문이다. 우리는 또한  bottleneck designs에서도 plain nets의  degradation problem 가 목격된다는 것을 주목한다. 

각 residual function F 에 대해, 우리는 2 layers 대신 3 layers의 stack을 사용한다(Fig.5 참조). three layers는 1×1, 3×3, and 1×1 convolutions이며 , 여기서 

1×1 layers는 (restoring) dimensions 크기 를 을 줄이거나 증가시키는 용도로 사용하며 ,

3×3 layer의 input/output의 dimentsion을 줄인 bottleneck 으로 둔다. Fig.5에서는 2-layer stack과 3-layer stack가 유사한 디자인과 유사한 time complexity을 갖는 예를 보여준다 . 둘은 유사한 time complexity를 갖는다.

여기서 parameter-free는  identity shortcuts는 bottleneck architectures에서 특히 중요하다. 만약 Fig. 5 (right) 의 identity shortcut가 projection으로 대체된다면,  shortcut이 두 개의 high-dimensional 출력과 연결되므로 time complexity와 model size가 두 배로 늘어난다. 따라서 identity shortcut은 이 bottleneck design을 보다 효율적인 모델로 만들어준다.

50-layer ResNet:

우리는 34-layer ResNet의 2-layer block들을 3-layer bottleneck block으로 대체하여 50-layer ResNet(Table 1)을 구성했다. 우리는 크기를 늘리기 위해 option B 를 사용한다. 이 모델은 3.8 billion FLOPs 를 가지고 있다. 

101-layer and 152-layer ResNets: 우리는 더 많은 3-layer bottleneck block을 사용하여 101-layer 및 152-layer ResNet을 (Table 1) 구성했다. depth가 상당히 증가했음에도 상당히 높은 정확도가 결과로 나왔다. 152-layer ResNet (11.3 billion FLOPs)은 VGG-16/19 nets (15.3/19.6 billion FLOPs)보다 복잡성이 낮다. 

50/101/152-layer ResNets는 34-layer ResNets 보다 상당한 margins 으로 정확하다 (Table 3 and 4).  

Comparisons with State-of-the-art Methods

Table.4에서는 previous best single-model  결과와  비교한다. 우리의 baseline인 34-layer ResNet은 previous best에 비준하는 정확도를 달성했다.  152-layer ResNet의 single-model top-5 error는 4.49%를 달성했다. 이 single-model result 결과는 이전의 모든 ensemble result를 능가하는 성능이다(Table.5 참조). 또한, 우리는 서로 다른 depth의 ResNet을 6개 모델을 (ensemble)을 형성한다. (submitting시 152-layer 모델 2개만 있음)이로 하여 tes set에서 top-5 test error를 3.57%까지 달성했다(Table 5). 이는 ILSVRC 2015 classification task에서 1위를 차지했다.

4.2. CIFAR-10 and Analysis

논문에서는 CIFAR-10 dataset[20]에 대한 더 많은 연구를 수행했다. 

CIFAR-10 dataset : 

10개의 classes

training images가 50 k

testing images 10k

우리는 training set에서 학습되고 test set에서 평가된 실험을 제시한다. 우리는 extremely deep networks의 동작에 초점을 맞추고 있지만 state-of-the-art results를 추진하는 데는 초점을 맞추지 않기 때문에 의도적으로 다음과 같은 간단한 architecture를 사용했다.

plain/residual architectures는 Fig. 3 (middle/right)의 양식을 따른다. 

network의 input은 per-pixel mean subtracted 32x32 이미지이다.

첫 번째 layer는 3x3 cconvolutions이다.그런 다음 sizes {32, 16, 8} respectively  feature maps 에서 각각3×3 convolutions을 가진 stack of 6n layers를 사용하고 각 feature map size에 대해  2n layers를 사용한다. filters  수는 각각 {16, 32, 64}개이다. 그 subsampling 은 stride 2으로 convolutions 을 수행된다. network의 ends는 global average pooling, a 10-way fully-connected layer, and softmax로 구성된다. 총  6n+2 stacked weighted layers가 있다. 다음 표는 아키텍처가 요약되어 있다. 

shortcut connections가 사용될 때 , 3×3 layers 쌍 (totally 3n shortcuts) 에 연결된다. 이 dataset에서 우리는 모든 경우(즉 option A) 에 identity shortcuts를 사용하므로 우리의 residual models은 plain counterparts와 정확히 동일한 depth, width, and number of parameters수를 갖는다. 

학습 진행 방법은 다음과 같다.

weight decay : 0.0001

momentum : 0.9

weight initialization in [13] and BN [16]수렴하고 but with no dropout.

2개의 GPU에서 mini-batch size를 128로 학습했다. 

learning rate는 0.1부터 시작하여 , 32000/48000번 째 iteration에서 10으로 나누고, 45k/5k train/val split 결정되는 64k iterations에서 학습을 종료한다. 

학습을 위해 [24]의 간단한 data augmentation을 따른다 :

4개의 pixel이 각 side에 padded 있으며 32×32 crop이 padded 된 이미지 또는  horizontal flip에서 무작위로 샘플링된다. 

테스트를 위하여 우리는 original 32×32 image의 single view만 평가한다. 우리는n = {3, 5, 7, 9}에서는  20, 32, 44, and 56-layer networks를 비교한다. Fig. 6 (left)은 plain network의 결과를 보여준다.  deep plain nets 은 depth가 증가하여 , going deeper수록  training error 가 커진다. 이 현상은 ImageNet (Fig. 4, left) 및 MNIST (see [42])의 현상과 유사하며 , 이는 이러한 최적화 어려움이 근본적인 문제임을 시사한다. 

Fig. 6 (middle) 는 ResNets의 학습 결과를 보여준다. 또한 ImageNet cases (Fig. 4, right)와 유사하게 ResNets은 optimization 어려움을 극복하고 깊이가 커질 때 정확도가 향상됨을 입증한다. 

110-layer ResNet으로 이어지는 n = 18에 대해서 자세히 살펴본다. 이 경우 initial learning rate가 0.1인 것이  수렴을 시작하기에는 약간 너무 크다는 것을 알 수 있다. 

With an initial learning rate of 0.1, it starts converging (<90% error) after several epochs, but still reaches similar accuracy. =>  initial learning rate of 0.1으로 , 몇 epoches후 수렴(<90% error)을 시작하지만 여전히 유사한 정확도에 도달한다. 

따라서 0.01을 사용하고 training error가 80% (약 400 iterations)미만으로 떨어질 때까지 학습 warm up을 수행한 다음 0.1로 다시 돌아가서 학습을 계속 한다. 나머지 learning schedule은 이전과 같다. 110-layer network 는 잘 수렴된다(Fig. 6, middle). FitNet [35] 및 Highway [42](Table 6)와 같은 다른  deep and thin networks 보다 parameters가 적지만 state-of-the-art results (6.43%, Table 6)을 달성했다 . 

 

Analysis of Layer Responses. 

Analysis of Layer Responses.

Fig.7은 layer response의 std(standard deviation)를 보여준다. response는 BN 이후와 다른 nonlinearity(ReLU/addition) 이전의 각 3x3 conv layer의 output이다. ResNets의 경우, 이 분서을 통해 residual functions의 response strength 를 확인할 수 있다.  Fig.7에서는 ResNet이 일반적으로 plain counterparts보다 반응이 적다는 것을 보여준다. 이러한 결과는 residual function이 non-residual function보다 0에 가까울 수 있다는 우리의 basic motivation (Sec.3.1)를 뒷받침한다. 우리는 또한 Fig.7의 ResNet-20, 56 및 110 사이의 비교에서 증명된 바와 같이 더 깊은  ResNet의 Response가 더 작다는 것을 알 수 있다. layers가 많을 수록 ResNets 의 개별 layer은 신호를 덜 수정하는 경향이 있다.

Exploring Over 1000 layers.

우리는 100개 이상의 layer로 구성된 

aggressively deep model을 탐구한다. 위에서 설명한 대로 학습되는 1202-layer network로 이어지는 n = 200을 설정한다. 우리의 방법은 optimization  어려움이 없으며, 이 103-layer network 는 training error <0.1% (Fig. 6, right). test error는 여전히 상당히 양호한 결과를 보였다. (7.93%, Table 6)

 그러나 그러한 aggressively deep models에 대해서는 아직 해결되지 않은 문제들이 있다. 1202-layer network의 test 결과는 110-layer ResNet의 test결과보다 더 나쁘다. 우리는 이것이 과적합 때문이라고 주장한다. 1202-layer network는 CIFAR-10 작은 dataset에 test용으로 불필요하게 클 수 있다. (19.4M) maxout [10] 또는 dropout [14]와 같은 강력한 regularization 를 적용하여 이 dataset에 대한 최상의 결과([10, 25, 24, 35]) 를 얻는다. 이 논문에서 우리는 maxout/dropout을 사용하지 않고, optimization의 어려움에 집중하는 것을 방해하지 않고 설계상 deep and thin architectures를 통해 regularization 만 시행한다.  하지만 더 강력한 

regularization 와 결합하면 결과가 향성될 수 있는데, 앞으로 우리가 연구할 것이다. 

 

4.3. Object Detection on PASCAL and MS COCO

우리의 방법은 다른 recognition tasks에서 좋은 generalization performance 가지고 있다. 

Table 7 and 8에는 PASCAL VOC 2007 and 2012 [5] and COCO [26]의  object detection baseline results가 표시된다. detection method으로 Faster R-CNN [32]을 채택한다. 여기서는 VGG-16 [41] with ResNet-101로 교체하는 개선 사항에 대해 살펴봅시다. 두 모델을 사용하는 detection implementation (see appendix) 은 동일하므로 이득은 더 나은 networks에만 얻을 수 있다. 가장 주목할 만한 점은 까다로운 COCO 데이터 세트에서 COCO 의  standard metric (mAP@[.5,.95])이 6.0%증가하여 상대적으로 28% 향상되었다. 이 이득은 오로지 학습된 표현에 기인한다.

deep residual nets 기반으로 , ILSVRC & COCO 2015 competitions에서 , 여러 tracks에서 1위를 차지 했다: ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation. 자세한 내용은 appendix에 있다. 

 

 

 

 

 

 

A. Object Detection Baselines

이 section에서는 baseline Faster R-CNN [32] 시스템을 기반으로 detection method을 소개한다. 모델은 ImageNet classification models에 의해 초기화된 다음 bject detection data에서 fine-tuned 된다. 우리는 ILSVRC & COCO 2015 detection competitions 당시 ResNet-50/101으로 실험했다.

[32]에서 사용 되는  VGG-16과 달리 ResNet에는 hidden fc layers이 없다 . 우리는이 문제를 해결하기 위해“Networks on Conv feature maps”(NoC) [33]라는 아이디어를 채택했다.  이미지에 대한 strides 이  16 pixels (i.e., conv1, conv2 x, conv3 x, and conv4 x, totally 91 conv layers in ResNet-101; Table 1)를 사용하여 전체 이미지 shared conv feature maps을 계산한다. 우리는 이러한 레이어가 VGG-16의 13 개 conv 레이어와 유사하다고 간주하며, 그렇게 함으로써   ResNet과 VGG-16은 모두 동일한 총 stide (16 pixels)  conv feature maps을 갖게 된다. 이러한 layer은 egion proposal network (RPN, generating 300 proposals) [32]와 Fast R-CNN detection network [7]에 의해 공유된다. RoI pooling [7] 은 conv5-1 이전에 수행된다. 이 RoI-pooled feature에서는 VGG-16’s fc layers역할을 수행하는 모든 conv5 x 이상의 계층이 각 지역에 채택된다. 마지막  classification layer은 두개의 sibling layers (classification and box regression [7])으로 대체된다. 

BN layer를  사용하기 위해 pre-training 후 ImageNet training set에서 각 layer에 대한 BN statistics(means and variances)를 계산한다.  그런 다음 object detectoin를 위한  fine-tuning 에 BN layer가 고정된다. 따라서 BN layer는 일정한 offsets and scales로 linear activations 가 되며 ,  BN statistics 은 fine-tuning 할때 업데이터되지 하지 않는다.  우리는 주로 Faster R-CNN training에서 메모리 소비를 줄이기 위해 BN layer를 고정한다.

PASCAL VOC

[7, 32]에 따라 ASCAL VOC 2007 test set의 경우 , VOC 2007의 5k trainval 이미지와 VOC 2012의 16k trainval 이미지를 학습에 사용한다(“07+12”). PASCAL VOC 2012 test set의 경우, VOC 2007의  10k trainval+test images와 VOC 2012의 16k trainval images를 학습에 사용한다. Faster R-CNN 학습을 위한 hyper-parameters는 [32]와 동일하다.  Table 7은 결과를 보여준다. ResNet-101 은 VGG-16에 비해 mAP를 3% 이상 향상시켰다. 러한 이점은 전적으로 ResNet에서 학습한 향상된 기능 때문이다.

MS COCO

MS COCO dataset  [26]는 80개의 object categories로 포함한다. PASCAL VOC metric (mAP @IoU = 0.5)과 standard COCO metric (mAP @ IoU =.5:.05:.95)을 평가한다. 학습을 위해 train set의 80k 이미지를 사용하고 평가를 위해  val set 의 40k를 사용한다. 우리의 detection system은 PASCAL VOC와 유사하다. 우리는  8-GPU implementation으로 COCO 모델을 교육하므로 RPN단계는 8 images (i.e., 1 per GPU) 의 mini-batch size를 가지며  Fast R-CNN step은 16 images mini-batch size를 갖는다.  RPN step 와 Fast RCNN step는 모두 learning rate가 0.001인 240k iterations 과 0.0001인 80k iterations 에 대해 훈련 된다. 

Table 8 은 MS COCO validation set의 결과를 보여준다. ResNet-101은 VGG-16에 비해 mAP@[.5, .95]가 6% 증가했으며, 이는 더 나은 네트워크에 의해 학습된 기능에 대해서만 28%의 상대적 개선이다. 놀랍게도, mAP@[.5,.95]의 absolute increase (6.0%)은 mAP@.5’s (6.9%)와 거의 같다. 이것은 network가 더 깊어질수록 ecognition and localization과 모두 향상될 수 있음을 시사한다. 

B. Object Detection Improvements

completeness를 위해 competitions 개선사항을 보고 드린다. 이러한 개선 사항은 deep features을 기반으로 하므로 residual learning에서 이득을 얻을 수 있다. 

MS COCO

Box refinement. box refinement은 부분적으로 [6]의 iterative localization 파악을 따른다. Faster R-CNN에서 final output은 proposal box와 다른 regressed box이다. 그래서 추론을 위해, 우리는 regressed box 에서 새로운 기능을 pool 하고 새로운 classification score와 새로운 regressed box를 얻는다. 우리는 이  300 new predictions  과 original 300 predictions을 결합한다. Non-maximum suppression (NMS)는 0.3 [8]의 IoU threshold을 사용한 다음 box voting [6]를 사용하여 predicted boxes의 union set에 적용된다. Box refinement 는 mAP 를 2 points (Table 9) 개선한다. 

Global context. Fast R-CNN step에서 global context를 결합한다. full-image conv feature map이 주어지면 전체 이미지의 bounding box를 ROI로 사용하여 “RoI” pooling으로 구현할 수 있는 global Spatial Pyramid Pooling [12] (with a “single-level” pyramid)  에 의해 feature를 pooling한다. 이 pooled feature 은 global context feature을 얻기 위해 post-RoI layers 에 공급된다. 이 global feature는 original per-region feature와 연결된 다음 sibling classification and box regression layers 과 연결된다. 이 new structure는end-to-end로 학습된다. Global context는 mAP@.5를 약 1 point (Table 9)향상시킨다. 

Multi-scale testing. 위에서 모든 결과는 [32]와 같이 single-scale training/testing을 통해 얻을 수 있으며, 여기서 영상의 더 짧은 면은 s = 600 pixels입니다. Multi-scale training/testing 는 feature pyramid에서 scale 을 선택하여   [12, 7]에서 개발되었으며 [33] 에서는 maxout layers를 사용하여 개발되었다. 현재 구현에서는 [33]에 따라 multi-scale testing 를 수행했지만 시간이 제한되어 multi-scale training 을 수행하지 않았다. 또한 Fast R-CNN step (but not yet for the RPN(region proposal network) step)에 대해서만 multi-scale testing을 수행했다.  

Using validation data. 다음으로 우리는 학습에 80k+40k trainval set 와 평가에 20k test-dev set를 사용한다. testdev set에서 공개적으로 사용할 수 있는 ground truth가 없으며 결과는 evaluation server에 의해 보고된다. 이 설정 하에서 결과는 mAP@.5 of 55.7% and an mAP@[.5, .95] of 34.9% (Table 9)이다. 이것은 우리의 single-model result이다. 

Ensemble. Faster R-CNN에서 시스템은 region proposals과 object classifiers를 학습하도록 설계되어 있으므로 ensemble 을 사용하여 두 작업을 모두 향상시킬 수 있다. 우리는 regions을 제안하기 위해 앙상블을 사용하고 , 제안의 union set는 per-region classifiers 에 의해 처리된다. Table 9는 3개의 networks의 ensemble을 기반으로 한 우리의 결과를 보여준다. mAP 는  test-dev set에서 59.0% and 37.4%이다. 이 결과는 2015년 COCO  detection task에서 1위를 차지했다. 

PASCAL VOC

위의 모델을 기반으로 PASCAL VOC dataset를 다시 살펴본다. COCO dataset의 single model(55.7% mAP@.5 in Table 9) 를 사용하여 PASCAL VOC sets에서 이 모델을 fine-tune한다. box refinement, context, and multi-scale testing의 개선 사항도 채택되었다. 이를 통해 PASCAL VOC 2007 (Table 10) 85.6%를 달성하고 and  PASCAL VOC 2012 (Table 11)에서 83.8% 를 달성했다. ASCAL VOC 2012에서의 결과는 이전의 state-of-the-art result [6] 보다 더 높다.

ImageNet Detection

ImageNet Detection (DET) 작업은 200개의 object categories를 포함한다. 정확도는 mAP@.5로 평가된다. ImageNet DET 에 대한 우리의 object detection algorithm은 Table 9의 MS COCO와 동일하다. 이 networks 들은 1000-class ImageNet classification set에서 pretrained 되며  DET data에서  fine-tuned 된다. validation set 를   [8]에 이어 두 부분 (val1/val2)으로 분할했다.  DET training set와 val1 set를 사용하여  detection models 을 fine-tune한다. val2 set 가 검증에 사용된다.  ILSVRC 2015 data에서 사용하지 않는다. ResNet-101을 사용하는 single model 은 58.8%의 mAP를 가지며 3 models의 ensemble은 DET test set (Table 12)에서 2.1%의 mAP를 가진다(Table 12). 이 결과는 ILSVRC 2015에서 ImageNet detection task 1위를 차지해 2위를 8.5 points (absolute) 앞섰다. 

C. ImageNet Localization

 ImageNet Localization (LOC) task [36] 에서는 objects를 classify and localize를 요구한다. [40, 41]에 이어 , 우리는 image-level classifiers가 image의 class label을 예측하기 이해 먼저 채택되고 , localization algorithm 은 예측된 class를 기반으로 bounding boxes 예측만 설명한다고 가정한다. 우리는 각 class에 대한 bounding box regressor 를 학습하는 “per-class regression” (PCR) strategy [40, 41]을 채택한다. 우리는 ImageNet classification 를 위해 network를 pre-train 한 다음 localization을 위해 fine-tune한다. 제공된 1000-class ImageNet training set에서 network를 학습한다. 우리의 localization algorithm은 몇 가지 수정을 거친  [32] 의  RPN(Region proposal network) framework 를 기반으로 한다. category-agnostic [32]의 방식과 달리, localization 에 대한 RPN 은  per-class form으로 설계되었다. 이 RPN 은 [32]에서와 같이 binary classification (cls) and box regression (reg)를 two sibling 1×1 convolutional layers로 끝난다. [32]와 대조적으로 , cls와 reg layers은 둘 다 per-class에 있다. 특히 cls layer는 1000-d output를 가지며 , 각 차원은 object class 유무를 예측하기 위한 binary logistic regression이다 ;  [32]에서와 같이 bounding box regression는 각 위치에 있는 multiple translation-invariant “anchor” boxes 를 참조한다. 

ImageNet classification training (Sec. 3.4)에서 처럼 data augmentation를 위해 224×224 crops 을 무작위로 샘플링한다. fine-tuning을 위해 256 images 의 mini-batch size를 사용한다. negative samples이 지배되는 것을 방지하기 위해 각 이미지에 대해 8개의 anchors 를 샘플링하며 , 여기서 샘플링된 positive and negative anchors의 비율은 1:1 [32]이다. 테스트를 위해 network는 image fully-convolutionally 적용된다. Table 13은 localization results를 비교한다. [41]에 이어 먼저 classification prediction으로 ground truth class를 사용하여 “oracle” testing를 수행한다. VGG’s paper [41]은 ground truth classes를 사용하여 33.1% (Table 13) 의 center-crop error를 보고한다. 동일한 설정에서 , ResNet-101 net을 사용하는 RPN method은 center-crop error를 13.3 %로 크게 줄인다. 이 비교는 우리 framework의 우수한 성능을 입증한다. dense (fully convolutional)및 multi-scale testing에서 ResNet-101은 ground truth classes를 사용하여 11.7%의 error를 가진다. classes  예측에 ResNet-101사용할 경우 (4.6% top-5 classification error, Table 4) , top-5 localization error is 14.4%이다. 

위의 결과는 Faster R-CNN [32]의 roposal network (RPN)에만 기반한다. 결과를 개선하기 위해 Faster R-CNN의 detection network (Fast R-CNN [7])를 사용할 수 있다. 그러나 이 dataset에서는 일반적으로 하나의 이미지가 하나의 dominate object를 포함하고 proposal regions 이 서러 매우 겹쳐서 매우 유사한 ROI 풀 기능을 가지고 있다는 것을 알 수 있다. 결과적으로 , Fast R-CNN [7]의 image-centric training은 stochastic training에는 바람직하지 않을 수 있는 작은 변화의 샘플을 생성하다. 이에 자극을 받아 current experiment에서는 Fast R-CNN 대신 RoI-centric의 original RCNN [8]을 사용한다. 

우리의 R-CNN 구현은 다음과 같다. 우리는 training images 에 위에서 학습된 per-class RPN을 적용하여 ground truth class에 대한 경계 상자를 예측한다. 이러한 predicted boxes는 class-dependent proposals의 역할을 한다. 각 training image에 대해 가장 높은 점수를 받은 200 proposals이 R-CNN classifier를 학습하기 이한 학습 샘플로 추출된다. image region은 proposal에서 cropped내어 224×224 pixels로 뒤틀린 다음 R-CNN [8]에서와 같이 classification network에 공급된다. 이 network의 출력은 cls와 reg에 대한 두개의 sibling fc layers으로 구성되며 , per-class form로도 구성된다. 이 R-CNN network 는  RoI-centric fashion의 방식으로 256개의 mini batch size를 사용하여 training set에서 fine-tuned 된다. testing를 위해 RPN은 각 예측 클래스에 대해 가장 높은 점수를 200 proposals 을 생성하고 , R-CNN network를 사용하여 이러한 proposals’ scores and box positions을 업데이터한다. 

이 방법은 top-5 localization error를 10.6% (Table 13) 줄였다. 이것은 validation set에 대한 우리의 single-model result 이다. lassification and localization에 network ensemble 을 사용하여 test set에서  top-5 localization error of 9.0%에 이른다. 이 수치는 ILSVRC 14 results (Table 14)를 크게 능가하며, 상대적인 error 감소를 보여준다. 이 결과는  ILSVRC 2015에서  ImageNet localization task에서 1위를 차지했다. 

 

 

 

[출처] Deep Residual Learning for Image Recognition

[참조]

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

 

(ResNet) Deep residual learning for image recognition 번역 및 추가 설명과 Keras 구현

Paper Information

sike6054.github.io

파파고 번역을 많이 사용하였다. 

반응형
반응형

논문출처: Wide Residual Networks

Abstract

Deep residual networks는 수천 개의 레이어로 확장 할 수 있으며 여전히 성능이 향상되는 것으로 입증되었다. 그러나 각 네트워크의 훈련 정확도는 거의 두 배가되어 각 네트워크의 훈련 정확도가 두 배된다. 이러한 문제에 대응하여 본 논문에서는 ResNet 블록의 구조에 대한 자세한 실험적 연구를 수행하고이를 바탕으로 ResNet 네트워크 깊이를 줄이고 ResNet 네트워크 폭을 증가시키는 새로운 구조를 제안한다. 이 네트워크 구조를 WRN (Wide Area Residual Network)이라고하며 이러한 네트워크 구조가 일반적으로 사용되는 얇고 ​​매우 깊은 네트워크 구조보다 훨씬 우수하다는 것을 보여준다. 예를 들어, 우리는 단순한 16-layer-deep wide residual network 조차도 CIFAR, SVHN 및 COCO의 최신을 달성 한 천 계층 딥 네트워크를 포함하여 이전의 모든 deep wide residual network 보다 정확도와 효율성이 더 우수하다는 것을 증명했다. ImageNet에 대한 성과와 상당한 개선이 이루어졌습니다. 우리의 코드와 모델은 https://github.com/szagoruyko/wide-residual-networks에서 확인할 수 있다. 

 

Introduction

지난 몇 년간 Convolutional neural networks의 계층 수가 AlexNet [16], VGG [26], Inception [30]에서 많은 이미지 인식 작업의 개선에 해당하는 잔여 네트워크 [11]로 점차 증가했다 . 최근 몇 년 동안 일부 연구에서 딥 네트워크의 우월성을 발견했다 [3,22]. 그러나 심층 신경망의 훈련에는 exploding/vanishing gradients and degradation 등 몇 가지 어려움이 있다. 잘 설계된 초기화 전략 [1,12], better optimizers [29], 연결 건너 뛰기 [19,23], 지식 전달 [4,24]과 layer-wise training [25] 같은 심층 신경망과 을 훈련하기위한 다양한 기술이 제안되었다. 

 

최신 residual networks [11]는 ImageNet 및 COCO 2015 대회에서 큰 성공을 거두었으며 ImageNet 및 CIFAR의 개체 분류, PASCAL VOC 및 MS COCO의 개체 감지를 포함한 여러 벤치 마크 테스트에서 최신 수준을 달성했다. 그리고 분할. 초기 아키텍처와 비교하여 더 나은 일반화 능력을 보여 주므로 이러한 기능을 전이 학습에서 더 효과적으로 사용할 수 있다. 또한 follow-up 작업은 나머지 링크가 딥 네트워크의 수렴을 가속화한다는 것을 보여준다 [31]. 최근 follow-up 작업은 나머지 네트워크에서 활성화 순서를 탐색하고 나머지 블록에서 identity 매핑을 제안하고 [13] 매우 심층 네트워크의 훈련을 개선했다. 고속도로 망 [28]을 사용하면 나머지 네트워크보다 먼저 제안 된 아키텍처 인 매우 심층적 인 네트워크 [28]를 성공적으로 훈련시킬 수 있습니다. 잔여 네트워크와 도로 네트워크의 근본적인 차이점은 후자의 경우 잔여 링크가 차단되고 이러한 게이트의 가중치가 학습된다는 것이다.

 

Figure 1: Various residual blocks used in the paper. Batch normalization and ReLU precede each convolution (omitted for clarity)

 

따라서 지금까지 residual networks에 대한 연구는 주로 ResNet 블록 내의 활성화 시퀀스와 residual networks의 깊이에 중점을 두었다. 이 작업에서 우리는 위의 관점을 뛰어 넘는 실험적 연구를 수행하려고합니다. 이를 통해 우리의 목표는 더 풍부한 ResNet 블록 네트워크 아키텍처 세트를 탐색하고 활성화 순서 이외의 여러 측면이 성능에 미치는 영향을 철저히 조사하는 것입니다. 아래에서 설명하는 바와 같이, 이러한 아키텍처 탐색은 residual networks에 대한 새롭고 흥미로운 발견을 이끌어 냈으며, 이는 매우 중요한 실질적인 중요성을 가지고 있습니다.

 

Width vs depth in residual networks. 머신 러닝에서 얕은 네트워크와 딥 네트워크의 문제는 오랫동안 논의되어 왔으며 [2, 18] 회로 복잡성 이론 문헌에 따르면 얕은 회로는 딥 회로보다 기하 급수적으로 더 많은 구성 요소를 필요로한다는 점을 지적했습니다. residual networks의 작성자는 깊이를 늘리고 매개 변수를 줄이기 위해 가능한 한 얇게 만들려고 노력했으며 심지어 ResNet 블록을 더 얇게 만들기 위해 «bottleneck» 블록을 도입했습니다.

 

그러나 identity mapping이있는 residual block은 매우 깊은 네트워크의 훈련을 허용하고 residual networks의 약점이기도합니다. gradient 네트워크에서 흐를 때, 어떤 것도 나머지 블록 가중치를 전달하도록 강요 할 수 없으며 훈련 중에 학습하는 것을 피할 수 있으므로 유용한 표현을 학습하는 블록이 몇 개뿐이거나 아주 적은 정보를 공유하는 많은 블록이있을 수 있습니다. 최종 목표에 대한 기여도는 적습니다. 이 질문에서 [28]는 "재사용 감소"로 언급됩니다. [14]의 저자는 훈련 중 남은 블록에 대한 아이디어를 무작위로 비활성화하여이 문제를 해결하려고했습니다. 이 방법은 각 잔여 블록이 단위 스칼라 가중치를 가지며이 가중치에 드롭 아웃이 적용되는 특별한 손실 상황 [27]으로 볼 수 있습니다. 이 방법의 효과는 위의 가설을 입증합니다.

 

위의 관찰을 바탕으로 우리의 작업은 [13]에 기초하여 깊은 잔차 네트워크가 얼마나 넓어야 하는가에 대한 질문에 답하고 훈련 문제를 해결하려고 노력합니다. 이 경우 ResNet 블록의 확장 (올바르게 처리 된 경우)이 깊이를 증가시키는 것에 비해 나머지 네트워크의 성능을 개선하는 더 효과적인 방법을 제공함을 보여줍니다. 특히 [13]보다 크게 개선 된 더 넓은 딥 레지 듀얼 네트워크를 제안하고, 레이어 수는 50 배, 속도는 2 배 이상 증가한다. 우리는 이것을 widening of ResNet blocks라고 부릅니다. 예를 들어, 우리의 넓은 16-layer deep network 는 훈련 속도가 몇 배 더 빠르지 만 1000-layer thin deep network와 동일한 정확도와 상당한 수의 매개 변수를 가지고 있습니다. 따라서 이러한 유형의 실험은 deep residual networks의 주 에너지가 residual blocks에 있고 깊이의 영향이 보완적임을 보여주는 것으로 보입니다. 원래 매개 변수의 두 배 (또는 그 이상)를 사용하여 더 넓은 잔여 네트워크를 훈련 할 수 있다는 것을 알았습니다. 즉, 성능을 더욱 향상시키기 위해 thin networks의 깊이를 늘려야합니다.이 경우에는 수천 개의 레이어를 추가합니다.

 

Use of dropout in ResNet blocks.

Dropout은 [27]에서 처음 도입되었고 나중에 [16,26] 등 과 같은 많은 성공적인 아키텍처에서 채택되었으며, 협업 적 적응 및 기능의 과적 합을 방지하기 위해 많은 매개 변수를 사용하여 주로 최상위 계층에 적용됩니다. 그런 다음 주로 batch normalization [15]로 대체되었는데, 이는 특정 분포를 갖도록 신경망 활성화를 정규화하여 내부 공변량 이동을 줄이는 기술입니다. 저자의 실험은 배치 정규화를 사용하는 네트워크가 손실이있는 네트워크보다 정확도가 더 높다는 것을 보여줍니다. 이 예에서는 residual blocks의 확장으로 인한 매개 변수 수가 증가하여 정규화 훈련에 대한 드롭 아웃의 영향과 과적 합 방지를 연구했습니다. 이전에는 [13]에서 나머지 네트워크의 손실을 연구하고 블록의 식별 부분에 드롭 아웃을 삽입했는데 저자는 이 상황의 부정적인 영향을 보여 주었다. 대신, 우리는 드롭 아웃이 컨볼 루션 레이어 사이에 삽입되어야한다고 믿습니다. 넓은 residual 네트워크에 대한 실험 결과는 이것이 일관된 이득과 심지어 새롭고 최신 결과로 이어진다는 것을 보여줍니다 (예를 들어 손실이있는 16 계층 딥 와이드 잔류 네트워크는 SVHN에서 1.64 %의 오류를 가짐).

 

요약하면 이 작업의 기여는 다음과 같습니다.

잔여 네트워크 구조에 대한 자세한 실험적 연구를 제시하고 ResNet 블록 구조의 몇 가지 중요한 측면을 철저히 조사합니다.

ResNet 블록에 대한 새로운 확장 아키텍처를 제안하여 나머지 네트워크의 성능을 크게 향상시킬 수 있습니다.

우리는 훈련 중 과적 합을 방지하기 위해 적절하게 정규화하기 위해 deep residual networks의 드롭 아웃 현상을 활용하는 새로운 방법을 제안합니다.

마지막으로 제안 된 ResNet 아키텍처가 여러 데이터 세트에서 최신 결과를 달성하여 잔여 네트워크의 정확성과 속도를 크게 향상 시켰음을 보여줍니다.

 

2 Wide residual networks

 identity mapping이있는 Residual block은 다음 공식으로 표현할 수 있습니다.

Residual network는 sequentially stacked residual blocks으로 구성되여 있다.

 

In [13] residual networks 두가지 타입의 block으로 구성되여 있다.

• 기본- with two consecutive 3 × 3 convolutions with batch normalization and ReLU preceding convolution: conv3×3-conv3×3 Fig.1(a)

• bottleneck - with one 3 × 3 convolution surrounded by dimensionality reducing and expanding 1×1 convolution layers: conv1×1-conv3×3-conv1×1 Fig.1(b)

Table 1: Structure of wide residual networks. Network width is determined by factor k. Original architecture [13] is equivalent to k = 1. Groups of convolutions are shown in brackets where N is a number of blocks in group, downsampling performed by the first layers in groups conv3 and conv4. Final classification layer is omitted for clearance. In the particular example shown, the network uses a ResNet block of type B(3,3).

[13]의 원래 아키텍처 [11]와 비교하여 나머지 블록의 배치 정규화, 활성화 및 컨볼 루션 순서는 conv BN ReLU에서 BN-ReLU-conv로 변경됩니다. 후자는 더 빠른 훈련 속도와 더 나은 결과를 가지고 있기 때문에 우리는 원래 버전을 고려하지 않습니다. 또한, 소위 «bottleneck»블록은 원래 블록의 계산 비용을 줄여 레이어 수를 늘리는 데 사용되었습니다. 확장의 효과와 네트워크를 더 얇게 만드는 데 사용되는 «bottleneck»을 연구하고자하므로 고려하지 않고 «basic» residual 구조에 초점을 맞 춥니다.

 

기본적으로 나머지 블록의 표현 능력을 높이는 세 가지 간단한 방법이 있습니다.

 

• to add more convolutional layers per block

• to widen the convolutional layers by adding more feature planes

• to increase filter sizes in convolutional layers

 

작은 필터는 [26,31]을 포함한 많은 프로젝트에서 매우 효과적인 것으로 입증되었으므로 3x3보다 큰 필터는 사용하지 않습니다. 또한 심화 계수 l과 확대 계수 k의 두 가지 요인을 소개합니다. 여기서 l은 블록의 컨볼 루션 수이고 k는 컨벌루션 계층의 특징 수로 곱해 지므로베이스 라인«기본»블록은 l = 2, k에 해당합니다. = 1. 그림 1 (a)와 1 ©은 각각«basic»및«basic wide»블록의 개략적 인 예를 보여줍니다.

 

residual networks 의 일반적인 구조는 표 1에 나와 있습니다. 초기 convolutional layer conv1, 그 다음 residual blocks conv2, conv3 및 conv4 (각 크기는 N), 평균 풀 및 최종 분류 레이어로 구성됩니다 . 모든 실험에서 conv1의 크기는 고정되고 도입 된 확장 계수 k는 conv2-4의 세 그룹에서 나머지 블록의 너비를 조정합니다 (예 : 원래의 "기본"아키텍처는 k = 1과 동일 함). 잔여 블록의 표현력이 미치는 영향을 연구하고자합니다.이를 위해«Basic»아키텍처를 몇 가지 수정하고 테스트했습니다. 이러한 수정 사항은 다음 하위 섹션에서 자세히 설명합니다.

 

2.1 Type of convolutions in residual block

B (M)은 resisdual 블록 구조를 나타내며, 여기서 M은 block에있는 convolutional layers의 kernel sizes 목록입니다. 예를 들어, B (3,1)은 3x3 및 1x1 convolutional layers가있는 resisdual 블록을 나타냅니다 (우리는 항상 공간 커널이 정사각형이라고 가정합니다). 앞에서 설명한«bottleneck»블록을 고려하지 않았기 때문에 기능 평면의 수는 블록 전체에서 일정하게 유지됩니다. 우리가 대답하고 싶은 질문은 "기본"잔류 아키텍처의 3x3 컨벌루션 레이어가 얼마나 중요한지, 그리고 더 저렴한 1x1 레이어 또는 1x1 및 3x3 컨볼 루션 레이어에 대해 계산할 수 있는지 여부입니다. 조합으로 대체됩니다 (예 : B (1,3) 또는 B (1,3)). 이것은 블록의 힘을 증가 시키거나 감소시킬 수 있습니다. 따라서 다음 조합으로 실험했습니다 (마지막 조합, 즉 B (3,1,1)은 네트워크 [20] 아키텍처의 유효 네트워크와 유사합니다).

 

1. B(3,3) - original «basic» block

2. B(3,1,3) - with one extra 1×1 layer

3. B(1,3,1) - with the same dimensionality of all convolutions, «straightened» bottleneck

4. B(1,3) - the network has alternating 1×1 - 3×3 convolutions everywhere

5. B(3,1) - similar idea to the previous block 6. B(3,1,1) - Network-in-Network style block

 

2.2 Number of convolutional layers per residual block

또한 block deepening factor l을 사용하여 성능에 미치는 영향을 테스트합니다. 매개 변수 수가 동일한 네트워크간에 비교를 수행해야하므로이 경우 l과 d (d는 총 블록 수를 나타냄)가 다른 네트워크를 구축하는 동시에 네트워크 복잡성이 거의 동일하게 유지되도록해야합니다. 이는 예를 들어 l이 증가하면 d가 감소해야 함을 의미합니다.

 

2.3 Width of residual blocks

위의 수정 외에도 블록 확장 계수 k에 대한 실험도 수행했습니다. 매개 변수 수가 l (deepening factor) ) 및 d (ResNet 블록 수)에 따라 선형 적으로 증가하면 GPU가 큰 텐서에서 병렬 컴퓨팅에 더 효율적이기 때문에 매개 변수 수와 계산 복잡성은 k에서 2 차가됩니다. , 그래서 우리는 최고의 d / k 비율에 관심이 있습니다.

 

wider residual networks에 대한 한 가지 주장은  [13]에 비해 가장 성공적인 초기 Inception [30] 및 VGG [26]를 포함하여 잔여 네트워크의 거의 모든 이전 아키텍처가 훨씬 더 넓다는 것입니다. 예를 들어 residual networks  WRN-22-8 및 WRN-16-10 (이 기호에 대한 설명은 다음 단락 참조)은 너비, 깊이 및 매개 변수 수에서 VGG 아키텍처와 매우 유사합니다.

 

또한 k = 1 인 original residual networks를 «thin» 네트워크로, k> 1 인 네트워크를 «wide»네트워크라고합니다. 이 기사의 나머지 부분에서는 다음 표기법을 사용합니다. WRN-nk는 총 컨볼 루션 레이어 수 n과 확장 계수 k가있는 resisdual 네트워크를 나타냅니다 (예를 들어, 40 개 레이어와 k = 2 배인 네트워크가 원래 레이어로 표시됩니다. WRN-40-2로). 또한 해당하는 경우 WRN-40-2-B (3,3)와 같은 블록 유형을 첨부합니다.

Table 2: Test error (%, median over 5 runs) on CIFAR-10 of residual networks with k = 2 and different block types. Time column measures one training epoch.
Table 3: Test error (%, median over 5 runs) on CIFAR10 of WRN-40-2 (2.2M) with various l.

2.4 Dropout in residual blocks

매개 변수가 증가함에 따라 regularization 방법을 연구하려고합니다. Residual networks는 일괄 표준화되어 정규화 효과를 제공하지만 많은 데이터 확장이 필요하므로 피해야하며 항상 가능한 것은 아닙니다. 그림 1 (d)에서 볼 수 있듯이 ReLU 이후, convolution 사이의 각 resisdual 블록에 드롭 아웃 계층을 추가하여 다음 resisdual 블록에서 배치 정규화를 perturb시키고 과적 합을 방지합니다. very deep residual networks에서 이는 감소 된 기능 재사용 문제를 처리하고 다른 resisdual  블록에서 학습을 강제하는 데 도움이 될 것입니다.

 

3 Experimental results

실험에서 유명한 CIFAR-10, CIFAR-100, SVHN 및 ImageNet 이미지 분류 데이터 세트를 선택했습니다. CIFAR-10 및 CIFAR-100 데이터 세트 [17]는 10 개 및 100 개 레벨에서 추출한 32x32 컬러 이미지로 구성되며 이러한 이미지는 50,000 개의 기차 이미지와 10,000 개의 테스트 이미지로 나뉩니다. 데이터 향상을 위해 우리는 horizontal flips를 수행하고 각면에 4 픽셀로 채워진 이미지에서 무작위로 자르고 누락 된 픽셀을 원본 이미지의 반사로 채 웁니다. 우리는 [9]에서 제안 된 무거운 데이터 증가를 사용하지 않았습니다. SVHN은 훨씬 더 어려운 실제 문제에서 가져온 약 600,000 개의 디지털 이미지를 포함하는 Google 스 Street View House Numbers 이미지의 데이터 세트입니다. SVHN 실험에서는 이미지를 255로 나누어 [0,1] 범위의 이미지를 입력으로 제공한다는 점을 제외하고는 이미지 전처리를 수행하지 않습니다. ImageNet을 제외한 모든 실험은 [13] 아키텍처의 사전 활성화 된 잔여 블록을 기반으로하며이를 기준으로 사용합니다. ImageNet의 경우 계층이 100 개 미만인 네트워크에서 사전 활성화를 사용해도 큰 차이가 없음을 발견 했으므로이 예제에서는 원래 ResNet 아키텍처를 사용하기로 결정했습니다. 달리 명시되지 않는 한, CIFAR의 경우 [8]의 이미지 전처리 및 ZCA 화이트닝을 따릅니다. 그러나 일부 CIFAR 실험의 경우 간단한 평균 / 표준 표준화를 사용하므로이 전처리를 사용하는 [13] 및 기타 ResNet 관련 작업과 직접 비교할 수 있습니다.

 

다음에서는 다양한 ResNet 블록 구조에 대한 결과를 설명하고 제안 된 넓은 resisdual 네트워크의 성능을 분석합니다. "블록 내 컨볼 루션 유형"및 "블록 당 컨볼 루션 수"와 관련된 모든 실험에 대해 훈련 속도를 높이기 위해 k = 2를 사용하고 [13]에 비해 감소 된 깊이를 사용합니다.

 

Type of convolutions in a block

먼저 다른 블록 유형 B의 훈련 된 네트워크를 사용하여 결과를 보고합니다 (보고 된 결과는 CIFAR-10에 있음). 블록 B (1,3,1), B (3,1), B (1,3) 및 B (3,1,1)에 대해 WRN-40-2를 사용합니다. 회선. 매개 변수 수의 비교 가능성을 유지하기 위해 WRN-28-2-B (3,3) 및 WRN-22-2-B (3,1,3)의 더 적은 계층으로 다른 네트워크를 훈련했습니다. 평균 5 회 테스트의 정확도와 각 교육 단계의 시간을 포함하여 표 2에 테스트 결과를 제공합니다. 블록 B (3,3)의 정확도는 B (3,1,3)의 정확도와 매우 유사하며 매개 변수와 레이어 수가 적습니다. B (3,1,3)은 다른 방법보다 약간 빠릅니다.

 

위의 결과를 바탕으로 비슷한 수의 매개 변수를 가진 블록에 대해 얻은 결과는 거의 동일합니다. 이 사실로 인해 다른 방법과 일관성을 유지하기 위해 3x3 컨볼 루션 만있는 WRN에 대한주의를 제한합니다.

 

Number of convolutions per block

다음으로 deepening factor l (각 블록의 컨볼 루션 레이어 수를 나타냄) 변경과 관련된 실험을 계속 진행합니다. 표 3에 표시 결과를 제공했습니다.이 예에서는 3x3 컨볼 루션으로 WRN-40-2를 사용하고 다른 심화 계수 l∈ [1,2,3,4]로 여러 훈련을 수행합니다. , 동일한 수의 매개 변수 (2.2 × 10 ^6) 및 동일한 수의 convolutional layers.

 

B (3,3)의 성능이 가장 좋은 반면 B (3,3,3) 및 B (3,3,3,3)의 성능이 가장 낮다는 것을 알 수 있습니다. 이는 마지막 두 경우에 남아있는 연결 수가 감소하여 최적화의 어려움이 증가했기 때문일 수 있습니다. 또한 B (3)의 상황은 더 나쁩니다. 결론은 B (3,3)이 각 블록의 컨볼 루션 수 측면에서 최적이라는 것입니다. 따라서 나머지 실험에서는 B (3,3) 유형 블록이있는 넓은 잔차 네트워크 만 고려합니다.

 

Width of residual blocks

확대 매개 변수 k를 늘리려 고 할 때 총 레이어 수를 줄여야합니다. 최적의 비율을 찾기 위해 k를 2에서 12로, 깊이를 16에서 40으로 실험했습니다. 결과를 표 4에 나타냈다. 폭이 1 ~ 12 배 증가하면 40, 22, 16 계층의 모든 네트워크에서 일관된 이득을 볼 수 있음을 알 수 있습니다. 반면에 동일한 고정 확장 계수 k = 8 또는 k = 10을 유지하고 깊이를 16에서 28로 변경하면 지속적으로 개선되지만 깊이를 40으로 더 늘리면 정확도가 감소합니다 ( 예를 들어 WRN-40-8의 정확도는 WRN-22-8로 감소합니다.

 

다른 결과는 표 5에 나와 있습니다. 표 5에서는 thin resisdual  네트워크와 wide resisdual  네트워크를 비교합니다. wide WRN-40-4는 CIFAR-10과 CIFAR-100 모두에서 더 나은 정확도를 가지고 있기 때문에 thin ResNet-1001보다 낫다는 것을 알 수 있습니다. 그러나 이러한 네트워크에 8.9x10^6 및 10.2x10^6이라는 비슷한 수의 매개 변수가 있다는 것이 흥미 롭습니다. 이는이 수준에서 깊이가 너비에 비해 정규화 효과를 증가시키지 않음을 보여줍니다. 벤치 마크 포인트에서 더 살펴 보았 듯이 WRN-40-4의 훈련 속도는 원본의 8 배이므로 원본 씬 잔여 네트워크의 종횡비가 최적과는 거리가 멀다는 것이 분명합니다.

 

또한 CIFAR-10에서 wide WRN-28-10의 성능은 thin ResNet-1001보다 0.92 % 더 우수하고 (훈련 중 동일한 미니 배치 크기로) CIFAR-100에서는 wide WRN-28-10이 thin ResNet-1001보다 우수합니다. ResNet-1001은 3.46 % 더 높고 레이어 수가 36 배 적습니다 (표 5 참조). ResNet-1001의 결과는 4.64 %이고 배치 크기는 64 인 반면 모든 실험에서 사용한 배치 크기는 128입니다 (즉, 표 5에보고 된 다른 모든 결과의 배치 크기는 128 임). . 이러한 네트워크의 훈련 곡선은 그림 2에 나와 있습니다.

Table 4: Test error (%) of various wide networks on CIFAR-10 and CIFAR-100 (ZCA preprocessing).

깊이가 regularization 효과를 생성하고 너비로 인해 네트워크가 과적 합된다는 이전 의견이 있었지만 ResNet-1001보다 몇 배 더 많은 매개 변수를 사용하여 네트워크를 성공적으로 훈련 시켰습니다. 예를 들어, wide WRN-28-10 (표 5) 및 wide WRN-40-10 (표 9)의 매개 변수는 ResNet-1001보다 각각 3.6 배 및 5 배이며, 둘 다 ResNet-1001보다 훨씬 우수한 성능을 보입니다.

Table 5: Test error of different methods on CIFAR-10 and CIFAR-100 with moderate data augmentation (flip/translation) and mean/std normalzation. We don’t use dropout for these results. In the second column k is a widening factor. Results for [13] are shown with minibatch size 128 (as ours), and 64 in parenthesis. Our results were obtained by computing median over 5 runs.

일반적으로 CIFAR 평균 / 표준 전처리는 WRN-40-10 및 56x106 매개 변수를 사용하여 CIFAR-100에서 18.3 %를 달성함으로써 더 넓고 깊은 네트워크를 더 정확하게 훈련 할 수 있습니다. (표 9), ResNet-1001보다 4.4 % 높으며이 데이터 세트에 대한 새로운 최신 결과가 확립되었습니다.

Figure 2: Training curves for thin and wide residual networks on CIFAR-10 and CIFAR-100. Solid lines denote test error (y-axis on the right), dashed lines denote training loss (y-axis on the left).

결론적으로 :

• widening consistently improves performance across residual networks of different depth;

• increasing both depth and width helps until the number of parameters becomes too high and stronger regularization is needed;

• there doesn’t seem to be a regularization effect from very high depth in residual networks as wide networks with the same number of parameters as thin ones can learn same or better representations. Furthermore, wide networks can successfully learn with a 2 or more times larger number of parameters than thin ones, which would require doubling the depth of thin networks, making them infeasibly expensive to train.

 

Dropout in residual blocks

모든 데이터 세트의 컨볼 루션 사이에 residual block을 삽입하도록 네트워크를 훈련시킵니다. cross-validation을 사용하여 dropout probability values를 결정합니다. CIFAR은 0.3, SVHN은 0.4입니다. 또한 드롭 아웃이없는 기준 네트워크에 비해 훈련 기간 수를 늘릴 필요가 없습니다.

 

WRN-28-10과 비교하여 손실은 CIFAR-10 및 CIFAR-100의 테스트 오류를 ​​각각 0.11 % 및 0.4 % 감소 (5 회 이상 실행 및 평균 / 표준 전처리의 중앙값)하고 다른 RESNET과 비교합니다. 비교에서도 개선 사항이 있습니다 (표 6). 우리가 아는 한, 이것은 큰 데이터 볼륨 확장 방법보다 훨씬 더 나은 20 % 오류에 가까운 CIFAR-100의 첫 번째 결과입니다. CIFAR-10에서 WRN-16-4의 정확도는 약간만 감소합니다. 이것은 상대적으로 적은 매개 변수 때문이라고 추측합니다.

 

첫 번째 학습률이 감소한 후 손실 및 검증 오류가 갑자기 증가하고 높은 값으로 진동하면 다음 학습률이 감소 할 때까지 잔여 네트워크 학습이 간섭 효과를 생성한다는 것을 알았습니다. 무게 감쇄로 인해 발생하는 것으로 나타 났지만이를 줄이면 정확도가 크게 저하됩니다. 흥미롭게도 대부분의 경우이 효과를 부분적으로 제거하면 그림 2와 3을 참조하십시오.

 

dropout가 SVHN에 미치는 영향은 더 분명합니다. 이는 데이터 확장 및 배치 정규화 과적 합을 수행하지 않았기 때문에 드롭 아웃이 정규화 효과를 증가 시켰기 때문일 수 있습니다. 이에 대한 증거는 그림 3의 훈련 곡선에서 찾을 수 있습니다. 여기서 흘리지 않는 손실이 매우 낮은 값으로 떨어집니다. 결과를 표 6에 나타냈다. thin and wide 네트워크에서 드롭 아웃을 사용하는 데있어 상당한 개선이 관찰되었습니다. 임의의 깊이에서 Thin 50-layer deep network는 Thin 152-layer deep network보다 훨씬 좋습니다 [14]. 또한 WRN-16-8 (표 9)에 대한 SVHN dropout 교육도 실시하여 SVHN에 대한 1.54 %에 도달했으며 이는 우리가 알고있는 최고의 공개 결과입니다. dropout 율은 1.81 %입니다.

Table 6: Effect of dropout in residual block. (mean/std preprocessing, CIFAR numbers are based on median of 5 runs)
Figure 3: Training curves for SVHN. On the left: thin and wide networks, on the right: effect of dropout. Solid lines denote test error (y-axis on the right), dashed lines denote training loss (y-axis on the left).

일반적으로 일부 사람들은 일괄 정규화 결합을지지하지만 드롭 아웃은 이것이 효과적인 씬 네트워크 및 광범위한 네트워크 정규화 기술임을 보여줍니다. 확대 결과를 더욱 향상시키는 데 사용할 수 있으며 보충제로 사용할 수도 있습니다.

 

ImageNet and COCO experiments

ImageNet의 경우 먼저 병목 현상이없는 ResNet-18 및 ResNet-34로 실험하고 폭을 1.0에서 3.0으로 점진적으로 늘리려 고합니다. 결과를 표 7에 나타냈다. 너비를 늘리면 두 네트워크의 정확도가 점차적으로 증가하고 비슷한 수의 매개 변수를 가진 네트워크는 깊이가 다르더라도 유사한 결과를 얻을 수 있습니다. 이러한 네트워크에는 매개 변수가 많지만 병목 네트워크가 그들보다 낫습니다. 병목 구조가 ImageNet 분류 작업에 더 적합하거나이 복잡한 작업에 더 깊은 네트워크가 필요하기 때문일 수 있습니다. 이를 확인하기 위해 ResNet-50을 채택하고 내부 3x3 레이어의 너비를 늘려 더 넓게 만들려고했습니다. widening factor가 2.0이면 WRN-50-2-bottleneck의 성능이 ResNet-152보다 우수하고 계층 수가 3 배 감소하며 속도가 훨씬 빠릅니다. WRN-50-2- bottleneck은 매개 변수가 약간 더 많음에도 불구하고 성능이 가장 우수한 사전 활성화 된 ResNet-200보다 거의 2 배 더 빠릅니다 (표 8). 일반적으로 CIFAR와 달리 ImageNet 네트워크는 동일한 정확도를 달성하기 위해 동일한 깊이에서 더 큰 너비가 필요하다는 것을 발견했습니다. 그러나 계산상의 이유로 50 개 이상의 레이어가있는 잔여 네트워크를 사용할 필요가 없다는 것은 분명합니다.

 

8-GPU 시스템이 필요하기 때문에 더 큰 병목 네트워크를 훈련 시키려고하지 않았습니다.

Table 7: ILSVRC-2012 validation error (single crop) of non-bottleneck ResNets for various widening factors. Networks with a comparable number of parameters achieve similar accuracy, despite having 2 times less layers.
Table 8: ILSVRC-2012 validation error (single crop) of bottleneck ResNets. Faster WRN50-2-bottleneck outperforms ResNet-152 having 3 times less layers, and stands close to preResNet-200.

또한 WRN-34-2를 사용하여 MultiPathNet [32] 및 LocNet [7]의 조합을 사용하여 COCO 2016 Object Detection Challenge에 참여했습니다. 레이어가 34 개에 불과하지만이 모델은 가장 진보 된 단일 모델 성능을 달성하며 ResNet-152 및 Inception-v4 기반 모델보다 훨씬 좋습니다.

마지막으로 표 9에는 일반적으로 사용되는 다양한 데이터 세트에 대한 최상의 WRN 결과가 요약되어 있습니다.

Table 9: Best WRN performance over various datasets, single run results. COCO model is based on WRN-34-2 (wider basicblock), uses VGG-16-based AttractioNet proposals, and has a LocNet-style localization part. To our knowledge, these are the best published results for CIFAR-10, CIFAR-100, SVHN, and COCO (using non-ensemble models).

Computational efficiency

Thin 잔여 네트워크와 적은 수의 코어가있는 깊은 잔여 네트워크는 시퀀스 구조로 인해 GPU 컴퓨팅의 특성에 반합니다. 너비를 늘리면보다 최적화 된 방식으로 계산의 균형을 효과적으로 조정하는 데 도움이되므로 벤치 마크 테스트에서 알 수 있듯이 넓은 네트워크의 효율성은 씬 네트워크의 몇 배입니다. cudn v5 및 Titan X를 사용하여 여러 네트워크의 forward+backward 업데이트 시간 (미니 배치 크기 32)을 측정하며 그 결과는 그림 4에 나와 있습니다. 우리는 최고의 CIFAR wide WRN-28-10이 thin ResNet-1001보다 1.6 배 빠르다는 것을 보여줍니다. 또한 Wide WRN-40-4의 정확도는 ResNet-1001과 거의 동일하며 속도는 ResNet-1001의 8 배입니다.

gure 4: Time of forward+backward update per minibatch of size 32 for wide and thin networks(x-axis denotes network depth and widening factor). Numbers beside bars indicate test error on CIFAR-10, on top - time (ms). Test time is a proportional fraction of these benchmarks. Note, for instance, that wide WRN-40-4 is 8 times faster than thin ResNet1001 while having approximately the same accuracy.

 

Implementation details

모든 실험에서 Nesterov momentum 및 cross-entropy loss과 함께 SGD를 사용했습니다. 초기 학습률은 0.1, 가중치 감쇠는 0.0005, dampening 0, momentum 0.9, 미니 배치 크기는 128로 설정됩니다. CIFAR에서 학습률은 60, 120, 160 epoch에서 0.2 감소했으며 총 200 epoch 동안 훈련했습니다. SVHN에서 초기 학습률은 0.01로 설정되어 있으며 총 160주기의 훈련을 위해 80 및 120주기에서 0.1만큼 감소시킵니다. 우리의 구현은 Torch [6]를 기반으로합니다. 모든 네트워크의 메모리 공간을 줄이기 위해 [21]을 사용합니다. ImageNet 실험 fb.resnet.torch를 사용하여 [10]을 구현합니다. 우리의 코드와 모델은 https://github.com/szagoruyko/wide-residual-networks에서 확인할 수 있습니다.

 

4 Conclusions

We presented a study on the width of residual networks as well as on the use of dropout in residual architectures.  이 연구를 기반으로 우리는 일반적으로 사용되는 여러 벤치 마크 데이터 세트 (CIFAR-10, CIFAR-100, SVHN 및 COCO 포함)의 최신 결과를 제공하고 ImageNet을 크게 개선 한 광범위한 잔여 네트워크 아키텍처를 제안합니다. . CIFAR에 16 개 계층 만있는 광역 네트워크의 성능이 1000 계층 딥 네트워크의 성능보다 훨씬 우수하다는 것을 증명했으며, ImageNet에서는 50 계층 네트워크의 성능도 152 계층 네트워크의 성능보다 뛰어나 나머지 네트워크의 주요 기능이 나머지에 있음을 나타냅니다. 앞에서 설명한대로 극단적 인 깊이가 아닌 차단합니다. 또한 넓은 잔여 네트워크의 훈련 속도는 몇 배 더 빠릅니다. 우리는 이러한 흥미로운 발견이 심층 신경망 연구의 발전에 도움이 될 것이라고 생각합니다.

 

5 Acknowledgements

우리는 스타트 업 VisionLabs와 Eugenio culuciello가 클러스터에 액세스 할 수 있도록 해주신 것에 감사 드리며, 이들 없이는 ImageNet 실험이 불가능할 것입니다. 또한 유용한 토론에 대해 Adam Lele과 Sam Gross에게 감사드립니다. Work supported by EC project FP7-ICT611145 ROBOSPECT.

반응형
반응형

논문: Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

 

Abstract

최근에는 , Very deep convolutional networks는 이미지 인식 성능에서 가장큰 중심으로 되여 오고 있다. 그중에서 Inception architecture은 이미지 인식에서 우수한 성능을 가지고 있으며 , 계산 비용도 적게 들어간다. 최근에는 residual 와 전통적인 아키텍처와 연계되어 사용하는 것이 최점단 성능을 2015 ILSVRC challenge에서 제공하는 것을 소계하였다:그 성능은 최신의 세대 Inception-v3네트워크와 비슷하다. 그래서 residual 와 Inception의아키텍츠가결합하여 더 좋은 성능을 가질 수 있는 것인 의문을 가지게 된다. 여기서 우리는 충분한 실험으로  ,residual와 연결하여  Inception architectur가 훈련에서 상당히 가속한다는 것을 증명 하였다. There is also some evidence of residual Inception networks outperforming similarly expensive Inception networks without residual connections by a thin margin. 

우리는 또한 여러가지 새로운 주요 아키텍처(residual and non-residual Inception networks)를 하였다. 이러한 변형은 ILSVRC 2012 classification task에서 단일 프레임 인식 성능을 상당히 향상시켰다. 우리는 더욱더 설명한것은 , very wide residual Inception networks 의 안정성 훈련을 전제로 보장하면서 , 어떻게 합리적으로 activation을 추가하는 것인지 . 

앙상블 3개 Residual + 1개 Inception-4 ImageNet  classification (CLS) challenge 에서  top-5 error는 3.08% 얻었다.

 

1. Introduction

2012년 ImageNet의 우성자 -Krizhevsky , 그들의 제안한 "AlexNet"은 성공적으로 여러가지 비전 작업 영역에서 성공적으로 사용되였다 . 예를 들면 object-detection [4], segmentation [10], human pose estimation [17], video classification [7], object tracking [18], and superresolution [3]. These examples are but a few of all the applications to which deep convolutional networks have been very successfully applied ever since.

 

여기에서 우리는 어떻게 최근의 아이디어 두 모델을 결합하는 것을 연구하였다. :  

Residual connections introduced by He et al.in [5] ResNet은 residual의 연결은 very deep architectures 학습 중에서 꼭 필요한 중요한 조건이라고 생각한다.

the latest revised version of the Inception architecture [15].

Inception networks는 매우 깊은 경향이 있끼 때문에 , 자연스럽게 , 우리는 Inception과 Residual 을 연결하였다. residual사상의 장점을 얻을 뿐만아니라 , Inception의 계산 효율도 보장해준다.

 

직접 Residual 와 융합 하는 외에 , 우리는 연구하였다. Inception 깊이가 좀더 깊고 , 넓은 경우에 , 효율성을 가지고 있는지 . 이를 위해 , 우리는 새로운 버전 Inception -v4를 설계하였다. Inception-v4는 uniform simplified architecture , 그리고 더 많은 Inception 모듈을 가지고 있다 (Inception-v3보다). Inception-v3는 그 전의 네트워크 설계의 수많은 장점을 승계하였고 , 주요 제약조건은 need for partitioning the model for distributed training using DistBelief [2]. 하지만 TensorFlow [1]이 나온 후에 , 그 단점은 존재하지 않았다. 간단한 아키텍처 소계는 Section 3에서 한다.

 

여 레포트에는 우리는 두가지 순순한 모델 변형 Inception-v3 and v4을 비교하고 , 그리고 유사한 버전의 hybrid Inception-ResNet 을 비교한다 . parameter나 computational complexity가 non-residual 모델과 유사해야한다는 주된 제약 사항을 고려한 임시적인 방법으로 만들어진 모델들이다. 사실은 우리는 더 크고 더 넓은 Inception-ResNet variants을 테스트 해봤지만 그것들의 성능은 ImageNet classification challenge [11] dataset에서 비슷하다.

 

마지막 실험은 논문에서 제안한 우수한 모델들을 ensemble와 비교한다. Inception-v4와 Inception-ResNet-v2가 유사한 성능을 보였으며, ImageNet validation dataset의 single frame에 대한 평가에서 state-of-the-art의 성능을 능가했다. 따라서, ImagaeNet과 같이 잘 연구 된 데이터에서, 이러한 조합들이 어떻게 state-of-the-art 성능을 달성하는지 알아보려 했다. 놀랍게도 ,Ensemble 성능에서는 single frame에서의 성능 이득만큼 차이나지 않았다. 그럼에도, ensemble에서의 best 성능은 ImageNet validation set에 대한 top-5 error가 3.1%를 달성한다.

 

마지막 장에서는 classification에 실패한 경우의 일부에 대해 알아보고, ensemble이 여전히 dataset에 대한 label noise까지 도달하진 못했으며, 예측을 위한 개선 여지가 여전히 존재한다고 결론 내린다.

 

2. Related Work

Krizhevsky et al. [8]이 AlextNet을 제안 후에 , Convolutional networks 은 in large scale image recognition tasks에서 점점 유행해오고 있다 . Some of the next important milestones were Network-innetwork [9] by Lin et al., VGGNet [12] by Simonyan et al. and GoogLeNet (Inception-v1) [14] by Szegedy et al.

 

Residual connection은 ResNet에서 소개됐다. 여기서는 image recognition과 object detection 분야에서, signal의 additive merging을 활용함으로써 얻는 이점에 대해, 설득력 있는 이론적 및 실용적인 증거를 제시하고 있다. 저자들은  residual connections이 본질적으로 very deep convolutional models 학습에서 꼭 필요한 조건이라고 생각한다. 하지만 , 이 논문의 연구 결과에서는 최소한 image recognition에 대해서는 이 주장을 지지하지 못하는 것으로 보인다. 하지만 , 이러한 residual connection이 이득이 되는 범위를 이해하려면, deeper architecture에 대한 measurement point가 더 많이 필요해 보인다.실험에서는 residual connection을 활용하지 않고도, 경쟁력 있는 성능의 very deep network를 학습 시키는 것이 그리 어렵지 않다는 것을 보여준다. 하지만 , residual connection을 사용하면 학습 속도가 크게 향상되는 것으로 보이며, 이는 residual connection의 활용에 대한 큰 이유가 된다.

 

Inception deep convolutional architecture는  [14] 에서 소개됬으면 GoogLeNet or Inception-v1라고 부른다. 이후의 Inception 구조는 다양한 방법으로 개선 됐으며, 처음에는 batch normalization을 이용한 [6] Inception-v2 by Ioffe et al  구조가 제안됐다. 그 다음으로는 factorization 아이디어의 추가를 통해 개선 된 in the third iteration [15] Inception-v3이 제안 됬다.

Figure 1. Residual connections as introduced in He et al. [5].
Figure 2. Optimized version of ResNet connections by [5] to shield computation.

3. Architectural Choices

3.1. Pure Inception blocks

 

우리의 older Inception models 에서 원래는 분할 방식으로학습하였다. 각 복제본(replica)은, 전체 모델이 메모리에 올라갈 수 있도록 여러 개의 sub-network로 분할됐다.하지만, the Inception architecture는 고도로 튜닝하였다. 즉, 학습 후의 네트워크 성능에 영향을 미치지 않는 layer들의 filter 개수에 많은 변화를 줄 수 있다.원래는 우리는 여러 sub-network 간의 계산적인 균형을 위해 layer의 크기를 조심스럽게 튜닝했으며, 이를 통해 학습 속도를 최적화시켰다. 대조적으로, TensorFlow 분산 학습 프레임워크를 도입하면, 복제본의 분할하지 않고도 가장 최근의 모델을 학습시킬 수 있다.

이는 gradient 계산에 필요한 tensor를 신중하게 고려하고, 이러한 tensors를 줄이기 위한 계산적인 구조화를 통해 부분적으로 가능해진다. 즉, backpropation에 사용된 메모리의 recent optimization으로 가능하게 된다. 역사적으로, 우리는 아키텍처 선택을 변경하는 것에 대해 상대적으로 전통적이며 제한된 실험을 하였다.네트워크의 안정을 유지하면서, 일부 구성 요소들에 변화를 주기 위함이기 때문이다. 또한, 네트워크 초반부의 구조를 단순화하지 않으면 필요 이상으로 복잡해보였다고 한다.우리의 새로운 Inception-v4의 실험에서는 , 이런 불필요한 baggage를 버리고 각 grid size에 대한 Inception block의 구조를 획일화 시켰다.

Figure 9 : for the large scale structure of the Inception-v4 network 

Figures 3, 4, 5, 6, 7 and 8 : 자세한 structure of its components

Inception module의 구조에서,

‘V’라고 표시 되지 않은 것은  figures are same-padded meaning that their output grid matches the size of their input

padding = "same"

“V” 라고 표시 된 것은 are valid padded, meaning that input patch of each unit is fully contained in the previous layer and the grid size of the output activation map is reduced accordingly padding = "valid"

 

3.2. Residual Inception Blocks

residual 버전의 Inception networks에서 우리는 the original Inception보다 저렴한 Inception blocks사용한다.각 Inception block 뒤에는, filter bank의 dimension을 입력의 depth에 맞추기 위한 filter-expansion layer(1 × 1 convolution without activation) 가 사용된다. Activation이 없는 1x1 conv layer에 해당하며, 이는 Inception block에 의한 dimensionality reduction을 보완하기 위함이다.

 

우리는 여러가지 버전의 residual version of Inception을 시도하였다. 두가지 모델에 대해서 여기에서 상세하게 설명한다.   Inception-ResNet-v1의 비용은 대략 Inception-v3과 유사하며, Inception-ResNet-v2의 비용은 3.1절의 Inception-v4와 일치한다. Figure 15에서는 large scale structure of both varianets. ( 하지만, 실제로 Inception-v4는 더 많은 layer의 수로 인해, 학습 속도가 더 느린 것으로 증명됐다. )

 

우리의 residual와 non-residual Inception버전간의 또 다른 작은 기술의 차이는 batch-normalization을 traiditional layer에서만 사용됐으며, summation에는 사용하지 않았다. batchnormalization 을 충분히 사용하는 것이 이득이긴 하지만, 각 모델의 복제본을 single GPU 상에서 유지하기 위함이다. 큰 activation size를 가진 layer가 차지하는 메모리 공간은 GPU memory를 불균형하게 소비하는 것으로 밝혀졌다고 한다. 이러한 layer들 위의 batch-normalization을 생략함으로써 , 우리는 Inception block의 수를 크게 늘릴 수 있었다.우리는 컴퓨팅 리소스를 보다 효율적으로 활용해서, 이런 trade-off가 필요 없어졌으면 하는것을 바란다.

 

 

Figure 3. The schema for stem of the pure Inception-v4 and Inception-ResNet-v2 networks. This is the input part of those networks. Cf. Figures 9 and 15
Figure 4. The schema for 35 × 35 grid modules of the pure Inception-v4 network. This is the Inception-A block of Figure 9.
Figure 5. The schema for 17 × 17 grid modules of the pure Inception-v4 network. This is the Inception-B block of Figure 9.
Figure 6. The schema for 8×8 grid modules of the pure Inceptionv4 network. This is the Inception-C block of Figure 9.
Figure 7. The schema for 35 × 35 to 17 × 17 reduction module. Different variants of this blocks (with various number of filters) are used in Figure 9, and 15 in each of the new Inception(-v4, - ResNet-v1, -ResNet-v2) variants presented in this paper. The k, l, m, n numbers represent filter bank sizes which can be looked up in Table 1.

 

Figure 8. The schema for 17 × 17 to 8 × 8 grid-reduction module. This is the reduction module used by the pure Inception-v4 network in Figure 9.

 

 

Figure 9. The overall schema of the Inception-v4 network. For the detailed modules, please refer to Figures 3, 4, 5, 6, 7 and 8 for the detailed structure of the various components.
Figure 10. The schema for 35 × 35 grid (Inception-ResNet-A) module of Inception-ResNet-v1 network.

 

Figure 11. The schema for 17 × 17 grid (Inception-ResNet-B) module of Inception-ResNet-v1 network.

 

Figure 12. “Reduction-B” 17×17 to 8×8 grid-reduction module. This module used by the smaller Inception-ResNet-v1 network in Figure 15.
Figure 13. The schema for 8×8 grid (Inception-ResNet-C) module of Inception-ResNet-v1 network.
Figure 14. The stem of the Inception-ResNet-v1 network.
Figure 15. Schema for Inception-ResNet-v1 and InceptionResNet-v2 networks. This schema applies to both networks but the underlying components differ. Inception-ResNet-v1 uses the blocks as described in Figures 14, 10, 7, 11, 12 and 13. InceptionResNet-v2 uses the blocks as described in Figures 3, 16, 7,17, 18 and 19. The output sizes in the diagram refer to the activation vector tensor shapes of Inception-ResNet-v1.
Figure 16. The schema for 35 × 35 grid (Inception-ResNet-A) module of the Inception-ResNet-v2 network.
Figure 17. The schema for 17 × 17 grid (Inception-ResNet-B) module of the Inception-ResNet-v2 network

 

Figure 18. The schema for 17 × 17 to 8 × 8 grid-reduction module. Reduction-B module used by the wider Inception-ResNet-v1 network in Figure 15.
Figure 19. The schema for 8×8 grid (Inception-ResNet-C) module of the Inception-ResNet-v2 network.

 

Table 1. The number of filters of the Reduction-A module for the three Inception variants presented in this paper. The four numbers in the colums of the paper parametrize the four convolutions of Figure 7
Figure 20. The general schema for scaling combined Inceptionresnet moduels. We expect that the same idea is useful in the general resnet case, where instead of the Inception block an arbitrary subnetwork is used. The scaling block just scales the last linear activations by a suitable constant, typically around 0.1.

3.3. Scaling of the Residuals

Filter 개수가 1000개를 초과하게 되면 residual variant가 불안정해지기 시작하며, 네트워크가 학습 초기에 죽어버리는 것으로 나타났다. 이 뜻은 마지막 layer전에 the average pooling started to produce only zeros after a few tens of thousands of iterations. learning rate를 낮추거나 batch-normalization을 추가하는 것으로 예방할수없다.

 

Residual을 누적 된 layer activation에 추가하기 전에 scaling down을 하는 것이 학습의 안정화에 도움되는 것처럼 보였다. 이를 위한 scaling factor는 0.1에서 0.3 사이의 값을 사용했다 (cf. Figure 20)

 

He et al. in [5] ResNet에서는  very deep residual networks 의 경우에도 비슷한 불안정성을 관찰했고, 이를 두단계로 learning rate 로 스케쥴링 했다. 첫 단계인 “warm-up” 단계에서는 매우 낮은 learning rate로 학습하다가, 두 번째 단계에서는 높은 learning rate로 학습한다.  저자들은 filter의 수가 매우 많은 경우에는 0.00001의 매우 낮은 learning rate조차도 불안정성에 대처하기에 충분하지 않으며, 높은 learning rate로 학습한다면 이를 제거할 기회를 가지게 된다는 것을 알아냈다. 저자들은 또한, 이 방법 대신 residual을 scaling하는 것이 훨씬 더 안정적이라는 것을 알아냈다.

 

이러한 scaling이 엄밀히 꼭 필요한 것은 아니며, 최종 성능에 해를 끼치지 않으면서 학습의 안정화에 도움이 되는 것이라 한다. 

 

4. Training Methodology

20개의 복제본(replica)이 각각 NVidia Kepler GPU에서 수행되도록 TensorFlow [1] 분산 학습 시스템을 사용하여 stochastic gradient로 학습했다. 

실험 초기에는

momentum [13] with a decay of 0.9

best 성능은 decay가 0.9

RMSProp [16] with decay of 0.9 and  = 1.0

learning rate of 0.045,2번의 epoch마다 0.94를 곱했다. 

모델 평가는 시간이 지남에 따라 계산 된 parameter들의 running average로 수행됐다.

 

Figure 21. Top-1 error evolution during training of pure Inceptionv3 vs a residual network of similar computational cost. The evaluation is measured on a single crop on the non-blacklist images of the ILSVRC-2012 validation set. The residual model was training much faster, but reached slightly worse final accuracy than the traditional Inception-v3.

5. Experimental Results

우선 4가지 버전의 학습 중 top-1 및 top-5 validation error를 관찰한다. Bounding box의 질이 좋지 못한 약 1700개의 blacklisted entity를 생략한 validation set의 subset에 대해 지속적으로 평가했었음을 실험 후에 발견했다. Blacklisted entity의 생략은 CLS-LOC benchmark에 대해서만 이뤄졌어야 했었다. 그럼에도, 저자들의 이전 연구를 포함한 다른 연구들과는 비교할 수 없을 정도의 긍정적 수치를 얻었다. 성능의 차이는 top-1와 top-5 error에서 각각 0.3%, 0.15% 정도였으며, 그 차이가 일관적이었기 때문에 성능 그래프 간의 비교가 공정한 것으로 본다고 한다.

 

반면에 , 50000개의 이미지로 구성 된 validation set에 대해, multi-crop 및 ensemble 결과는 재수행했다. 또한, 최종 ensemble 결과는 test set에 대해 수행된 후, 검증을 위해 ILSVRC test server에 전송하고 overfitting이 일어나지 않았는지 확인했다. 저자들은 최종 검증을 한 번만 수행했었으며, 작년에는 결과를 두 번만 제출했다는 점을 강조하고 싶다고 한다.

첫번째 BN-Inception paper 

그 다음에는 during the ILSVR-2015 CLSLOC competition

테스트의 수에 따라, 제안하는 모델의 일반적인 성능을 추정할 수 있다고 믿기 때문이다.

 

마지막으로, Inception Incepion-ResNet의 다양한 버전에 대한 성능 비교를 보여준다.Inception-v3 Inception-v4는 residual connection을 활용하지 않는 deep convolutional network이며, Inception-ResNet-v1 Inception-ResNet-v2는 filter concatenation 대신 residual connection을 이용하는 Inception style network이다.

 

Figure 22. Top-5 error evolution during training of pure Inceptionv3 vs a residual Inception of similar computational cost. The evaluation is measured on a single crop on the non-blacklist images of the ILSVRC-2012 validation set. The residual version has trained much faster and reached slightly better final recall on the validation set.
Figure 23. Top-1 error evolution during training of pure Inceptionv3 vs a residual Inception of similar computational cost. The evaluation is measured on a single crop on the non-blacklist images of the ILSVRC-2012 validation set. The residual version was training much faster and reached slightly better final accuracy than the traditional Inception-v4.
Table 2. Single crop - single model experimental results. Reported on the non-blacklisted subset of the validation set of ILSVRC 2012.
Figure 24. Top-5 error evolution during training of pure Inceptionv4 vs a residual Inception of similar computational cost. The evaluation is measured on a single crop on the non-blacklist images of the ILSVRC-2012 validation set. The residual version trained faster and reached slightly better final recall on the validation set.
Figure 25. Top-5 error evolution of all four models (single model, single crop). Showing the improvement due to larger model size. Although the residual version converges faster, the final accuracy seems to mainly depend on the model size.

 

Figure 26. Top-1 error evolution of all four models (single model, single crop). This paints a similar picture as the top-5 evaluation.

Table.2는 validation set에 대한 다양한 구조들의 single model, single-crop 성능을 보여준다.

 

Table.3은 다양한 모델들이 적은 수의 crop을 사용한 경우의 성능을 보여준다. 10 crops for ResNet as was reported in [5]), for the Inception variants, we have used the 12 crops evaluation as as described in [14].10/12-crop evaluation, single model에 대한 실험 결과이다. 

 

Table 3. 10/12 crops evaluations - single model experimental results. Reported on the all 50000 images of the validation set of ILSVRC 2012.

 

Table 4. 144 crops evaluations - single model experimental results. Reported on the all 50000 images of the validation set of ILSVRC 2012.

 

Table 5. Ensemble results with 144 crops/dense evaluation. Reported on the all 50000 images of the validation set of ILSVRC 2012. For Inception-v4(+Residual), the ensemble consists of one pure Inception-v4 and three Inception-ResNet-v2 models and were evaluated both on the validation and on the test-set. The test-set performance was 3.08% top-5 error verifying that we don’t overfit on the validation set.

Table 4는 다양한 모델 에 대한 single model성능을 보여준다. For residual network the dense evaluation result is reported from [5]. For the inception networks, the 144 crops strategy was used as described in [14].

 

Table.5는 ensemble 결과를 비교한다. For the pure residual network the 6 models dense evaluation result is reported from [5]. For the inception networks 4 models were ensembled using the 144 crops strategy as described in [14].

 

 

6. Conclusions

이 논문에서는 3가지의 새로운 network architecture를 보였다.

• Inception-ResNet-v1: a hybrid Inception version that has a similar computational cost to Inception-v3 from [15].

  Inception-v3 과 비슷한 hybrid Inception버전

• Inception-ResNet-v2: a costlier hybrid Inception version with significantly improved recognition performance.

  Recognition 성능이 크게 향상 된 비싼 비용의 하이브리드 버전

• Inception-v4: a pure Inception variant without residual connections with roughly the same recognition performance as Inception-ResNet-v2.

  Inception-ResNet-v2와 거의 동일한 recognition 성능을 가진 non-residual, pure Inception 버전

 

Residual connection의 도입으로 Inception 구조의 학습 속도가 얼마나 향상되는지 알아봤다. 또한 제안하는 모델들은 모델의 크기가 커짐에 따라, (residual connection의 유무에 상관없이) 이들의 모든 이전 네트워크 성능을 능가했다. 

 

 

 

 

참조 :

https://blog.csdn.net/kxh123456/article/details/102828148

 

深度学习论文翻译 -- Inception-v4,Inception-ResNet and the Impact of Residual Connections on Learning_DAOCHI-CSDN博��

本文翻译论文为深度学习经典模型之一:Inception-V4 论文链接:https://arxiv.org/pdf/1602.07261.pdf 摘要:近些年,超深度卷积网络成为图像识别领域的核心算法。其中,Inception结构在图像分类中表现优��

blog.csdn.net

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

 

(Inception-v4) Inception-v4, inception-resnet and the impact of residual connections on learning 번역 및 추가 설명과 Ker

 

sike6054.github.io

 

반응형

+ Recent posts