BP神经网络
1 概述
Rumelhart,McClelland于1985年提出了BP网络的误差反向后传BP(Back Propagation)学习算法。
特点:
- 1、非线性映射能力
能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供网络进行学习训练,它便能完成由n维输入空间到m维输出空间的非线性映射。
- 2、泛化能力
当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射。这种能力称为泛化能力。
- 3、容错能力
输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。
2 BP算法基本原理
利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。
2.1 BP网络模型
激励函数:
- 1、必须处处可导
- 2、经常用sigmoid函数
使用s函数时,输入与输出得关系:
输入:
输出:
输出得导数:
学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。
首先信号的正向传播,判断输出与期望误差是否在合理空间内,不在则误差反向传播,直到误差合理或达到最大学习次数。
学习的本质:对各连接权值的动态调整
学习规则:权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。
学习的类型:有导师学习
核心思想:
- 1、将输出误差以某种形式通过隐层向输入层逐层反传
- 2、将误差分摊给前面各层的所有单元,得到各层单元的误差信号
- 3、计算并修正各单元的权值
2.2 BP网络的标准学习算法
网络结构:输入层有n个神经元,隐含层有p个神经元, 输出层有q个神经元
变量定义:
输入向量: x=(x1,x2,⋯,xn)
隐含层输入向量: hi=(hi1,hi2,⋯,hip)
隐含层输出向量: ho=(ho1,ho2,⋯,hop)
输出层输入向量: yi=(yi1,yi2,⋯,yiq)
输出层输出向量: yo=(yo1,yo2,⋯,yoq)
期望输出向量: do=(d1,d2,⋯,dq)
输入层与中间层的连接权值: wih
隐含层与输出层的连接权值: who
隐含层各神经元的阈值: bh
输出层各神经元的阈值: bo
样本数据个数: k=1,2,⋯m
激活函数: f(⋅)
误差函数: