본문 바로가기
논문/classification

cv(computer vision) resnet논문

by dohunNewte 2023. 3. 12.
반응형

rsenet논문

resnet.pdf
0.78MB

논문의 초록

Deeper neural networks are more difficult to train.

깊은 뉴럴 네트워크는 train하기 어렵다.

 

We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously.

우리는 residual learning framework를 제안한다 네트워크의 train을 쉽게해주는 이전의 사용된것들보다 부분적으로 깊은

 

We explicitly reformulate the layers as learning residual functions with reference to the layer inputs, instead of learning unreferenced functions

우리는 재정의했다. layer을 learning residual fuctions으로 layer input를 참조하여 참조되지않은 function대신에

 

We provide comprehensive empirical evidence showing that these residual networks are easier to optimize, and can gain accuracy from considerably increased depth.

우리는 이해를 쉽게해준다. 실질적인 증거를 보여줌으로  residual network가 optimize하기 더 쉽다 그리고 정확도를 얻을 수 있다. 깊이가 증가함으로

 

On the ImageNet dataset we evaluate residual nets with a depth of up to 152 layers—8× deeper than VGG nets [41] but still having lower complexity

ImageNet 데이터셋에서 우리는 평가한다. residual net은 152레이어의 깊이를 가졌고 vggnet보다 8배깊이(이전까지 가장 깊은 깊이는 googlenet의 22-layer이었다.) 그러나 여전히 더낮은 복잡성을 가졌다.

 

An ensemble of these residual nets achieves 3.57% error on the ImageNet test set.

residual의 에러는 3.57%가 나왓다.

 

We also present analysis on CIFAR-10 with 100 and 1000 layers.

100~1000레이어까지 분석을했다.

 

본문

이전에는 성능향상을위해 항상 layer을 깊게쌓는것에 초점을두었다

이전의 transformer 선행연구들을 보면 vanishing gradient(기울기소실), exploding gradient(기울기폭주)를 막기위해

weight-initialization(가중치초기화), normalization, SGD,Adam이런것들을 개발해 수렴이 잘 되도록했는데(깊이 쌓기위해서) 그러나 그냥 무조건 깊게 쌓는것이 좋은가에 대해서 이 resnet저자들은 궁금해했다.

 

 resnet저자들은 위 실험을통해 깊게쌓는다고 무조건 좋은게아니라는것을 발견했고 degradation problem이라는 문제가있다고 문제를 재정의하였다.

degradation problem : 수렴이 잘되지않는 문제

residual 에서 곡선의 검은선들이보인다 그 곡선의 선들을 identity mapping 이라한다.

 

얇은선 : train error

굵은선 : validation error

왼쪽 그래프를 보면 깊은모델(plain-34)이 얕은모델(plain-18)보다 error율이 높은것을 알 수 있다.

-무조건 깊다고 좋은것이 아님을 나타냄

(error율이 높은이유가 위에서 말했던것처럼 vanishing과 overfitting의 문제가아닌 degradation problem이다.

degradation problem은 수렴(optimization)문제이다.)

resnet이 말하는 degradation problem : 모델이 깊어질수록 수렴이안된다

 

오른쪽그래프는 identity mapping을 이용한 connetion을 깐모델이다.

identity mapping을 깐모델을 보면 layer가 깊은모델이 error율이 낮은것을 알 수 있다.

-옳은모델이라고 볼 수 있다.

 

resnet논문의 문제정의 : optimization문제, 질적저하문제에 대해서 다루겠다 - layer가 깊어지면 깊어질수록 학습을 잘 못하는 문제를 해결하겠다. (이전의 연구들에서는 layer을 어떻게 깊게쌓을까란 dept문제였는데 resnet은  optimization문제로 변화)

 

identity mapping을 shortcut이라고도 말하고 residual connection이라고도 말한다.

-순전파 상황일때

입력을 x라고하면 conv를 거쳤으므로 출력은 F(x)다

identity mapping을 이용하면 F(x)+x가 되고 이것은 H(x)가된다.(H(x) = F(x)+x)

 

만약에 F(x)만 있었으면 F(x)에 대해서만 수렴을 시켜 최적의함수를 찾도록 하는데 

F(x)+x로 하니까 F(x) = H(x)-x가 되어 F(F(x))에서 H(x)-x인 변환된 F(x)를 찾는문제로 바뀐다.

H(x)-x를 잔차라고한다.

 

입력값과 출력값의 차이가 0이면  다 맞춘것이므로 입력값(x)과 출력값(H(x))의 차이가 0인것을 계속 찾아야하므로

이문제는 H(x)-x가 0임을 찾는문제로 바뀌게된다.

F(x) = H(x)-x

F(x) -> 0

 

기존의 입력값(x)으로부터 F(x)가 어떻게 바뀌었지? 라는 문제[ex) (F(F(x)) ] 에서 F(x)를 0으로 끌고가는 문제로 바뀌게된다.(단지 F(x)에 +x를 해줌으로써)

 

이전에는 x로 인해 F(x)가 어떻게 계속 바뀌어왔는지 다른 레이어도 신경을 써줬다면 이문제를  현재의 layer에 대해서

이 잔차(H(x)-x)만 0으로 만들어버리면되는 문제로 개선하는순간 현재의layer에서만 집중할 수 있도록 문제가 쉽게 바뀌게해줌으로써 optimization이 잘되도록 해 주었다.

resnet다음으로는 connection을 이용한 연구들이 굉장히 많이 발전한다(optimization을 쉽게하기위해)

 

-역전파 상황일때

backpropagation일때 이전까지의 loss식으로부터 기울기를 구해서 다음 레이어로 갈때 지금 레이어는 H(x) = F(x)+x로 되어있으니 H(x)를 미분하면 F'(x)+1이 된다. +1덕분에 기울기가 계속 살아있기 때문에 기울기소실문제도 방지해준다.

 

-optimization을 효율적으로 찾을 수 있게되었다.

plainNet - vggnet에서 conv레이어를 조금 더 깔아준모델

optimization = loss function이 최소값을 찾아가도록해주는것

 

또한 resnet은 BottleNeck을 사용했는데 1x1conv를 이용해 연산량을 최소화도 해 주었는데

googlenet의 1x1conv부분을 읽으면 될거같다. - https://dohun-0714.tistory.com/14

 

결론 : degradation problem을 확인

F(x)에서  F(x)+x를 해줌으로써  깊은레이어에서 optimization을 개선, 성능up

 

728x90

'논문 > classification' 카테고리의 다른 글

A ConNet for the 2020s 논문정리  (0) 2023.10.25
cv(computer vision) googlenet 논문  (1) 2023.03.07
cv(computer vision) vggnet 논문  (1) 2023.03.05

댓글