1. ResNet 개요
2. Residual Connection
3. ResNet 구조
Residual Connection (Skip Connection)
BottleNeck
논문명 :마이크로소프트에서 개발한 "Deep Residual Learning for Image Recognition"
층수에 있어서 ResNet은 급속도로 깊어진다. 2014년의 GoogLeNet이 22개 층으로 구성된 것에 비해, ResNet은 152개 층을 갖는다. 신경망이 훨~씬 깊어진 대신 성능이 증가했음
하지만 생각해볼것은 신경망을 깊게쌓으면 성능이 무조건 좋아지는가?
- ResNet 저자들이 비교한 20층/56층 신경망 테스트 결과를 보자
- 56층이 20층보다 성능이 낮은것을 확인할 수 있음.
- 즉, 신경망을 깊게쌓는다고해서 성능이 좋아지는게 아니다.
저자들이 신경망을 152층까지 쌓으면서 성능을 끌어올릴 수 있었던 이유는
Residual Connection (Skip Connection) 을 사용했기 때문.
아래 그림에서 오른쪽이 Residual Block을 나타낸다. 기존의 망과 차이가 있다면 입력값을 출력값에 더해줄 수 있도록 지름길(shortcut)을 만들어 주었음
기존의 신경망은 입력값 x를 가상의함수 H를 통과한 결과값 H(x)가 우리가 원하는 타겟값 y와 같아지기를 원함.
> 의미 : y=H(x)가 되는 H(x)를 찾자!
입력값 x를 가상의 함수 F를 통과한 결과값 F(x)와 원래 입력값 x를 더한값이 우리가 원하는 타겟값 y와 같아지기를 원함
> 의미 : y=F(x)+x 가 되는 F(x)를 찾자
> 의미 : H(x)=F(x)+x 이므로, y=H(x) 가 되는 H(x)를 찾자
> 솔직히 크게와닿지않는다...생으로 코딩해봐야 알거같다...
수식적으로 이해하기 위한 사이트 : 참고
레이어 구조가 총 5개 제시되어있음
https://bskyvision.com/entry/CNN-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EB%93%A4-ResNet%EC%9D%98-%EA%B5%AC%EC%A1%B0
https://gaussian37.github.io/dl-concept-densenet/