BP算法介绍
BP算法(Background Propagation Alogorithm), 即误差逆传播算法,是训练多层前馈神经网络的一种最经典的算法,通过BP算法可以学得网络的权重和阈值,且具有可靠的收敛性。
网络结构
首先对所用的符号和变量做约定,这里采用《机器学习》中的命名
训练集: D={
(x1,y1),(x2,y2),...,(xm,ym)},xi∈Rd,yi∈Rl
即输入的x有d个属性,输出y有l个属性,均以向量表示
输入层到隐层的权重以 υih 表示,隐层到输出层的权重以 ωhj 表示
隐层神经元输入和输出层神经元输入如图所示
基本思想
通过前向传播确定误差,再利用反向传播减少误差
优化基于梯度下降法(gradient decenet)进行,对参数的更新方式为(其中 η 为学习率)
ω=ω−η∂Ek∂ωhj
- 将输入确定为常量1,网络的阈值学习可以等效为权重的学习,本文仅作权重的讨论
前向传播过程:
将输入值传入神经网络,逐层将信号前传,计算输出层的结果 yˆ
计算输出值 yˆ和 y