Deeper neural network는 train시키기에 훨씬 어렵다.
우리는 이전에 사용되었던 것보다 더 사용하기 쉬운 residual learning framework를 소개한다.
우리는 layer의 input을 참조하는 residual function을 학습하는 layer를 reformulate시켰다.
우리는 이 residual network가 optimize하기에 더욱 쉽고,
increased path에 상당히 높은 accuracy를 받을 수 있다는 것을
경험적인 evidence로 제공한다.
The depth of representation은 많은 visual recognition task들에 매주 중요하다.
우리의 Deep residual net은 ILSVRC & COCO 2015 competition에 제출하였고,
그것은 ImageNet detection, ImageNet localization, COCO segmentation에서 1등을 했다.
Deep CNN은 image classification에 대한 breakthrough 중 하나로 여겨지고 있다.
Deep network는 자연스럽게 low/mid/high level features와 classifier에 있는 end-to-end multilayer fashion이 통합되고 있다.
최근 연구에서는 network depth가 매우 중요
하다고 밝혀졌다.
그리고 ImageNet dataset에 대한 challeenging 결과들 모두 16~30 depth를 갖는 "very deep" model을 이용한다.
또 아직 밝혀지지 않은 많은 visual recognition tasks들 또한 very deep models로부터 굉장한 이득을 받고 있다.
depth의 중요성에 기반하여, 한가지 궁금증이 떠오른다.
Is learning better networks as easy as stacking more layers?
(더 나은 network를 학습하는 것만큼 더 많은 layer를 쌓는게 쉬운가?)
이 질문에 대한 한가지 obstacle은 익히 알려진 vanishing/explolding gradients이다.
vanishing/exploding gradients는 convergence를 방해한다.
하지만 이 문제를 해결하기 위해 normalized initialization과 Batch normalization이
10개의 layer를 갖는 network의 converging을 가능하게 했다.
deeper network가 converging을 시작하게 될 때, degradation
problem에 노출된다.
degradation이란,
depth increasing과 함께 accuracy가 saturated되고, 곧 이어 accuracy가 급격하게 하락한다.
뜻밖에도 degradation은 overfitting에 의해 발생하지 않으며,
더 많은 layer를 쌓는 것은 higher training error를 발생시킨다.
degradation은 모든 system이 쉽게 optimize되지 않는다는 것을 보여준다.
우리는 이 논문에서,
deep residual learning framework를 소개함으로써 degradation problem을 해결할 것이다.
Formally,
우리가 원하는 기본적인 mapping을 라고 하고,
stacked nonlinear layer 가 mapping에 맞도록 하자.
그러면 original mapping은 로 recast된다.
우리는 기존의 unreferenced mapping(참조하지 않는)보다 residual mapping이
optimize하는 데에 더욱 쉬울 것이라는 가설을 세웠다.
공식은 "shortcut connections"을 갖는 feedforward neural network라고 생각할 수 있다.
Shortcut connection
은 하나 이상의 layer를 skip하는 것이다.
우리의 경우, shortcut connection은 간단하게 indentity mapping
으로 구현했다.
전체 network는 기존 network의 수정 없이
여전히 end-to-end by SGD with backpropagation으로 train되어질 수 있다.
ImageNet classification dataset에 대해서, 우리는 deep residual nets에 의해 훌륭한 결과를 얻었다.
Our 152-layer residual net is the deepest network ever presented on ImageNet, while still having lower complexity than VGG nets.
Our ensemble has 3.57% top-5 error on the ImageNet test set, and won the 1st place in the ILSVRC 2015 classification competition.
그리고 또 다른 recognition task들에 대해서도 놀라운 성능을 보여줬다.
(ImageNet detection, ImageNet localization, COCO detection, COCO segmentation에서도 1등)
이러한 성능을 통해 또 다른 vision 분야와 non-vision problem에 대해서도 적용가능할 것이라 기대되어진다.
VLAD
는 image retrieval과 classification에 대한 shallow representation에 강력하다.Multigrid method
는 system을 multiple scales에서 subproblem으로 세분화하여,shortcut connection은 오랫동안 연구되어져 왔다.
[34, 49] :
초기 MLPs 학습에 사용되었던 것은 network input에서 output으로 연결되는 linear layer를 추가하는 것이다.
[44, 24] :
중간에 있는 layer들은 vanishing/exploding gradients를 해결하기 위해
직접적으로 auxiliary classifier와 연결되었었다.
[39, 38, 31, 47] :
이 paper들은 centering layer responses, gradients, and propagated errors를 shortcut connection을 수행하여 제안했다.
[44] :
"inception" layer는 shortcut branch와 few deeper branches로 구성되어졌다.
우리의 연구와 비슷한 "highway networks"는 gating function으로 된 shortcut connection을 제시한다.
이 gates는 data-dependent하고 parameter를 갖는다.
반대로 우리의 identity shortcuts은 parameter를 갖지 않는다.
그리고 gated shortcut이 "closed(approaching zero)"될 때,
highway network의 layer들은 non-residual function을 표현한다.
하지만 우리의 formulation은 항상 residual function을 학습한다
우리의 identity shortcut은 절대 closed되지 않고, 모든 정보는 항상 통과해간다.
또한 high-way network는 increased depth에 대한 accuracy를 증명하지 않았다.
a few stacked layer를 mapping시키는 가 있다고 가정하자.
(는 이 layer들의 첫번째 input이다)
만약 multiple nonlinear layer들이 점진적으로 complicated function을 approximate한다고 가정하면,
그것들은 점진적으로 residual function ()를 approximate한다는 것과 같다.
그래서 를 근사하는 layer를 쌓는 것 대시에,
우리는 명시적으로 이 layer들이 residual function()에 근사하도록 할 것이다.
그러므로 original function은 가 된다.
비록 두 함수는 desired function에 근사할 수 있지만, learning의 용이성이 다르다.
이 reformulation은 degradation problem에 대해 직관에 반하여 동기가 되었다.
만약 추가된 layer들이 identity mapping을 구성할 경우,
deeper model은 shallower model보다 더 크지 않는 training error를 가져야 한다.
실제 경우에는 identity mapping이 optimal이라고 보기 쉽지는 않지만
our reformulation은 그 문제를 precondition하는 데에 도움이 될 것이다.
만약 optimal function이 identity mapping과 가깝다면,
solver가 identity mapping을 참조하여 혼란을 찾기에 쉬울 것이다.
우리는 Figure7에서 learned residual function이 small response를 갖는다는 것을 실험적으로 보여줬고
identity mapping이 reasonable preconditioning이라는 것을 제시한다.
a building block
is shown in Fig.2.when the input and output are of the same dimensions
(solid line shortcuts
in Fig. 3).dimension이 증가할 때
(dotted line shortcuts
in Fig.3), 우리는 2가지 옵션을 고려한다image is resized with its shorter side randomly sampled in [256, 480] for scale augmentation.
A 224x224 crop is randomly sampled from an image or its horizontal flip, with the per-pixel mean subtracted. (21:AlexNet)
The standard color augmentation in [21] is used.
We addopt BN(16) right after each convolution and before activations.
we initialize the weights as in 13 and train al plain/residual nets from scratch.
We use SGD with a mini-batch size of 256.
The learning rate starts from 0.1 and is divided by 10 when the error plateaus,
and the models are trained for up to 600,000 iterations.
We use a weight decay of 0.0001 and a momentum of 0.9.
We do not use dropout.
In testing, for comparison studies we adopt the standard 10-crop testing.
For best results, we adopt the fully-convolutional form as in [41, 13],
and average the scores at multiple scales(images are resized such that the shorter side is in {224, 256, 384, 480, 640}).
정리) deeper plain net에서 degradation 문제의 원인은 잘 모르겠고, 추후 연구할 것임 (?)
we evaluate 18-layer and 34-layer residual nets.
baseline architecture는 plain net과 똑같고, shortcut connection이 각 3x3 filter에 더해졌다.
Fig. 3 (right)
In the first comparison (Table 2 and Fig.4 right),
we use identity mapping for all shortcuts and zero-padding for increasing dimensions.
So they have no extra parameter compared to the plain counterparts.
We have 3 major observations from Table 2 and Fig.4.
identity shortcuts
help with training.projection shortcuts
(Eqn.(2))헷갈렸던 내용 :
projection option C 에서 1x1 convolution을 하지 않는다는 것과
bottleneck architecture의 layer에 1x1 convolution을 적용한다는 것은
완전히 다른 내용임.
projection option C 에서 1x1 convolution을 하지 않는다는 것 :
를 곱해줘서 차원이 증가하는 것을 맞춰주기 위해 projection을 할 때, 1x1 convolution을 사용하겠다는 것임.
이는 memory/time complexity가 늘어나기 때문에 이 논문에서 고려하지 않았음
bottleneck architecture의 layer에 1x1 convolution을 적용한다는 것 :
computational cost를 줄이기 위해 기존 3x3 conv layer를 1x1 3x3 1x1 conv layer로 바꾼 것임.
우리는 더 많은 3-layer blocks을 이용하여 101-layer와 152 layer를 만들었다.
놀랍게도 depth가 증가했음에도 152-layer ResNet이 여전히 lower complexity than VGG-16/19.
The 50/101/152-layer ResNet은 34-layer보다 훨씬 더 정확하다.
우리는 degradation problem을 관찰하지 않았고 increased depth로부터 significant accuracy을 얻었다.
내 생각 :
확실치는 않지만 BN을 적용했더라도 vanishing문제가 발생하지 않을까?
BN을 적용했더라도 depth가 늘어날수록 gradient signal이 작아져서 끝까지 도달하지 못할 것이라고 생각한다
plain network(34-layer plain)가 residual network보다 성능이 안좋은 이유도 이와 같을 것이다.
residual network(34-layer residual)는 중간에 shortcut connection을 통해 gradient signal이 pumping되어 끝까지 도달하는 데에 도움이 될 것이다.