본문 바로가기
카테고리 없음

[CV PAPER] RESNET

by 꾸덕 2021. 4. 22.
728x90

DATE: 2021.04.06

스터디에서 제일 먼저 다룬 논문이지만 이제 올린다...

지금은 정리용으로 올려서 다소 설명이 난잡하지만 언젠간 누군가에게 도움이 되는 논문 리뷰가 되길

Resnet

= 레이어가 깊은 모델일 수록 학습하기 어렵다는 문제를 해결하려고 만들었다. → residual(잔차)를 학습하는 방법으로 깊은 network여도 성능이 좋도록 만들었다.

  • z논문 주장: plain net은 레이어를 깊게 쌓으면 degradation problem and higher training error이 발생한다.

하지만 shortcut connection 을 가진 resnet은 레이어를 깊게 쌓을 수록 error가 줄어 정확도가 높아진다.

  • 문제인식

깊이가 깊을 수록 성능이 안좋았다 그래서 모델의 깊이를 늘리는 것 만으로 좋은 성능을 낼 수 없을까?라고 고민함!

! 하지만, 흔히 gradient vanishing/exploding문제가 생길 수 있다→ 이건 normalized initialization and intermediate normalization으로 해결 가능하다.

핵심 문제는 degradation 이다.

깊이가 증가할 수록 정확도가 증가하지 않고 감소가 더 빨리 일어난다.

원인은 overfitting이 아니라 모델이 깊어질수록 " higher training error" 때문이다.

해결책은 구조를 바꾸는 것이다.

그래서 identity mapping을 추가한다.

이로써 높은 training error를 갖지 않는다.

페이지 2

기존의 모델을 H(X)라고 할때 F(x)=H(x)-x 를 그곳에 대입한다.

이것을 순전파에 적용한걸 shortcut connection이라고 한다. shortcut connection은 identity mapping을 한다.

h(x)만 있으면 vanising이 되어서 0이 될 수 있다. 역전파 할때 0이 되서 없어질 수 있으니깐 +x을 해서 0이 되지 않도록 하고 잔차를 계속해서 역전파 해서 원래 값이 전달 될 수 있다.

결론 = H(x) 보다 residual만 학습하는게 더 잘되기도 하고 F(x)가 0이 돼도 'x'가 살아남으니 gradient vanishing이 없어서 학습이 잘된다

용어정리

identitiy mapping이란?

= 얕은 모델과 깊은 모델을 비교했을때, 깊은게 성능이 더 안좋아진다고 했다. 그래서 identity mapping을 사용해서 깊어도 성능이 잘 나오도록 시도할 수 있다. 이 mapping을 쌓으면 입력값을 그대로 출력값에 전달한다.

bottleneck 구조

훈련시간 줄이기 위해서 bottleneck을 사용한다.

projection shortcut은 하강 문제를 해결할 수 없다.

버틀넷 구조는 identify shortcut을 사용한다. 파라미터 free고 더 복잡하게 만들 수 있고 모델 크기도 배로 키울 수 있다. 이걸 쓰면 버틀넷 모델을 더 효과적으로 사용할 수 있다.

  • 관련자료

https://leechamin.tistory.com/184

728x90