[Model Reivew] ResNet Reivew
in DeepLearning on Paper, Model
ResNet이란
ResNet은 마이크로 소프트 연구팀이 개발한 이미지분석 구조이고 본 논문은 CNN구조에 있어 약점인 gradient Vanishing 문제를 해결하여 더 깊은 계층을 쌓게 해줄 수 있게 하였고 이러한 문제를 해결하는 방법으로 Residual Network를 정의하였다. 이는 간단하게 구현가능할 뿐더러 이해도 쉽고 그 성능또한 효과적이기 떄문에 논문이 발표된 5년이 지난 지금도 계속하여 인용되어 사용되고 있다.
위 그림과 같이 층이 깊어 질수록 CNN의 구조는 본래 더 좋은 성능을 보여야하지만 오히려 32-layer가 않좋은 성능을 보인다 이는 많은 이유가 있지만 대표적으로 Gradient Vanishing 문제때문이다. 이를 해결하기 위한 잔여학습을 적용한 CNN은 층을 쌓을 수록 더 좋은 성능을 보임을 알 수 있다.
ResN 이전의 개념
CNN
CNN은 이미지의 특징을 추출하는 계층구주로 일반적으로 CNN에서 레이어가 깊어질 수혹 채널의 수가 많아지고 너비와 높이는 줄어든다 컨볼루션 레이어의 서로다른 크기이의 필터들은 각각의 특징값을 추출하게된다.
VGG19
VGG19는 한 마디로 정의하면 작은 크기의 필터를 사용하여 층을 깊게 하는 것이 학습에 유리하는 논문이다. 따라서 5X5 필터보다는 3X3필터를 사용하여 두번 특징을 추출하는 것이 더욱 유리하는 것이다. 이러한 깊을 수록 강해지는 구조는 위에서 말했던 문제들로 인해 한계를 가지게된다. ResNet은 이러한 깊은 구조를 채용하여 한계를 해결하였다.
ResNet의 구조
ResNet은 위 사진 하나만으로 설명 가능할 만큼 쉽게 개념을 이해할 수 있다. 이전의 input x를 두번의 layer를 통과해서 결과를 얻었던 반면 오른쪽 그림과 같이 residual block을 만들어 출력값에 input값인 x를 더함으로써 최적화의 난이도를 낮추고 이를 Feed Forwarding 과 Backpropagation시에 직접적인 전파(propagation)을 하게 해준다. 이런 clean한 정보의 통로가 최적화에 도움을 주는 것이다
좀더 자세히 말하면 일반적인 CNN의 경우 최종 결과값이 수많은 행렬들의 곱셈으로 표현되는데 ResNdet은 이 Clean한 루트인 shortcut 덕분에 결과 값을 간단하게 Residual Unit들의 덧셈으로 표현할 수 있게 되며 Backpropagaition시에도 Vanashing 문제가 발생하지 않는다.
즉 H(x)-x를 최소화 하는 방향으로 학습을 진행한다. F(x) = H(x) -x 를 잔차라고 하며 이 잔차를 학습하는 것이 Residoal 목적이다 classfication 와 같은 문제일 경우 x에 대한 타겟값 y는 사실 x를 대변하는 것으로 y와 x의 의미가 갗게끔 mappingㅙ야한다
결론
이미지에서는 H(x) = x가 되도록 학습시킨다.
네트워크의 output F(x)는 0이 되도록 학습시킨다.
F(x)+x=H(x)=x가 되도록 학습시키면 미분해도 F(x)+x의 미분값은 F’(x) + 1로 최소 1이상이다.
모든 layer에서의 gradient가 1+F’(x)이므로 gradient vanishing현상을 해결했다