深度学习的Xavier初始化方法
2017-05-02 21:43
507 查看
在tensorflow中,有一个初始化函数:tf.contrib.layers.variance_scaling_initializer。Tensorflow 官网的介绍为:
Returns an initializer that generates tensors without scaling variance.
When initializing a deep network, it is in principle advantageous to keep the scale of the input variance constant, so it does not explode or diminish by reaching the final layer. This initializer use the following formula:
这段话可以理解为,通过使用这种初始化方法,我们能够保证输入变量的变化尺度不变,从而避免变化尺度在最后一层网络中爆炸或者弥散。
这个方法就是 Xavier 初始化方法,可以从以下这两篇论文去了解这个方法:
·X. Glorot and Y. Bengio. Understanding the difficulty of training deepfeedforward neural networks. In International Conference on Artificial Intelligence and Statistics, pages 249–256, 2010.
Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S.Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast featureembedding. arXiv:1408.5093, 2014.
或者可以通过这些文章去了解:
CNN数值
三种权重的初始化方法
深度学习——Xavier初始化方法
variance_scaling_initializer( factor=2.0, mode='FAN_IN', uniform=False, seed=None, dtype=tf.float32 )
Returns an initializer that generates tensors without scaling variance.
When initializing a deep network, it is in principle advantageous to keep the scale of the input variance constant, so it does not explode or diminish by reaching the final layer. This initializer use the following formula:
if mode='FAN_IN': # Count only number of input connections. n = fan_in elif mode='FAN_OUT': # Count only number of output connections. n = fan_out elif mode='FAN_AVG': # Average number of inputs and output connections. n = (fan_in + fan_out)/2.0 truncated_normal(shape, 0.0, stddev=sqrt(factor / n))
这段话可以理解为,通过使用这种初始化方法,我们能够保证输入变量的变化尺度不变,从而避免变化尺度在最后一层网络中爆炸或者弥散。
这个方法就是 Xavier 初始化方法,可以从以下这两篇论文去了解这个方法:
·X. Glorot and Y. Bengio. Understanding the difficulty of training deepfeedforward neural networks. In International Conference on Artificial Intelligence and Statistics, pages 249–256, 2010.
Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S.Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast featureembedding. arXiv:1408.5093, 2014.
或者可以通过这些文章去了解:
CNN数值
三种权重的初始化方法
深度学习——Xavier初始化方法
相关文章推荐
- 深度学习—Xavier初始化方法
- 深度学习——Xavier初始化方法
- 深度学习-网络Xavier初始化方法
- 深度学习——Xavier初始化方法
- 深度学习——Xavier初始化方法
- 深度学习——Xavier初始化方法
- 【深度学习】权重初始化方法
- 深度学习—网络MSRA初始化方法
- 深度学习初始化方法
- 深度学习之参数初始化(一)——Xavier初始化
- 深度学习DL中权重weight初始化方法
- [深度学习] 权值初始化 xavier和he_normal
- 系统学习深度学习(十四)--权重初始化Xavier
- R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD系列深度学习检测方法梳理
- neuralnetworksanddeeplearning学习_权重初始化方法
- 深度学习--神经网络权重初始化
- 深度学习——sgd等优化方法比较
- R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD系列深度学习检测方法梳理
- 深度理解JAVA本身的构造器及子父类构造方法的初始化顺序
- 深度学习入门方法讨论--摘自知乎