Deep learning/Studying

Weight initialization(가중치초기화 )

비비이잉 2021. 9. 10. 11:36
반응형

 

 

 

 

가중치 초기화 

: 딥러닝의 가장 일반적인 문제 Vanishing / Exploding Gradient 문제를 해결하기 위한 방법 중 하나

 

1. 초기화를 0으로 한다면 ?

  • weight 값이 0으로 이루어져있기 때문에 곱셈 연산이 되지 않고, 학습이 잘 이루어 지지않음.
  • 모든 뉴런이 "같은일" 을 한다. 가중치가 0이기 때문에 모든 뉴런은 모두 다 같은 연산을 한다. 같은 연산을 하기 때문에 gradient도 같을 것이고 모든 뉴런이 똑같이 업데이트가 될 것이다. 역전파 가중치 업데이트 또한 동일하게 발생  

 

 

2. 초기화를 너무 크거나 작은 값으로 한다면 ?

  • 학습이 잘 되지 않음.

두 개의 방법 모두 학습이 잘 되지 않는다. 해결 방법으로는

  1. Xavier initialization : 레이어의 출력 분산을 입력의 분산과 동일하게 만드는 초기화 기술 (Tanh, Sigmoid)

W = np.random.randn(fan_in, fan_out) / np.sqrt(fan_in)
Standard Gaussian으로 뽑은 값을 입력의 수로 스케일링 해준다는 것이다. 

: " 입/ 출력의 분산을 맞추어 주는 것" 

 

함수의 출력 값들이 표준 정규 분포의 형태를 갖게 하는 것이 가장 중요하다. 출력값들이 표준 정규 분포 형태를 갖게 되어야 안정적으로 학습이 가능하기 때문이다.

 

 

 

     2. He initialization (ReLU)

 

 

 

 

 

 

 

 

 

 

 

 

 

https://lv99.tistory.com/23

 

가중치 초기화의 모든 것 (All about weight initialization) [설명/요약/정리]

딥러닝의 가장 일반적인 문제, 그래디언트 소멸 및 폭발 (Vanishing / Exploding Gradient) 문제를 해결하기 위한 방법 중 하나로 가중치 초기화가 있습니다. 이것은 overfitting/underfitting, local minimum에..

lv99.tistory.com

https://deepinsight.tistory.com/114

 

[모두를 위한 cs231n] Lecture 6. Weight Initialization

안녕하세요 Steve-Lee입니다. 지난 시간에 이어 Lecture 6. Training Neural Network에 대해 배워보도록 하겠습니다. 이번 시간에는 Weight Initialization에 대해 배워보도록 하겠습니다. 모두를 위한 cs231n 더..

deepinsight.tistory.com

https://gomguard.tistory.com/184

 

[딥러닝] 뉴럴 네트워크 Part. 6 - 가중치 초기화

이전 까지의 내용 이전 글에서는 Vanishing Gradient 현상이 왜 일어나는지, 어떻게 해결해 나가는지와 가중치 초기화 (weight initialization) 가 왜 중요한지에 대해 살펴보았습니다. 이번 글에서는 가중

gomguard.tistory.com

 

반응형