神经网络的参数初始化

注: 本文是学习吴恩达老师机器学习公开课的学习笔记。

1. 对于神经网络fminunc函数,我们需要初始化神经网络的initialTheta的参数。对于逻辑回归来说,我们可以全部初始化为0,但是对于神经网络来说将initialTheta全部初始化为0是不可以的。

神经网络的参数初始化

2.为什么全部初始化成0是不可以的呢?

如果所有参数初始化成0,那么隐藏层的每个节点的输出都是相同的,而且每个参数对成本函数的偏导数也是相同的。

对于每一次更新所计算的输出都是相同的。这样隐藏层即使有许多的节点,实际上他们的输入是一样的,这样他们也只是在做相同的计算。这样神经网络的隐藏层的节点是冗余的(highly redundant representation)

神经网络的参数初始化


3. 为了使得参数不一样,可以利用随机初始化。

可以使用下面的办法将所有的参数初始化到[-epsilon epsilon]之间。rand(10,11) 返回的是(取值为0和1之间)10x11的matrix

神经网络的参数初始化