BP神经网络

来源:互联网 发布:office mac 2011 登录 编辑:程序博客网 时间:2024/06/05 22:45

BP神经网络

一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。通过迭代的性质来处理训练集中的实例;过程是根据对比神经网络输出层的预测值和真实值之间的误差,反向更新权重和偏向(bias),在经过一轮新的训练集,直到结束。


算法详细介绍

输入:D:数据集,学习率(learning rate),一个多层向前神经网络

输出:训练完的神经网络

步骤:训练实例X输入,通过每一层和下一层各个节点之间的权重相乘的和,再跟对应的节点的偏向相加,做一个非线性方程转化,得到下一层各节

点的值,直到所有的层执行完毕,预测的结果也输出出来。


公式:  

正向:


反向:

输出层:Tj:真实值,Qj表示预测值


隐藏层:Errk 表示前一层的误差, Wjk表示前一层与当前点的连接权重


权重更新:



反向传播的公式推导:

算法的推导过程主要是利用梯度下降算法最小化损失函数的过程,现在损失函数为:


对于网络中的每个权值wji,计算其导数:


(1)若j是网络的输出层单元,则对Netj的求导:


其中:



所以有:


为了表达方便,使用:


权值的改变朝着损失函数的负梯度方向,于是有权值改变量:


(2)若j是网络中的隐藏层单元,由于隐藏单元中w的值通过下一层来间接影响输入,故使用逐层剥离的方式来进行求导:


因为:


所以:


同样,我们为了表达方便,使用:

所以权值变化量:


因此,不管如何,权重的变化量是上面这个公式。

终止条件:
1.权重更新低于某个阈值
2.预测的错误率低于某个阈值
3.达到预设的循环次数

BP神经网络的核心解决的问题是:cost函数对w,b的偏导的计算。

原创粉丝点击