pullwall
Well done! 코딩
pullwall
전체 방문자
오늘
어제
  • 분류 전체보기 (151)
    • 개발환경 (2)
    • java study (21)
    • 백준 단계별 (51)
    • 알고리즘 (3)
    • AI (43)
    • 클라우드 (3)
      • Kubernetes in Google (3)
    • 논문 (5)
    • 리눅스 (1)
    • AWS (4)
    • 수학 (15)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Ai
  • LLM
  • 자바
  • 알고리즘
  • 쿠버네티스
  • 정렬
  • 선택정렬
  • Google
  • 백준
  • pytorch
  • 수학
  • Java
  • 자바독학
  • 정렬알고리즘
  • dataset
  • Kubernetes
  • AWS
  • 백준 단계별
  • 논문리뷰
  • 단계별

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
pullwall

Well done! 코딩

기울기 소실 (Vanishing Gradient)
AI

기울기 소실 (Vanishing Gradient)

2024. 9. 6. 21:20
728x90
해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.

 

 

깊은 층의 layer를 갖는 인공신경망은 입력층으로 갈수록 미분이 작아지는 (기울기가 소실되는, 0으로 가는) 문제가 발생한다.

 

  • $w_{k+1}=w_k-\alpha g$

즉, 위와 같은 가중치 업데이트 수식에서 $g$가 0으로 수렴하면 가중치가 업데이트되지 않는 문제가 발생한다. 왜 이런 문제가 발생할까?

 

문제는 activation의 미분에 있다. 

  • $\frac{\partial L}{\partial w_1}=2(\hat{y_1}-y_1)f_{2}^{'}(d_2)w_2f_{1}^{'}(d_1)n_1$

backpropagation을 할 때 첫번째 weight에 대한 미분을 구하려면 위와 같은 수식처럼 activation'-weight-activation'-weight-...-activation'-n 꼴이 됐는데,

 

당장 sigmoid함수만 생각해 보더라도 최대 기울기가 $\frac{1}{4}$이기 때문에 activation 미분값을 계속 곱하다 보면 입력층에 가까울수록 결국 기울기가 소실되어버리는 문제가 발생한다.

 

즉, 입력층에 가까운 weight들은 학습이 제대로 되지 않는다. 초반부터 이상한 weight로 입력 데이터를 망쳐놓으니 당연히 결과값 또한 좋지 않을 수 밖에 없다.

 

Training data에서조차 학습이 잘 되지 않는 underfitting 문제를 야기한다.

 

728x90

'AI' 카테고리의 다른 글

Batch Normalization, Layer Normalization, Vanishing Gradient 해결 방안 정리  (0) 2024.09.09
ReLU (Rectified Linear Unit)  (0) 2024.09.06
Softmax를 이용한 다중 분류  (0) 2024.09.05
딥러닝 학습의 본질 (MLE)  (0) 2024.09.05
MSE vs Likelihood (convex한 함수가 loss function으로 사용되는 이유)  (0) 2024.09.05
    'AI' 카테고리의 다른 글
    • Batch Normalization, Layer Normalization, Vanishing Gradient 해결 방안 정리
    • ReLU (Rectified Linear Unit)
    • Softmax를 이용한 다중 분류
    • 딥러닝 학습의 본질 (MLE)
    pullwall
    pullwall

    티스토리툴바