본문 바로가기

파이썬/머신러닝

[#E12] W 변수 (Weights) 초기화 방법

지금까지 사용한 Weight 초기화 방법은 다음과 같습니다.


1
2
3
4
5
6
7
//1
= tf.Variable(tf.random_normal([y_output]), name="weight")
 
//2
= tf.Variable(tf.random_normal([x_input, y_output]), name='weight')
 
...
cs

 

더욱 좋은 성능을 내기 위해 다음과 같은 초기화 방법을 사용할 수 있습니다.


1. Xavier Initializer

 

1
2
3
4
5
//import numpy as np
//W = np.random.randn(x_input, y_output)/np.sqrt(x_input)
 
= tf.get_variable("W", shape=[x_inputy_output],
           initializer=tf.contrib.layers.xavier_initializer())
cs

 

2. He Initializer

 

1
2
3
4
5
//import numpy as np
//W = np.random.randn(x_input, y_output)/np.sqrt(x_input / 2)
 
= tf.get_variable("W", shape=[x_inputy_output],
           initializer=tf.contrib.layers.variance_scaling_initializer())
cs

 

RBM 초기화 방법에 대해서는 여기를 참고하세요. RBM은 Xavier, He 초기화 방법에 비해 복잡하며 비슷한 결과를 냅니다.