BP算法的基本原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BP 算法的基本原理
典型的BP 网络分为三层(图4.4),即输入层、隐含层和输出层。其算法主要由以下四部分组成,即模式顺传播——误差逆传播——记忆训练——学习收敛。
1. 模式顺传播
设 样本输入向量1(,...,)k n A a a =,输出向量1(,...,)k q Y y y = 中间单元的输入向量1(,...,)k p S s s =,输出向量1(,...,)k p B b b = 输出层的输入向量1(,...,)k q L l l =,输出向量1(,...,)k q C c c = 其中,1,2,...,k m =,为样本数。
输入层到中间层的权{}ij w ,1,2,...,i n =,1,2,...,j p = 中间层到输出层的权{}jt v ,1,2,...,j p =,1,2,...,t q =
中间层阈值{}j θ,1,2,...,j p = 输出层阈值{}t γ,1,2,...,t q =
n p
q
中间层输入:1
n
k
j
ij i j i S w a θ==-∑,输出:1()1k j
k k
j j S b f S e -==
+,1,2,...,j p =
输出层输入:1
p
k
j
jt j t j L v b γ==-∑,输出:1()1k t
k k t t L C f L e
-==
+,1,2,...,t q =
2. 误差的逆传播
根据输出层产生的误差,经中间层向输入层传播,在这个过程中,按照梯度下降原则对各层的权值和阈值进行误差校正。 (1) 输出层计算: 权值调整量计算:
第k 模式(样本)下,网络的输出误差的均方值为,
21()/2q
k k k t t t E y C ==-∑
因为,
()k k k k t t t t E y C C δ∂=--=-∂,()(1)k k k t j t t j jt t jt
C C L
f L b C C b v L v ∂∂∂'===-∂∂∂ 所以,
(1)k k k k
t t t j jt t jt
E E C C C b v C v δ∂∂∂==--∂∂∂ 上式即为权值变化对均方值误差的影响程度,按梯度下降原则应使权值调整量jt v ∆与k
jt
E v ∂∂的负值成比例变化,即
(
)(1)k k k
jt t t t j t j jt
E v C C b d b v ααδα∂∆=-=--=∂ 其中,(0,1)α∈,1,2,...,t q =,1,2,...,j p =。
阈值调整量计算: 因为,
()(1)(1)(1)k k k k k t t
t t t t t t t t t t
E E C L f L C C d C L δδγγ∂∂∂∂'==--=---=∂∂∂∂ 所以,按照梯度下降原则,可得到输出层各单元的阈值调整量为:
(
)k k
t t t
E d γααγ∂∆=-=-∂ (2) 中间层到输入层计算: 权值调整量计算:
111
()((1))(1)())(1)q
j j
k k t t t ij t t t j ij
q
k t t t jt j j i
t q
k t jt j j i
t j i
b S E E C L w C L b S w C C v b b a d v b b a e a δ===∂∂∂∂∂∂=∂∂∂∂∂∂=---=--=-∑∑∑
按照梯度下降原则,可得到连接权值的调整量为:
(
)k
ij j i ij
E w e a w ββ∂∆=-=∂ 阈值调整量计算:
111
()((1))(1)(1)
()(1)(1)
q
j j
k k t t t j t t j j j
q
k t t t jt j j t q
k t jt j j t j
b S E E C L C L b S C C v b b d v b b e θθδ===∂∂∂∂∂∂=∂∂∂∂∂∂=----=---=∑∑∑
按照梯度下降原则,可得到输出层各单元的阈值调整量为:
(
)k
j j j
E e θββθ∂∆=-=-∂ 以上的推导是标准误差逆传播算法,即各连接权的调整量是分别与各个学习模式对的误差E k 成比例变化的。而相对于全局误差1m
k k t E E ==∑的连接权调整,是在所有m 个学习模式全
部提供给网络后统一进行的,这种算法是累积误差逆传播算法。一般来讲,当样本较少时,累积误差传递算法要比标准误差传递算法速度快一点。 3. 记忆训练
给出一组样板反复进行学习,调整权值和阈值的大小以使输出值满足一定的精度要求。 4. 学习收敛
经过多次训练以后,网络的全局误差趋向于最小值。
由于BP 算法采用了按误差函数梯度下降的方向进行收敛,因此,可能使迭代陷入局部极小点,BP 网络收敛依赖于样本的初始位置,适当改变隐层单元个数,或给每个权值加上一个很小的随机数,都可使收敛过程避免局部极小点。
二. BP 网络的解析步骤
标准误差逆传播算法按照以下步骤进行计算: (1) 初始化
给权值{}ij w 、{}jt v 和阈值{}j θ、{}t γ赋予(-1, 1)之间的随机值。 (2) 随机取一对样本对网络进行训练 (3) 计算中间层的输入/出
输入:1n
j ij i j i S w a θ==-∑,输出:1()1j
j j S b f S e
-==
+
(4) 计算输出层的输入/出
输入:1p
j jt j t j L v b γ==-∑,输出:1()1t
t t L C f L e
-==
+
(5) 计算输出层的一般误差
()(1)k k t t t t t d y C C C =--
(6) 计算中间层的一般误差
1()(1)q
k j t jt j j t e d v b b ==⋅-∑
(7) 修改输出层的权值和阈值
(1)()k jt jt t j v N v N d b α+=+
(1)()()k jt jt t N N d γγα+=+-
(8) 修正隐层的权值和阈值
(1)()ij ij j i w N w N e a β+=+
(1)()()j j j N N e θθβ+=+-
(9) 取下一对样本返回(3)开始训练,直到m 个样本训练结束
(10) 判断全局误差是否小于预定值,否则,回到(2)重新进行训练,直到满足要求或达到预定训练次数,停止训练。