Introduction
당시 deep neural network는 학습시키기 무척이나 어려웠음
why?
- problem of vanishing/exploding gradients => normalized initialization과 intermediate normalization layers 으로 어느정도 해결되는 듯함 (이제는 10개가 넘는 layer에서도 SGD+back prop으로 수렴하기 시작)
- degradation problem = network의 depth가 증가하다 어느순간 성능이 saturate되다가 다시 확 떨어지기 시작한다 => 기존에는 overfitting이라고 생각
하지만!!
layer 수를 늘렸는데 testing time 뿐 아니라 training time에서도 error rate가 올라감
- overfitting보다는 underfitting 아니냐, 모든 system이 fully optimized 되지 않았다는 것
이 논문에서는 degradation problem을 해결하기 위해 deep residual learning network 를 제안함
- 단순히 each few stacked layer가 underlying mapping에 directly fit하기를 기대하기보다 그냥 residual mapping에 fit하기만 하면 되도록 reformulate the layers
- H(x) 라는 underlying mapping이 아니라 F(x) = H(x) - x 이런 잔차를 학습시키고 이후 x를 더해 recast (shortcut connection)
기존 VGG net보다 8배 더 깊지만 complexity는 더 낮음
ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation 에서 가장 우수한 성능을 보임
1) Our extremely deep residual nets are easy to optimize, but the counterpart “plain” nets (that simply stack layers) exhibit higher training error when the depth increases;
2) Our deep residual nets can easily enjoy accuracy gains from greatly increased depth, producing results substantially better than previous networks.
About Residual Learning
원래는 each stacked layer가 H(x)를 approximate했었는데, 이제는 명시적으로 F(x) = H(x) - x를 학습하도록 변경
degration problem에서 직관에 반대되는 현상에서 아이디어를 얻음
- 만약 added layer를 identity mapping으로 구성한다면 직관적으로는 deeper layer가 최소한 shallower layer의 성능은 나와야 되지 않나
- degration problem은 multiple nonlinear layers에서 identity mapping approximation이 어렵다는 것을 나타냄
=> residual learning에서는, 만약 identity mapping이 optimal이라면, 단순히 weight을 0으로 drive하면 되기에 훨씬 간단함
If the optimal function is closer to an identity mapping than to a zero mapping, it should be easier for the solver to find the perturbations with reference to an identity mapping, than to learn the function as a new one.
About Identity Mapping by Shortcuts
F(x, {W_i}) = residual mapping to be learned
x = shortcut connection (identity)
x의 dimension을 맞춰주기 위해 W_s 같은 linear projection을 사용하기도 함
shortcut connection은 extra parameter나 추가적인 computation complexity 가 없다
form of residual function F is flexible => 이 논문에서는 two or three layers로 구성했다
About Network architecture
plain network:
baseline = VGG nets
- conv layer는 대부분 3x3 filters
- for the same output feature map size, the layers have the same number of filters;
- if the feature map size is halved, the number of filters is doubled so as to preserve the time complexity per layer.
- downsampling directly by convolutional layers that have a stride of 2
- ends with a global average pooling layer and a 1000-way fully-connected layer with softmax
fewer filters, lower complexity than VGG net (34-layer baseline has 3.6B FLOPs = only 18% of VGG-19 )
residual network:
- plain network에다가 shortcut connection을 추가
- 만약 input과 output의 dimension이 같다면 identity shortcut을 사용하고 (실선)
- 다르다면(실선)
- extra zero entries padded for increased dim
- 혹은 1x1 convolution을 활용해 dimension을 증가시키는 projection shortcut 방식 활용
Experiments
plain network
- trained with BN, forward propagation signal이 non-zero variance를 가짐
- forward / backward signal이 소실되지 않는다 !!
resnet network
- 34-layer가 18-layer보다 성능이 좋아지더라 => increased depth가 정확도 개선에 도움을 준다 => degradation problem 해결?
- verifies the effectiveness of residual learning on extremely deep systems
- 18-layer ResNet converges faster (than plain network) => Resnet은 early stage에서 빠른 수렴속도를 제공함으로써 optimization의 난이도를 낮춰준다
(A) zero-padding shortcuts are used for increasing dimensions, and all shortcuts are parameterfree (the same as Table 2 and Fig. 4 right);
(B) projection shortcuts are used for increasing dimensions, and other shortcuts are identity;
(C) all shortcuts are projections // extra parameters
A, B, C 모두 성능이 plain net보다는 엄청 높고, A<B<C의 성능을 보이더라
하지만 memory/time complexity, model size 때문에 논문에서는 A의 방법을 사용
'AI > DL' 카테고리의 다른 글
ClearML 이모저모 (0) | 2024.08.29 |
---|---|
서버 ClearML agent 설정 + 도커에서 돌아가게 세팅하기 (0) | 2024.08.29 |
효율적인 MLOps를 가능케 하는 ClearML (0) | 2024.08.29 |
lightning-hydra-template CIFAR-10 데이터셋 학습해보기 (1) | 2024.08.29 |
lightning-hydra-template 코드분석 (2) | 2024.08.29 |