paper summary and review/CNN(Convolutional Neural Network)

(CVPR, 2016) Deep Residual Learning for Image Recognition: Resnet

Huiwon 2021. 8. 1. 14:37
728x90

 

1. Introduction

지금까지 CNN을 개선해오며, layer 수를 늘리려 시도했으나 여러 문제들로 인해 좌절되어왔다. 이전까지 layer을 늘리면서 생긴 문제들은 다음과 같다.

  1. vanishing or exploding gradient

  2. overffiting

1번의 경우 gradient 값이 0에 근사하거나 혹은 지나치게 커져서 parameter의 update가 상당히 느려지고, 그 결과 layer을 늘렸음에도 불구하고 정확도가 높아지지 않는 현상이다. 2번의 경우 layer의 증가가 지나치게 복잡한 model을 만들어서, train accuracy는 매우 높지만 test accuracy는 높지 않은 현상이다.

 

1번의 경우에는 batch normalization과 같은 normalization technique 덕분에 해결되었다고 볼 수 있다. 또한 2번의 경우에는 다양한  data augmentation 기법들과 dropout과 같은 방법 덕분에 상당수 해결되었다.

그러나, layer을 더 늘려보니 또 다시 성능이 떨어지는 현상을 발견하게 된다.(Fig. 1) 이 현상은 앞서 언급된 두 문제와는 연관이 없으며,(1번의 경우 batch normalization으로 충분히 해결됨. 2번의 경우 train accuracy 또한 낮아지는 것을 설명할 수 없음) 다른 문제가 있음을 의미한다.

 

여기서 이 논문의 저자는 "degradation"이라는 문제점을 제시한다. 바로 layer을 쌓을 수록 optimization 하기 힘들어진다는 것이다.

예를들어, model의 학습 결과가 identity인 경우를 보자. 우리가 model을 쌓을 때엔, ReLU, sigmoid 등의 non-linear function을 추가해준다. 그렇게 여러층이 쌓이면 identity mapping을 만들기가 매우 어려워진다.(즉, parameter의 값들이 복잡해진다)

 

그래서 이 논문의 저자는 shortcut connection과 residual block의 개념을 사용해서 이 문제를 해결한다.

 

(to be continued)