Backpropagation Algorithm
反向传导算法
建立损失函数
首先要明确,神经网络的训练就是寻找最佳的权重W和偏置项b的过程,单个样本的求解的目标函数,也就是损失函数为:
如果有多个样本,那么就是将多个损失函数求和,通常为了防止过拟合要加入规则化项(权重衰减项),公式如下:
为什么这样会防止过拟合呢?
将w单独列出,如果其惩罚因子越大那么它的值就会越小,试想一下,如果在二维平面中,斜率减小,是不是会减小震荡呢?减小震荡意味着更加鲁棒!
梯度下降求解
上面可以看出神经网络的求解是一个二次规划的问题,就可以利用梯度下降法等等迭代公式来求了。迭代求解公式如下:
注意初值设置
要注意的是最初值的选取不能是全都一样的值,为什么呢?
原文是这样说的:
最后,需要再次强调的是,要将参数进行随机初始化,而不是全部置为 0。如果所有参数都用相同的值作为初始值,那么所有隐藏层单元最终会得到与输入值有关的、相同的函数
(也就是说,对于所有 i, W(1)ij 都会取相同的值,那么对于任何输入 x 都会有: a(2)1