文章目录

  1. 1. 0 值初始化
  2. 2. 随机初始化
  3. 3. 参考资料

这篇文章,我们来了解另外一个知识点:权值初始化

0 值初始化

在《TensorFlow 学习摘要(三) 深度学习 - 手写数字识别入门 - MNIST机器学习》一文中,我们采用的方式就是 0 值初始化

W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

这种方式,所有的权值都是 0。那么,每次迭代,所有权值的数值都一样,这意味着,隐含层的神经元激活值也将一样,也就是无论隐含层层数有多少,各层的神经元有多少,由于各层的神经元激活值大小一样,也就相当于各层只有一个有效神经元(特征),这就失去了神经网络进行特征扩展和优化的本意了。

随机初始化

我们看到了固定值初始化将会是神经网络丧失其特性,因此,对于各层的权值矩阵,采用随机初始化策略。

在《TensorFlow 学习摘要(三) 深度学习 - 手写数字识别入门02 - 欠拟合和过拟合》一文中,我们采用的方式就是随机初始化

W1 = tf.Variable(tf.truncated_normal([784, 2000], stddev=0.1))
b1 = tf.Variable(tf.zeros([2000]) +0.1)

这里,我们重点了解下 tf.truncated_normal函数,它按照正态分布初始化权重,stddev是正态分布的标准差。

参考资料

(完)

微信公众号

文章目录

  1. 1. 0 值初始化
  2. 2. 随机初始化
  3. 3. 参考资料