papers

Residual connection은 왜 효과적일까?

Mingeon Cha 2023. 6. 26. 16:51

Photo by Alex Kalinin on Unsplash

Neural network를 학습할 때, 우리는 보통 더 '깊은' 모델이 더 좋은 성능을 내리라는 기대를 갖습니다. 하지만, 계속해서 layer를 추가하여 일정 깊이에 도달한 모델은, 오히려 그 정확도가 감소하는 현상(degradation)을 보입니다. 이 글에서 설명할 residual connection은 이 문제를 단순하고 효과적으로 해결하여 수많은 모델에 차용되었고, 현재는 대부분의 cnn과 transformer에 이르기까지 neural network architecture에 빠지지 않는 중요한 요소가 되었습니다.

 

 


 

 

Residual connection의 구조

일반적인 feed-forward 방식의 신경망에서, input은 앞에 놓인 layer들을 차례차례 통과하게 됩니다. 각 layer의 input은 이전 layer의 output이고, 다른 경로로는 layer의 건너편에 도달할 수 없는 것이죠. 

residual block

 

반면, residual connection은 '건너뛰는' 경로를 제공합니다. 몇 개의 layer 묶음을 하나의 block으로 생각해 봅시다. 여기에서 input은 일반적인 방식으로 block을 통과함과 동시에, identity mapping을 통해 단숨에 block의 끝부분으로 연결됩니다. block의 끝부분에서, 두 가지 경로로 올라온 신호들은 element-wise로 더해지고, relu 등의 nonlinearity를 거쳐 output으로 산출됩니다.  

 

기존 block과 residual block을 비교했을 때, 이러한 구조는 단순한 '연산의 추가'로 보이기도 합니다. 이것이 깊은 신경망의 학습을 더 쉽게 만들어 주는 이유는 뭘까요? 신경망의 입장에서, 기존 mapping을 학습하는 것과, residual mapping을 학습하는 것에는 어떤 차이점이 있을까요?

 

 

 

degradation problem

degradation problem

먼저, 깊은 신경망을 학습할 때 발생하는 문제인 degradation problem을 알아보겠습니다. 신경망의 깊이를 늘려 가면서 학습을 진행하다 보면, acuracy가 점점 수렴하다가 급격히 퇴화하는 것을 발견할 수 있습니다. 이는 vanishing gradient 문제와는 다른데, 모델의 학습 자체는 이뤄지고 있기 때문입니다. 또한 overfitting에 의해 발생하는 현상도 아닌 것이, test error와 동시에 training error도 증가하기 때문입니다.

 

모델이 깊어지게 되면 학습이 지나치게 난해해져 gradient decent를 이용한 최적화에 어려움이 발생하는 것 같습니다. 학습의 난이도를 완화해 줄 방법이 필요해 보이는데, Deep Residual Learning for Image Recognition [1]에서는 상술한 residual connection으로 이 문제를 해결하고 있습니다. 

 

 

 

Motivation - identity mapping

[1] 논문에서는 identity mapping의 중요성을 설명하고 있습니다.

이 아이디어는 하나의 직관에서부터 비롯됩니다. 더 깊은 신경망이 그보다 얕은 신경망 '이상'의 성능을 보장하는 가장 간단한 방법이 무엇일까요? 바로 얕은 신경망 부분은 그대로 복사하고, 추가된 부분은 모두 identity mapping으로 대체하는 것입니다. 어떤 이유에선지, 우리의 깊은 신경망은 이러한 단순한 구조적 해결책을 생각해내지 못하는 것처럼 보입니다.

 

이에 [1] 논문은 하나의 가설을 세웁니다. neural network는 identity mapping을 학습하는 것을 어려워한다고 말이죠. 합성곱 신경망의 연산 방식(하나의 kernel이 전체 feature에 곱해진 뒤 더해지는)을 생각해 보면, input과 동일한 output을 산출하는 것은 지극히 어려워 보이긴 합니다. 거기에 nonlinearity의 존재까지 생각하면, neural network에게 identity mapping을 학습하는 일은 상상 이상으로 어려울 수 있겠네요.

 

residual block

 

Residual connection은 신경망이 full mapping 대신, residual mapping(output에서 input을 뺀 mapping)을 학습하게 만듭니다. 학습하기 어려운 identity mapping을 따로 제공하고, 그것을 뺀 나머지 부분만 학습하게 만든 것이죠. 논문의 가설이 적중한 것인지, 이 단순한 변화는 엄청난 학습 효과의 향상을 불러왔습니다. 

 

좌측은 기존 network의 test/training error, 우측은 residual connection을 적용한 network의 test/training error

 

 

위 첫 번째 그림에서와 같이, residual connection을 적용한 Resnet은 상술한 degradation problem을 해결했으며, 기존 SOTA 모델이었던 VGGnet, Googlenet 등을 큰 성능 차이로 따돌렸습니다. 또 Resnet에 대해 주목할 점은, 많아야 40 layer 수준이었던 기존 network보다 훨씬 깊은, 150 layer 이상의 잘 작동하는 모델을 만드는 데 성공했다는 점입니다. 

 

 


 

 

