Deep Residual Learning for Image Recognition
논문 : 링크
문제 인식
neural network 의 깊이가 깊어질 때, 어느 정도 높아지다가 일정 수준에서 성능 감소가 발생하는 degradation 이 있음.
저자는 이를 overfitting 의 이슈로 보지 않음. 그 이유는 test 뿐만 아니라 training 에서도 그 error 가 상승하기 때문, 이에 따라 저자는 모델의 깊이가 깊어질 수록 최적화의 난이도가 함께 변화한다고 보았음.
방법 제안
저자는 $n$ th layer 까지 학습한 representation 이 있고, $n+1$ th layer 를 추가했을 때 해당 layer 가 identity mapping 이라면 $n$ th layer network 보다 성능이 나빠지지 않아야 한다는 것으로 시작했다.
또한 이전 layer (shallower layer) 에서 학습한 표현을 새로운 것으로 만드는 것보다, 학습한 것을 그대로 가져가면서 고도화된 표현을 위한 추가적인 (residual) 표현을 습득하는 방법이 최적화 관점에서 더욱 효율적이라는 관점을 제시함.
수식으로 표현하면 아래와 같다.
기존의 neural network (논문에서 plain network라고 함) : $y = F(x, \{W_i\})$
residual neural network : $y = F(x, \{W_i\}) + x$
결과
residual learning 을 통해서 network 의 layer 를 deep 하게 쌓을 수록 성능이 좋아지게 만들 수 있게 되었다. (degradation 문제 해결)
residual learning 은 말그대로 주어진 layer 에서는 이전 layer 에서까지 누적으로 학습한 표현이 아닌 나머지 표현에 대한 학습이 이뤄지기에, plain network 보다 학습되는 표현의 norm 이 작게될 것이라고 기대할 수 있다. 이에 따른 실제 분석 또한 그렇게 나왔으며, 만약 주어진 layer 의 optimal mapping 이 identity 라면 norm 은 0이 될 것이다. $x = x + 0$
생각
수식으로 표현하면 $x_n$ 가 이전 $n$th layer 에서 나온 표현이라고 할 때, 이 값은 이 자체로 충분히 informative 할 것이다. (shallow network 의 성능도 어느 정도 쓸만하다)
이 $x_n$ 이 가지고 있는 성능을 그대로 가져가면서 목적 함수를 최적화하는 추가적인 표현을 학습하는 방법은 $x_{n+1} = x_n + \underline{\alpha}$ 이 될 것이다. residual learning 을 사용하면 $n+1$ th layer 는 norm 이 상대적으로 큰 $x_n$ 은 학습의 대상이 되지 않고 오로지 $\alpha$ 에 대해서만 최적화를 진행한다. 이는 해당 layer 에게 부여된 학습 난이도를 크게 덜어준다.
identity mapping by shorcuts 의 경우 상속세가 0%인 지식의 상속이라고 비유를 들 수 있을 것 같다.
또한 deep network 에서 자주 등장하는 키워드로 vanishing gradient 가 있는데, 해당 문제는 batchNorm 등으로 많은 부분 잘 해소되었다. 난 network 의 depth 가 커질 수록 이전 layer 에서 학습되던 information 이 다음 layer 로 넘어갈 수록 vanishing 되어가는 vanishing representation 문제가 발생할 것이라고 생각한다.
plain network 에서는 이전에 학습한 내용의 tweak 이 누적되는 형태인데, 그렇게 되면, bottom layer 에 있던 representation 이 top layer 에도 온전히 있기엔 어려울 것이기 때문이다. 이러한 vanishing 을 막기 위해서는 더 많은 학습 횟수를 요구하는데, 이는 depth 가 커짐에 따라 기하급수적으로 그 값이 커지게 될 것이다. residual connection 이 하는 명시적인 representation 의 copy 는 이러한 vanishing representation 문제를 완화시켜줄 수 있을 것이라고 생각한다.