我在这里有提前接触过一些介绍神经元的文章,所以,我不在多废话那些营养不高的单元介绍。在BP 算法推导我相信你一定了解一些基本的内容。所以我直接进入BP的算法推导过程。
BP网络的学习算法-学习过程 正向传播 输入样本-----输入层------各隐层--------输出层 判断是否转入反向传播阶段 若输入层的实际输出(h(x))与期望的输出(y)不符。 误差反传 误差以某种形式在各层表示-----修正各层单元的权值(w或者Θ) 最终结果 网络输出的误差减少到了可以接受的程度(或 进行到预先设定的学习次数为止)
在BP算法推导前,我们一定要学会对激活函数求导。这个是我对激活函数中的一种函数(sigmoid函数)求导过程
这个是推导思想的第一步: 输入样本-----输入层------各隐层--------输出层
这是一个单元细胞的正向传递过程,
这是上面符号对应的推导公式。
正向传递完了,接下来就是判断输出值是不是和预计的想象值一样不一样,不一样就进行反传,修正W和B。这就是推导思想最后一步(输出层 判断是否转入反向传播阶段 若输入层的实际输出(h(x))与期望的输出(y)不符。 误差反传 误差以某种形式在各层表示-----修正各层单元的权值(w或者Θ) 最终结果 网络输出的误差减少到了可以接受的程度(或 进行到预先设定的学习次数为止))在进行推导的时候,我们要先学会梯度梯度下降法的思想和欧几里得法。
梯度梯度下降法:为了修正我们的函数曲线使得它越来越接近正确曲线,我们要使用梯度下降法。 在每一个位置求出当前位置函数的梯度,再沿着梯度的反方向(因为我们要减小误差,正方向使函数增加)移动一段距离,也就是每次都顺着坡最陡的方向往下走一步。 梯度即为代价函数对权值向量的每一个元素求偏导:
欧几里得法:就是目标值减去实际值的平方的二分之一
输出层—->隐含层的参数更新:
输出层—->隐含层的B更新:
隐含层—->隐含层的参数更新:
隐含层—->隐含层的简化图:
隐含层—->隐含层的W更新:
隐含层—->隐含层的B更新:
第一次写这个,有不足的地方,有不懂可以私聊我,我来为大家讲解。