다른 해석들

많은 인공 신경망 기법들과 마찬가지로, 우리는 residual connection에 대해 완전히 이해하고 있지는 못합니다. 그저 그것이 학습의 난이도를 크게 완화시킨다는 것을 경험적으로 알고 있을 뿐이죠. residual connection의 유용성이 밝혀진 이후, 원 논문의 가설(identity mapping) 이외에도 그 기능을 해명하려는 다양한 시도들이 있어 왔습니다. 

 

 

얕은 신경망들의 앙상블 (ensemble) 로서 기능한다.

기존의 feed-forward 신경망에서는, input signal이 모든 layer를 빠짐없이 지나며, 하나의 긴 경로를 따라 흘러갈 수밖에 없습니다. 반면 residual connection이 있는 신경망은 input signal이 각 블록을 건너뛸 수 있게 함으로써, signal이 흘러갈 다양한 짧은 경로를 제공하고 있다고 할 수 있습니다. 

residual network를 개별의 경로로 뜯어서 관찰해 봅시다. 블록의 개수를 n개라고 가정하면, residual connection은 두 가지의 경로를 제공하므로 전체 경로의 수는 2^n개가 될 것입니다. 만약에 각각의 경로가 '거의 독립적으로' 행동한다면, 경로들을 각각 하나의 small network로 간주할 수 있습니다. 결과적으로, 우리는 전체 2^n개의 독립적인 네트워크의 ensemble을 갖게 됩니다. 

 

Residual Networks Behave Like Ensembles of Relatively Shallow Networks [2]에서는, 실험적인 결과로 이 가설을 증명합니다. 각각의 network가 거의 독립적이라면, 학습이 완료된 네트워크에서 하나의 building block의 역할(skip connection을 제외한)은 그리 크지 않을 것입니다. 왜냐하면 전체 2^n개의 네트워크에서 하나의 경로가 삭제된다고 해도, 2^(n-1) 개의 손상되지 않은 네트워크가 남아 있을 것이기 때문입니다. layer 하나를 제거하면 전체 경로가 손상되는 기존의 신경망과 대조되는 부분입니다.

 

해당 논문에서는 building block을 하나씩 제거하는 연구를 통해, 각 경로들이 서로 의존하는 정도가 크지 않다는 것을 증명합니다. 따라서, 전체 residual network는 그 경로들(small networks)의 ensemble처럼 기능하는 특징을 보입니다. 

 

경로들의 길이 분포, 경로 길이 당 gradient의 크기 분포

 

각 경로를 하나의 small network로 생각한다면, 각각의 gradient 또한 따로따로 분석될 수 있을 것입니다. [2] 논문에서 학습 시 gradient 규모를 경로 별로 비교한 결과, 대부분의 gradient가 상대적으로 짧은 경로(5~17)에 밀집되어 발생한다는 것을 발견했습니다. 그보다 더 긴 경로들에서는 거의 gradient가 발생하지 않는데, 이는 모델 학습 과정에서 vanishing gradient가 발생하는 (상대적으로 긴) 경로들을 회피하고, gradient를 운반할 짧은 경로들을 활용하여 학습이 이루어지고 있음을 의미합니다.

 

즉, residual network는 수많은 경로들을 만들어내 model ensemble처럼 행동하고, 그 경로들 중에서 '의미 있는' 상대적으로 짧은 경로들만 선택하여 학습함으로써 vanishing gradient 문제를 회피하고 있는 것입니다. 

 

 

 

shattered gradient 문제를 해결한다.

The Shattered Gradients Problem: If resnets are the answer, then what is the question? [3]에서는, residual connection이 shattered gradient problem을 해결한다고 주장합니다. 

shattered gradient 문제란, 모델 학습 시 gradient가 white noise와 같은 형태로 발생하는 문제인데, 이렇게 되면 뉴런의 변화가 전체 네트워크에 미치는 영향이 불안정해져서, 학습을 어렵게 만듭니다. 이 현상은 모델의 깊이가 깊어질수록 심각해지는데, 위 그림에서와 같이 residual connection을 추가한 네트워크는 gradient에 공간적인 구조를 추가하여 학습을 도와준다고 합니다. 

 

 


 

 

참조문헌

1. K. He, X. Zhang, S. Ren, and J. Sun. Deep Residual Learning for Image Recognition (2016), CVPR 2016.

 

2. A. Veit, M. Wilber, and S. Belongie. Residual Networks Behave Like Ensembles of Relatively Shallow Networks (2016), NIPS 2016.

 

3. D. Balduzzi, M. Frean, L. Leary, J.P. Lewis, K. W.-D. Ma, and B. McWilliams. The Shattered Gradients Problem: If resnets are the answer, then what is the question? (2017), ICML 2017.

 

4. towardsdatascience - What is residual connection?

'papers' 카테고리의 다른 글

Transformer와 GPT를 비교해 봅시다  (6) 2024.09.29
R-CNN은 어떻게 물체를 탐지할까?  (0) 2023.07.23