Deep Learning study

Deep Residual Learning for Image Recognition (ResNet) 본문

AI/papers

Deep Residual Learning for Image Recognition (ResNet)

HwaniL.choi 2019. 2. 23. 17:14
반응형

최근에( 여기서 최근은 이 논문의 저자가 논문을 썼을 당시를 말한다..)보여지는 여러 결과들이 network의 깊이가 매우 중요하다는 것이 드러나고 있다. 그 예로 ImageNet dataset challenge의 결과를 보면, 좋은 성과를 낸 것들은 모두 very deep한 모델들 이였다.

하지만 과연 network의 깊이만 깊어진다고(layer 들이 많아짐) 더 좋은 network가 될까? 물론 그것은 아니다. 가장 흔히 발생하는 vanishing/exploding gradients의 문제가 있다. 하지만 이러한 문제들은 Batch Norm 과 같은 방법으로 많은 부분 해결이 가능하다.  또한 normalized initialization, intermediate normaliation layer를 사용함으로써 해결 가능하다.

그렇지만 여기서 다룰 문제는 vanishing/exploding gradients의 문제가 아니다.  deep network가 수렴할때 degradation 문제가 발생하게된다. degradation 이라고하면, network의 깊이가 증가하면서 accuracy가 saturate되고(saturate 는 포화상태가 되어 더이상 무언가를 받아들일 수 없는 상태가 된것을 말한다.) 급격히 저하되는것을 말한다.

이것을 overfitting의 문제라고 생각 할 수 있지만 그것은 아니다. 왜냐하면 overfitting이라는 것은 training error는 낮게 나오지만 testing error 가 높은 경우지만 degradation 문제는 training error마저 점점 높아지는 현상이다.


위의 그림에서 보듯이 layer가 많아짐에 따라(깊이가 깊어짐에 따라)training error가 증가하는 degradation 현상을 볼 수 있다.

이 논문에서 이러한 degradation 현상을 해결하기위해서 deep residual learning framework를 소개한다.


Residual Learning


위의 그림에서 보는 것이 일반적인 Neural network 이다. H(x) 는 어떤 한 입력값(x)이 다른 몇 개(위에서는 2개)의 layer를 거친 후의 출력함수이다.

여기서 degradation의 문제가 H(x)가 identitiy mapping의 역할을 잘 하지 못하는데서 온다고 생각해 residual function을 설계해 학습하기로 한다.

그렇다면 이제는 residual function(F(x) := H(x) - id(x) ( = x) ) 을 학습하게 된다. 그리고 residual function에서 H(x) = F(x) + x임을 알게 된다.

F(x) + x 라는 식을 통해 위의 그림처럼 network를 설계하게 된다.  여기서 만약 identity mapping이 optimal 이라면 F(x)는 0이 되게 되고 그 후에 identity mapping 을 하게 되므로 F(x) + x 는 identity function으로써의 역할을 잘 수행 하게 된다.

하지만 실제로는 identity mapping이 optimal이 되어 F(x)가 0이 되기란 힘들다. 다만 optimal function 이 identity mapping 에 가깝다면 그것을 참조 할 수 있고, 그로인해서 학습하는데에 도움이 될 수 있다.

즉, 아예 새로운 함수 H(x)를 학습시키는 것 보다는, identity mapping 을 이용해 F(x)가 조금 더 identity를 따라갈 수 있게 하는 것이 도움이 될 것이라는 말이다.


(사실 이부분이 잘 와닿지가 않았는데 나름 생각해보자면, 이미지의 경우에 network가 깊어지면 feature들은 많이 뽑아낼 수 있을지 몰라도 원래의 이미지에대한 형태는 점점 잊혀지기 마련이다. 따라서 그 형태들(identity)을 잊지않도록 계속 상기시켜주는 것이 identity mapping의 역할이라 생각한다. 원래의 이미지 형태를 기억하고 있어야 그에 맞는 feature들을 정확하게 뽑아 낼 수 있지 않을까..? 

최근에 다시 드는 생각인데 , F(x)를 0 이 되도록 한 다는 말은 이미 이전 레이어에서의 output이 원하는 optimal한 output 이여아한다는 말 이지 않을까, 따라서 F(x)가 0 에 근사하도록 학습한다는 뜻은 현재의 레이어의 전 output에서 더 확실한 결과가 나오게 하도록 강제하는 역할이 아닌가 생각해본다.... )


