ResNet

이상민·2023년 3월 21일
0
post-custom-banner

깊은 신경망의 문제점

일반적으로 layer의 깊이가 깊을 수록 더 많은 특징을 데이터로 부터 추출할 수 있게되고 이로인해 더 높은 성능을 갖는 것이 보편적이지만
더 많은 층이 추가될수록 backpropagation진행시 gradient가 약해져 기울기 소실이 발생할 수 있다.
기울기 소실이 발생하면 네트워크를 효과적으로 학습하기가 어려운데 ResNet에서는 이 문제를 해결하기 위해 한 레이어의 출력을 다음층으로 직접 전달하는 residual block을 사용했다.

Residual Block

잔여블록을 이용하면 학습이 어려운 H(x)H(x)를 학습하는 대신 학습이 쉬운 F(x)=H(x)xF(x) = H(x)-x를 학습할 수 있다.

  • 기존방식
    H(x)=σ(W2σ(W1x))H(x) = {\sigma}(W_2{\sigma}(W_1x))

  • residual 방식
    F(x)=W2σ(W1x)F(x) = W_2{\sigma}(W_1x)
    H(x)=W2σ(W1x)+WsxH(x) = W_2{\sigma}(W_1x) + W_sx # xxF(x)F(x)의 차원이 다르더라도 선형변환을 이용하여 더할 수 있다.
    따라서
    H(x)=F(x)+xH(x)= F(x) + x #xx 에 대해 미분하면 항상 1 이상이므로 경사소실의 발생 위험이 적다

솔직히 왜 잘작동하는지 모르겠따

profile
잘하자
post-custom-banner

0개의 댓글