본문 바로가기

【3】최근 CNN 응용 모델 이해하고 사용하기

ResNet (이론)

ResNet(Residual Network)은 마이크로소트프의 중국 연구진들이 개발하여 2015년 ILSVRC 대회에서 우승한 신경망이다. 놀라운 점은 대회에서 Top-5 오류율이 3.57%라는 것인데 보통 사람이 이미지를 인식할때 오류율이 약 5% 정도이므로 사람을 뛰어넘은 최초의 신경망으로 기록되었다. ResNet은 152개의 층 수를 가진 기존의 신경망과는 비교할 수 없을 만큼 깊은 신경망이다. 일반적으로 해결해야하는 문제가 복잡할 수록 신경망의 깊어 져야 하지만 기울기 손실(vanishing gradient) 혹은 기울기 폭발(exploding gradient)문제가 뒤따르고 깊어진 층 수 만큼 파라미터 수가 늘어나므로 에러가 커지는 상황이 발생한다. 다시 말해 기존의 구조로는 깊은게 무조건 좋은 건 아니라는 것이다. ResNet 연구진들은 신경망을 깊게 하기 위해서는 구조에 변화가 필요하다는 것을 깨달았다. 

 

그렇게 해서 등장한 것이 바로 ResNet의 핵심인 residual learning 이다. 기존의 신경망은 i번째 층과 (i+1)번째 층의 연결로 이루어져있는데 ResNet은 i번째 층과 (i+r)층의 연결을 허용했다. 이러한 형태의 연결을 ‘shortcut connection’이라고 하는데 쉽게 생각하면 지름길인 셈이다. 지름길을 사용해 떨어진 두 층을 연결함으로써 역전파 작동 시 이전 층으로 기울기가 쉽게 전파되는 이점이 있다. 아래 그림을 보자. 오른쪽에 위치한 ResNet 구조를 보면 r=2이므로 두개층 건너에 있는 층과의 연결이 허용 된 것을 볼 수 있다.

 

기존 방식을 먼저 보면 이웃한 층끼리의 연결만 있고 x를 입력으로 받아 H(x)를 출력한다. 또한 학습을 통해 적절한 가중치 값을 찾아 최적의 H(x)를 찾는 것을 목표로 하는 것이 일반적이다. 이때 목표를 조금 수정해 출력과 입력간의 차인 H(x)-x를 얻는 것이라고 해보자. 여기서 H(x)-xF(x)라고 하면 결과적으로 출력H(x)H(x)=F(x)+x 가 된다. 이 방식이 바로 Residual Learning의 기본 방식이 된다. 지름길을 통해 층 i의 입력 x를 층 (i+r)의 출력 F(x)에 더하기만 하므로  파라미터가 따로 필요없이 덧셈 연산만 추가되었으며 논문에서는 이를  identity mapping이라고 한다.

 

 

ResNet는 기본적으로 VGG19의 구조를 따른다. 여기에 convolution 층들을 추가해 깊이를 추가하고 shortcut을 추가하면 ResNet의 가장 간단한 구조(layer 34개인 plain network)가 된다.

 

 

ResNet 구조를 보면 shortcut의 표시가 실선이 있고 점선이 있다. 실선으로 표시된 대부분의 shortcut은 입력으로 들어온 공간의 차원 크기를 변화시키지 않도록 보폭과 패딩을 1로 하고 (1,1) 크기의 필터를 사용한다. 공간의 차원 크기가 변하지 않으니 i층의 입력을 (i+r) 층의 출력에 더하기가 쉬운 것이다. 그런데 모든 shortcut이 이러한 것은 아니고 일부 층들은 공간 차원의 크기를 줄이기도 하는데 합성곱 필터의 깊이가 두배가 되는 시점이며 이때의 shortcut을 점선으로 표시한다.

 

 

여기까지 Resnet의 이론적인 부분을 살펴 보았다.

 

 

 

 


작성자 홍다혜 ghdek11@gmail.com / 이원재 ondslee0808@gmail.com