ResNet은 왜 좋은 성능을 나타내는가?

이미지 인식 작업에서 ResNet 1을 기반으로 한 기술은 높은 성능을 보여줍니다.
Deep Learning이라고 해도, 그때까지 십 몇층이라는 네트워크였던 것이, ResNet의 등장에 의해 100층을 넘은 네트워크를 만들어도 학습할 수 있게 되어, 성능이 올랐다고 되어 있습니다. 왜 ResNet이 높은 성능을 나타내는지 연구한 논문을 읽었으므로, 개요를 소개합니다.

우선, ResNet은 아래 그림과 같은 Residual net 모듈을 반복하여 구성됩니다.


기존의 Deep Learning 네트워크(VGG 등)는 아래 그림과 같은 모듈을 반복하여 구성됩니다.


각 그림의 우측의 설명과 같이, weight layer(Convolution 계층)를 통과한 후의 출력의 기대를, 종래의 네트워크에서는 바람직한 값을 다이렉트에 구하는 것에 대해, ResNet에서는 입력값인 x와의 차분으로서 요구하면 설정해, 쇼트 컷 커넥션을 붙이고 있습니다.

ResNet이 어떻게 정밀도 향상을 이루는지에 대해 소개하는 논문 "Residual Networks Behave Like Ensembles of Relatively Shallow Networks"2 하지만 아래 그림의 왼쪽에 표시된 Residual net 모듈은 아래 그림의 오른쪽에 표시된 것처럼 여러 경로를 취할 수 있는 네트워크와 등가로 다시 그릴 수 있다고 합니다.


f1->f2->f3에서 그 위에 있는 각각의 residual 분기를 모두 통과하는 패턴도 있으면, 맨 위의 루트만 통과하는 입력이 그대로 출력하는 패턴까지 취할 수 있습니다.
이와 같이 층수도 다른 많은 네트워크 패턴에서의 학습이 됨으로써 앙상블 학습의 효과를 얻을 수 있다는 것입니다.
이것은 아래 그림과 같이 추론시에 레이어를 삭제했을 때의 에러율의 상승이 매끄러워지기 때문이라고 주장하고 있습니다.


또 아래 그림에서는 추론시에 레이어를 삭제했을 때의 에러율에 대해 VGG와 비교하고 있습니다. VGG에서는 네트워크가 하나의 구조이므로 당연히 붕괴해 버려 에러율이 90%를 넘어 오지만, ResNet에서는 어느 층을 제거해도 에러율의 상승이 매우 작은 것은 놀랍다고 말하고 있습니다 .
(downsampling하는 레이어를 제거하면 다른 레이어보다 약간 에러가 오르는 것이 작은 피크로 나타납니다)


Attention Branch Network의 경우 여기 페이지에 기사를 썼습니다.



ResNet 

Residual Networks Behave Like Ensembles of Relatively Shallow Networks 

좋은 웹페이지 즐겨찾기