6강 / 20강

기울기가 사라진다 — 깊은 신경망이 오래 안 되던 이유

초기화 · ReLU · 잔차 연결

기울기가 사라진다 — 깊은 신경망이 오래 안 되던 이유
층을 지날수록 줄어들면 앞쪽은 학습이 안 됩니다.

4강에서 봤습니다 — 역전파는 층마다 값을 곱해 가며 뒤로 넘깁니다. 곱하는 값이 1보다 작으면 층을 지날 때마다 줄어들고, 크면 늘어납니다.

기울기 소실
0.5 를 열 번 곱하면 0.001
앞쪽 층이 거의 안 배운다
기울기 폭발
1.5 를 열 번 곱하면 58
손실이 NaN 이 된다
왼쪽은 <b>0 으로 사라집니다</b>. 오른쪽은 스무 층을 지나도 크기가 유지돼요.
Python 브라우저에서 실행
깊이와 초기화를 바꿔 보세요. 기울기가 어디서 죽는지.
불러오는 중…

세 가지가 함께 이 문제를 풀었다

무엇어떻게
ReLU미분이 0 또는 1 — 켜진 길로는 줄지 않고 흐른다 (4강)
초기화He / Xavier — 층을 지나도 크기가 유지되도록 분산을 정한다
잔차 연결층을 건너뛰는 지름길 — 기울기가 곧장 뒤로 간다

세 번째가 특히 예쁩니다. 출력을 f(x) + x 로 두면, x 를 지나는 길은 미분이 1 이라 아무리 깊어도 기울기가 죽지 않아요.

<code>+ x</code> 한 줄입니다. 그 지름길로 기울기가 <b>곧장</b> 흘러요.
Python 브라우저에서 실행
🤔 확인 문제
층 스무 개짜리 신경망에서 은닉층 활성함수로 로지스틱을 썼더니 앞쪽 층의 가중치가 거의 변하지 않습니다. 원인은?