본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

연쇄법칙이 깊어질 때: 기울기 소실과 폭발

~8 min · vanishing-gradient, exploding-gradient, depth

Level 0수학 초심자
0 XP0/59 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete

깊이가 기울기를 잡아먹는 방식

연쇄법칙은 합성된 함수의 국소 도함수를 계속 곱해. 네 경로에서 1보다 작은 값이 반복되면 앞쪽 층으로 갈수록 기울기가 쪼그라들고, 1보다 큰 값이 반복되면 폭주할 수 있어. sigmoid 도함수는 최대 0.25. 포화된 깊은 망에서 기울기 소실이 심한 이유야.

물론 실제 신경망은 스칼라 100개 단순 곱보다 복잡해. 야코비안 방향과 특이값, 가중치, 활성분포가 같이 움직여. 그래도 핵심 직관은 안 죽어. 반복 합성이 신호 크기를 바꾼다. 네 gradient도 깊이를 공짜로 통과하지 못해.

만능 해독제 하나? 없음.

  • 활성함수: ReLU는 양수 구간 도함수가 1이라 sigmoid 포화를 피하지만 음수에선 0. 죽은 뉴런 생길 수 있어. GELU·SiLU 같은 매끈한 활성도 널리 써.
  • 잔차연결: 항등 경로를 더해 기울기가 여러 층 건너갈 우회로 만들기.
  • 초기화: Xavier·He 초기화로 활성과 기울기 분산이 층마다 미쳐 날뛰지 않게 출발점 잡기.
  • 정규화: BatchNorm이나 LayerNorm은 활성 스케일과 최적화 지형을 관리. 소실을 단독으로 없애는 보증서는 아님.
  • 기울기 클리핑: 폭발한 기울기 크기를 제한해 갱신 안정화. 사라진 기울기 부활 주문은 아님.
2012년 전환은 원인 하나의 영웅담이 아니야. ReLU, GPU 계산, 대규모 데이터, 합성곱 구조, 초기화와 학습 기법이 함께 ImageNet 성과를 만들었어. 네가 ‘ReLU 하나가 딥러닝을 부활시켰다’고 줄이면 바로 그 상호작용을 놓쳐.

트랙을 닫으며

도함수는 한 점의 변화율. 연쇄법칙은 그 변화율을 계산그래프 전체로 이어. 깊은 망에선 연결이 약해지거나 폭주할 수 있어. 다음 트랙에서 네가 만날 역전파는 이 국소 도함수를 재사용해 모든 매개변수의 기울기를 한꺼번에 구하는 기술이야.

Code

깊이에 따라 기울기가 줄어드는 모습·python
import torch

# Sigmoid 로 vanishing gradient 데모
x = torch.tensor(1.0, requires_grad=True)
y = x
for _ in range(20):
    y = torch.sigmoid(y)         # 연속 20 sigmoid
y.backward()
print(f"20 sigmoid 후 dy/dx: {x.grad.item():.2e}")
# 매우 작은 수 — gradient 거의 vanish

External links

Exercise

앞의 데모에서 torch.sigmoidtorch.relu로 바꾸고 x.grad를 비교해. 양수 경로와 음수 경로에서 결과가 왜 달라지는지 설명해.
Hint
ReLU의 도함수는 양수 구간에서 1, 음수 구간에서 0이야. 양수 경로에서는 sigmoid처럼 작은 도함수를 반복해 곱하지 않지만, 한 층이라도 음수 구간에 들어가면 그 경로의 기울기는 0이 될 수 있어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.