본문 바로가기

ML & AI

잔차 학습<residual learning> in ResNet

* 핸즈온 머신러닝 14장을 읽고, 이해가 가지 않는 내용을 정리한 글임.

 

 

책을 읽던 도중, ResNet의 잔차학습이라는 것이 무슨 의미가 있는지 이해가 전혀 되지 않았다.

 

구글링을 통해 간단히나마 이해한 내용을 정리해보도록 한다.

 

 

일반적인 신경망에서, 우리의 목적은 목적함수 h[x]를 모델링하는 것이다.

즉, input x를 넣었을 때, 그 모델을 통과해서 나온 출력값을 이용하여 산출한 목적함수 h[x] [cost function이라고 가정하자] 는 0에 가까워야 할 것이다.

 

그런데 input x를 네트워크의 출력에 더한다면, [이를 skip connection이라고 한다],

모델의 목적은 H[X] - X를 최소화 하는 것이 된다. H[X] - X를 residual function이라고 해서, 이 주제 이름이

잔차학습인 것이다.

 

그럼 왜 이런 신박한 짓을 하는가?

 

구글링 의하면, 다음과 같은 장점이 있는듯 하다.

 

1. 빠른 훈련속도

2. Gradient Vanishing 문제 해결

3. 연산이 간단해져 더 깊게 층을 쌓을 수 있다.

 

먼저 3번의 경우, 다음의 링크에 설명이 잘 되었으니 참고 바란다. 

기본적인 idea는 행렬의 곱셈을 덧셈으로 치환할 수 있다는 아이디어다.

https://m.blog.naver.com/siniphia/221387516366

 

CNN 모델 탐구 (6-2) Identity Mapping in ResNet

1. 소개 ResNet을 개발한 마이크로소프트 연구팀은 파생 연구로 ResNet에 적용된 Identity Mapping의...

blog.naver.com

 

1번의 경우, 논문에서도 '가정' 된 사안으로 보인다.

Residual mapping(잔차학습의 경우) 는 어찌됐든 input X를 참고하여 모델을 학습시키는 것이다.

이 때 H(X) - x = 0 이라는 최적해를 우린 이미 알고 있기 때문에, 기존의 x를 참고하지 않고 h(x)를 모델링 하는 것보다 더 쉬울 것이라는 가정을 한다. 

 

2번.  잔차모델에서는, 모델의 출력값이 F(X) + X의 꼴로 주어지고, 이 출력값을 미분하면 F'(X) + 1 형태가 된다. 이러한 단위 잔차유닛이 연속적으로 이어져있는 심층 잔차 네트워크에서는, + X라는 항이 Gradient Vanishing 현상을 억제하는 일종의 규제항 역할을 하게된다. 수학적으로나 경험적으로나, 이러한 잔차 신경망은 비슷한 깊이의 기존 신경망에 비해 훨씬 더 용이하게 수렴한다고 한다.