-
AI 모델 개발 – Vanishing Gradient 완전 정리카테고리 없음 2025. 8. 31. 13:40
목적: Vanishing Gradient(기울기 소실) 문제를 처음 접하는 사람도 직관적으로 이해할 수 있도록, 원인→영향→해결책→시험 포인트까지 쉽게 정리.
0) 핵심 한눈에 보기
- 정의: 신경망을 역전파 학습할 때 기울기(gradient)가 점점 0에 가까워져 초깊은 층의 가중치가 학습되지 않는 문제.
- 비유: 긴 전달게임에서 말이 계속 희미해져 맨 끝 친구는 아무것도 못 듣는 상황.
1) 왜 발생할까?
역전파는 체인룰: $∂L/∂W = ∂L/∂h_n · ∂h_n/∂h_{n-1} · ... · ∂h_1/∂W$.
각 항이 0~1 사이 작은 값이면 곱할수록 더 작아짐.
대표 원인:
- 활성함수: Sigmoid/tanh → 입력이 크면 기울기 거의 0.
- 깊은 네트워크: 곱 연산 누적으로 지수적으로 작아짐.
- 잘못된 초기화: 가중치가 너무 작거나 커서 분산 불안정.
2) 어떤 문제가 생기나?
- 학습 정체: 앞단(초깊은 층) 가중치 업데이트 거의 X.
- 특징 학습 부족: 깊은 층이 의미 있는 표현을 못 배움.
- RNN: 장기 의존 학습 어려움(초기 RNN 학습이 힘들었던 이유).
3) 해결 방법
(1) 활성 함수 변경
- Sigmoid/tanh → ReLU 계열 (ReLU, Leaky ReLU, GELU). → 기울기 소실 완화.
(2) 가중치 초기화
- Xavier/He 초기화: 분산을 층 깊이에 맞게 조절.
(3) 정규화 기법
- Batch Normalization, LayerNorm: 분포를 안정화해 기울기 전파 유지.
(4) 잔차 연결(Residual Connection)
- ResNet 아이디어: 입력을 출력에 더해 전달 → 기울기 직접 전달 경로 확보.
(5) RNN 특화
- LSTM/GRU: 게이트 구조로 장기 의존 기울기 보존.
4) 직관적 예시
- Sigmoid: 입력 -10 → 출력 ≈0, 기울기 ≈0.
- 층이 10개만 되어도 0.1^10 ≈ 1e-10 수준으로 축소.
5) 시험장 포인트
- 원인: Sigmoid/tanh, 깊은 층, 잘못된 초기화.
- 영향: 앞단 학습X, RNN 장기 의존 학습 어려움.
- 해결: ReLU, He 초기화, BatchNorm, Residual, LSTM/GRU.
6) 실전 체크리스트
- 활성 함수로 ReLU 계열을 쓰는가?
- 가중치 초기화 전략을 적용했는가?
- 정규화(BN/LN) 넣었는가?
- 깊은 네트워크엔 Residual 구조가 있는가?
- 순환망은 LSTM/GRU를 쓰는가?
7) 미니 연습(정답은 접어서)
- Vanishing Gradient의 주 원인 2가지는?
- Residual Connection이 왜 도움이 되나?
- RNN에서 Vanishing Gradient를 완화하는 구조는?
정답 보기
1) Sigmoid/tanh 같은 활성함수, 깊은 네트워크에서의 체인룰 곱 연산. 2) 기울기가 입력 경로를 통해 직접 전달되어 소실을 막음. 3) **LSTM/GRU**.