ResNet
Deep Residual Learning for Image Recognition
위 논문을 살펴본다.
summary
기존 신경망은 layer depth가 증가할수록 degradation problem이 발생한다. Train error가 감소해도 test/validation error가 더 이상 감소하지 않거나 증가하는 현상은 주로 overfitting에 의해 발생한다. 반면 더 많은 layer를 추가한(deeper) 모델이 기존의 모델보다 train error가 같거나 더 높은 현상을 degradation이라고 한다. 즉 모델의 역량은 더 좋아져서 성능이 더 좋아야 하는데 오히려 나빠진 경우이다. 이는 모델의 깊이가 깊어질수록 최적화가 어려워지기 때문이다.
그러나, 새로 추가된 layer가 identity layer라면 이전 레이어의 output과 동일한 output을 내기에 성능이 더 나빠지지 않을 것이다. 이 아이디어에서 창안된게 resnet이다.
2~3 layer마다 short circuit을 두어 신경망이 H(x)라는 목적함수를 바로 학습하지 않고 H(x)-x를 학습하게 만들었다. 이 수식의 형태가 residual form 이라 resnet이라고 이름을 붙였다.
resnet을 사용하면 수렴도 더 빨라지며, dropout을 사용하지 않아도 degradation problem을 해결할 수 있다. resnet자체가 새로운 가중치를 추가하는 것이 아니기에 시간복잡도도 추가하기 전과 동일하다!
다만, resnet이 overfitting을 해결해 주는 것은 아니기에, 단순한 문제에 너무 깊은 network를 사용하지는 말자.
discussion
누구든지 이해할 수 있는 수학적 배경에, 아주 간단한 구조만 추가해도 성능이 개선된다는 점에서 정말 좋은 논문인 것 같다. deep layer를 가진 모델 중 resnet을 사용하지 않는 모델이 적을 정도로 많이 사용될 정도로 큰 영향을 준 논문이다. 이런 논문을 쓰고 싶다!
댓글남기기