Identity Mapping by Shortcuts


위 Residual learning : building block 을 정의하면 아래 식 처럼 된다.

x와 y 는 input 과 output 이고 Wi는 layer의 weight이다. F(x,{Wi}) 는 residual mapping을 나타내는 function이다. 예를들어 위의 그림처럼 2개의 lyaer들이 있다면, F = W2σ(W1x) 로 표현된다. 여기서 σ는 ReLU를 나타내고, W1과 W2는 각 layer의 weight이고 x는 input vector이다. 식의 편의상 bias는 생략되었지만 실제로는 꼭 고려해 주어야 한다.

위 식에서 F + x 가 뜻하는게 shortcut connection 인데 이것은 eliment-wise addition 으로 수행되어진다. 즉, 다른 어떠한 parameter( 다시말해서 추가적인 weight layer가 필요 없다.)도 필요하지 않고 계산에서의 어떠한 영향도 주지 않는다. ( 계산속도에서 거의 영향을 미치지 않는다.  = 모델의 성능에 영향을 주지 않는다.)

eliment-wise addition을 수행하기 때문에 각 행과 열의 성분을 더하는 것이다. 따라서 당연하게도 F의 출력 dimension 과 x의 dimension은 같아야 한다는 것을 알 수 있다.

하지만 이것들의 dimensino이 다르면 어떻게 해야할까?  만약 그러하다면 linear projection Ws를 사용해 shortcut connection(x)의 dimension을 조정해 준다. (projection shortcut 에서는 1 by 1 convolution layer를 사용해 dimension을 맞췄다고 한다. )

Ws 는 squre matrix사용하게 되지만, degradation 문제를 해결하는데 있어서 identity mapping 만으로 충분하고 계산상의 효율성때문에 모든 곳에서 쓰진 않는다. ( dimension을 조정해 주어야 할 때만 사용한다. )


Network Architectures


왼쪽이 plain network 의 구조이고, 오른쪽이 shortcut connection 을 추가한 Resnet의 구조이다. 오른쪽의 Resnet에서 실선으로된 shortcut connection은 같은 dimension 일때이고, 점선으로된 shortcut connection은 dimension 이 다를 때 위에서 말한 linear projection을 하게 된다.



Experiments


왼쪽의 그래프가 각각 18개와 34개의 layer를 가진 plain network이고 , 오른쪽의 그래프가 shortcut connection 을 추가한 각각 18개의 34개의 layer를 가진 ResNet이다. plain network를 보면 layer가 증가할 수록(network의 깊이가 깊어질수록) training error와 validation error가 증가하는 것을 볼 수 있다. 반대로 shortcut connection 을 추가한 Resnet 에서는 layer가 증가할 수록 training error도 감소하고 validation error도 감소하는 것을 볼 수 있다.  즉 , degradation 문제가 어느정도 해결 되었다고 볼 수 있겠다.

추가적으로 그래프 아래의 마지막 줄이 무슨 말인가 하면, ResNet의 연산은 단순히 plain network에서 shortcut connection만을 이어주어 eliment-wise addition(단순 matrix의 덧셈) 연산만을 추가한 것 이므로 어떠한 추가적인 parameter도 필요하지 않다는 말이다.

더 자세한 ResNet의 구조나 다른 모델과의 비교 , 다른 데이터 셋에서의 성능을 보려면 아래의 원 논문을 참조하길 바란다.



Reference

[1] Deep Residual Learning for Image Recognition



반응형
Comments