Purumir's Blog

Machine Learning, SW architect, Management, favorites

ResNet

Deep Network는 Low/Mid/High level features를 추출하여 이를 통해 여러가지 작업을 수행한다. network depth는 이 경우 중요한 요소가 되는데 network가 깊어 질수록 degradation problem이 발생한다.

with the network depth increasing, accuracy gets saturated (which might be uprising) and then degrades rapidly.

[출처] “Deep Residual Learning for Image Recognition”

위 정의와 같이 network depth가 증가할 수록 accuracy가 일정 수준까지 증가후 급격히 감소하는 현상이 발생하게 된다.

network depth가 높으면 train error, test error가 모두 높은 현상이 발생하게 된다. 이는 deeper network를 통해 얻고자 하는 목적과 배치되게 된다.

ResNet은 이 degradation problem을 deep residual learning framework를 통해서 해결하고자 한다. Residual Network는 plan network를 기반으로 shortcut connections를 추가한것이다.

[출처] “Deep Residual Learning for Image Recognition”

위 stacked nonlinear layers에 의한 매핑을 H(x)라고 하면, 다른 stacked nonlinear layers mapping을 F(x):=H(x)-x라 할수 있다. 즉. H(x)=F(x)+x로 표현이 가능하다. 이를 통해 H(x) 대신에 Residual Function인 F(x)를 알아냄으로서 문제를 해결할수 있다. 이것이 Residual Learning의 개념이다.


[Identity Mapping by Shortcuts]

input, output의 dimension이 동일한 identity mapping의 경우 위 그림을 수식으로 좀 더 구체적으로 표현하면 다음과 같다.

위와 같은 identity mapping의 경우 추가적인 parameter 혹은 computational complexity를 유발하지 않는다. 학습에 있어서도 SGD with backpropagation을 통해서 학습이 가능하다.

Residual Net은 깊이가 증가함에 따라 accuracy도 같이 증가하여 기존의 network들보다 깊이가 깊어져도 성능저하를 예방할수 있다.

이 논문에서는 plain network와 residual network간 parameter, depth, width and computational cost가 같으므로 상대적인 성능을 비교할수 있어 이를 비교하고 있다.

[Projection Mapping by Shortcuts]

input, output의 dimension이 다른 경우는 다음과 같이 linear projection을 통해 연산을 한다.

{작성중}