https://arxiv.org/pdf/1512.03385.pdf
초록
딥러닝에서 neural networks가 깊어질수록 성능은 더 좋지만 train이 어렵습니다. 그래서 이 논문에서는 잔차를 이용한 잔차학습 (residual learning framework)를 이용해서 깊은 신경망에서도 training이 쉽게 이뤄질 수 있다는 것을 보이고 방법론을 제시했습니다. 함수를 새로 만드는 방법 대신에 residual function, 잔차 함수를 learing에 사용하는 것으로 layer를 재구성합니다.
결과적으로 152개의 layer를 쌓아서 기존의 VGG net보다 좋은 성능을 내면서 복잡성은 줄였습니다.
소개
딥러닝에서 layer가 더 깊어지면 깊어질수록 모델의 accuracy가 saturating되고 training error가 높아져서 성능 저하되는 degradation 문제가 발생합니다. 이 문제는 overfitting의 문제가 아니기 때문에 주목받습니다.
더 얕은 architecture와 더 많은 layer를 추가하는 더 깊은 architecture를 고려하면 추가된 layer는 identity mapping이고, 다른 layer는 학습된 shallow model에서 복사됩니다.
따라서 더 깊은 model은 더 얕은 모델보다 더 높은 training error를 생성하지 않아야 합니다.
그 문제점을 해결하기 위해 제시한 새로운 개념이 Deep Residual Learning입니다.
layer에서 학습하는 양을 줄여서 optimization 과정을 더 쉽게 만드는 개념입니다.
기존의 바로 mapping 하는 것이 H(x) 이면 이 논문에서는 비선형적인 layer 적합인 F(x) = H(x) - x를 제시합니다. 이를 전개하면 H(x) = F(x) + x 의 형태가 됩니다.
F(x) + x 는 Shortcut Connection과 동일한데 이는 하나 또는 이상의 레이어를 skip하게 만들어줍니다. identity mapping으로 shortcut connection이 되게 하면서 skip을 만듭니다.
이 Identity Short Connection은 추가적인 파라미터도 필요하지 않고 복잡한 곱셈 연산도 필요하지 않는 것이 장점입니다.
위의 내용을 그림으로 이해해보면 다음과 같습니다.
x 는 input인데 Model 인 F(x)라는 일련의 과정을 거치면서 자신(identity)인 x가 더해져서 output으로 F(x) + x 가 나오는 구조입니다.
그래서 이제부터 실험적인 방법을 통해 degradation 문제를 보이고 이 논문의 방법을 평가하는 것이 나옵니다.
이 논문의 목표 두 가지는 다음과 같습니다.
1) plain net과 다르게 residual net이 더 쉽게 최적화 되는 것 보이기
2) residual net이 더 쉽게 accuracy높이는 것 보이기
Identity Mapping
y = F(x, {Wi}) + x.
따라서 는 residual block에 속하는 layer들에 대한 학습 결과와 그 전까지 학습된 결과를 더해준 값입니다.
Shorcut connection
ResNet에서 layer는 Residual function 를 학습하는데요.
그런 다음 가 나중에 결과에 추가되며 이를 shortcut connection이라고 합니다.
input/output channel을 변경할 때와 같이 와 의 차원이 같지 않으면 linear projection을 추가하여 차원을 일치시킵니다.
y = F(x, {Wi}) + Wsx.
- = number of inputs
- = mapping function from input to output, normally H(x) would be learned)
- = residual function
- proposed:
- is learned and is recovered by adding
만약 layer가 2개 존재하는 함수 F를 생각해본다면, 식을
로 생각할 수 있습니다. 는 ReLU activation을 의미합니다.
입력값 를 출력값에 더하는 identity mapping을 수행하여 gradient가 잘 흐를 수 있도록 지름길처럼 도와주는 것을 shortcut connection이라고 부름
ImageNet dataset을 바탕으로 실험을 진행한 결과이며, ResNet layer의 수에 따라 error가 낮아짐을 확인할 수 있습니다.
가장 처음에 나왔던 Figure 1과 비교하여 생각해본다면, layer가 더 deep해졌지만, error가 떨어지는 결과로 성능을 입증하고 있습니다.
Bottleneck Architectures
ResNet은 위 Table 1을 통해 확인해볼 수 있듯이, 18-layer부터 152-layer까지 layer를 점점 더 깊게 쌓았는데요.
layer가 더 깊어질수록 dimension의 크기가 커집니다.
그 의미는 parameter 수가 많아지게 되고, 복잡도가 증가합니다.
이를 해결하기 위한 아이디어가 bottleneck architectures입니다.
bottleneck architectures는 1x1 filter를 사용합니다.
1x1 filter를 사용하여 dimension의 크기를 줄인 후에
다시 1x1 filter를 사용하여 dimension의 크기를 늘립니다.
이 모습이 마치 bottleneck과 비슷하여 해당 용어를 빌려 사용했습니다.
위 그림에서 왼쪽은 64, 오른쪽은 256 크기의 dimension이 input으로 들어옵니다.
하지만 ResNet의 경우 bottleneck architecture를 이용하기 때문에 두 그림의 time complexity는 비슷하게 맞춰집니다.
따라서 ResNet은 layer의 수가 많아지더라도 모델의 크기가 다른 모델들에 비해 비교적 작습니다.
결론
일반 CNN은 layer가 깊어질수록 오히려 error가 증가하는 모습을 보여주었는데
residual learning을 도입한 Deep residual learning framework을 통해 깊이가 증가함에 따라 error가 감소하고 plain network보다 훨씬 더 좋은 성능을 보여줍니다.
- residual learning은 optimize를 용이하게 합니다.
- degradation 문제를 해결하였습니다.
- deep neural network의 더 빠른 훈련 time을 가집니다.
- 더 깊은 network의 error를 낮췄습니다.
결론: ResNet은 이전 model보다 더 깊은 layer를 가지지만, parameter수는 적으므로 속도는 빠르며 성능면에서도 더 뛰어남을 입증했습니다.
'영상처리 > 논문' 카테고리의 다른 글
Vision Transformer(ViT) : An Image Worth 16 x 16 Words (109) | 2023.05.15 |
---|---|
WeatherNet 다중 클래스 분류 논문 구현 아이디어 (192) | 2023.02.27 |
DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation(주제 기반 미세조정 텍스트-이미지 확산 모델) (0) | 2022.12.15 |
논문 읽는법 (10) | 2022.12.14 |
다중 클래스 아다부스트 알고리즘 (0) | 2022.12.13 |