본문으로 바로가기

Weight Initialization

category AI/Deep Learning 2021. 3. 4. 16:19

Weight Initialization

1) 개요

    - 학습 parameter (weight)의 초기값 설정은 global minimum을 찾는데 매우 중요하다.

    - vanishing gradient 또는 과하게 큰 gradient로 인해 올바른 학습이 될 수 없다.

 

2) weight 값이 0이거나 동일한 값일 경우

    - 초기 weight 값이 0이거나 동일한 값일 경우 다음 layer에 동일한 값이 전달된다.

    - backpropagation을 할 경우, 동일한 weight를 지닌 층에서 동일하게 갱신되기 때문에 모델에서 layer를 쌓은 효과가 없다.

 

LeCun Initialization

$$W \sim N(n_{in}, n_{out})$$

$$Var(W) = \frac{1}{n_{in}}$$

 

Xavier Initialization

    - 이전 노드와 다음 노드 개수에 의존하는 방법으로 backpropagation에서 layer를 통과하기 전, 후 gradient 분산이 동일

    - activation function으로 ReLU를 사용할 경우, output이 0으로 수렴하는 현상이 있을 수 있어 ReLU에서 사용X

    - 정규분포로 평균은 0, 분산은 2를 input node, output node 개수의 합으로 나눈 값

$$W \sim N(0, Var(W))$$

$$Var(W) = \frac{2}{n_{in}, n_{out}}$$

 

He Initialization

    - ReLU를 사용할 때 주로 사용하는데, 이는 Xavier를 사용했을 시 층이 깊어질수록 output값이 0으로 치우지기 때문이다.

$$W \sim N(0, Var(W))$$

$$Var(W) = \frac{2}{n_{in}}$$

 

가우시안 분포와 균등 분포 둘 중 어느 것을 써야 하는 것에 대한 정확한 기준은 없으며 각각의 논문에서 Glorot은 uniform
He는 Deep CNN 모델들은 주로 normal을 사용
출처 : https://datascience.stackexchange.com/questions/13061/when-to-use-he-or-glorot-normal-initialization-over-uniform-init-and-what-are/13362#13362

코드 예시

    - 각 layer마다 dense method 안에 입력

'''lecun'''
keras.initializers.lecun_normal(seed=None)
keras.initializers.lecun_uniform(seed=None)

'''glorot'''
keras.initializers.glorot_normal(seed=None)
keras.initializers.glorot_uniform(seed=None)

'''He'''
keras.initializers.he_normal(seed=None)
keras.initializers.he_uniform(seed=None)

참고

reniew.github.io/13/

excelsior-cjh.tistory.com/177

https://datascience.stackexchange.com/questions/13061/when-to-use-he-or-glorot-normal-initialization-over-uniform-init-and-what-are/13362#13362

ratsgo.github.io/deep%20learning/2017/04/22/NNtricks/

'AI > Deep Learning' 카테고리의 다른 글

Batch Normalization  (0) 2021.03.05
Dropout  (0) 2021.03.04
SGD (Stochastic Gradient Descent)  (0) 2021.03.04
Activation function  (0) 2021.03.03
Feed-forward NN & Backpropagation  (0) 2021.03.03