1、2.4 BP神经网络模型与学习算法,2.4.1 BP神经网络模型,三层BP网络,模型的数学表达输入向量: 隐层输入向量:隐层输出向量:输出层输入向量:输出层输出向量:期望输出向量:输入层到隐层之间的权值矩阵:隐层到输出层之间的权值矩阵:各个变量之间如何建立联系,来描述整个网络?,2.4.2 BP网络的标准学习算法,学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权值乃至拓扑结构,以使网络的输出不断地接近期望的输出。学习的本质:对可变权值的动态调整学习规则:权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。BP算法是一种学习规则,BP算法的基本思想,学习的
2、类型:有导师学习核心思想:将输出误差以某种形式通过隐层向输入层逐层反传学习的过程:信号的正向传播 误差的反向传播,将误差分摊给各层的所有单元各层单元的误差信号,修正各单元权值,BP算法的学习过程,正向传播:输入样本输入层各隐层输出层判断是否转入反向传播阶段:若输出层的实际输出与期望的输出(教师信号)不符误差反传误差以某种形式在各层表示修正各层单元的权值网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止,BP算法的具体实现,(1)网络初始化;,(4)利用网络期望输出向量,网络的实际输出,计算误差函数对输出层的各神经元的偏导数,(5)利用隐含层到输出层的连接权值、输出层的和隐含层的输出计
3、算误差函数对隐含层各神经元的偏导数:,(6)利用输出层各神经元的和隐含层各神经元的输出来修正连接权值和阈值,(7)使用隐含层各神经元的和输入层各神经元的输入修正连接权和阈值(8)计算全局误差 (9)判断网络误差是否满足要求 当或学习次数大于设定的最大次数,则结束算法。否则,随机选取下一个学习样本及对应的期望输出,返回到3),进入下一轮学习过程。,(2)随机选取第个输入样本及对应的期望输出,(3)计算隐含层各神经元的输入,然后用和激活函数计算隐含层各神经元的输出,BP网的主要能力,(1)非线性映射能力,BP网能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能
4、提供足够多的样本模式对供BP网络进行学习训练,它便能完成由n维输入空间到m维输出空间的非线性映射。,BP网的主要能力,(2)泛化能力,当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射。这种能力称为多层前馈网的泛化能力。,(3)容错能力,输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。,总结,BP神经网络模型BP算法的实现基本思想推导过程实现BP学习算法的功能,补充: BP网络设计基础,一 、训练样本集的准备1.输入输出量的选择2.输入量的提取与表示3.输出量的表示二、输入输出数据的归一化三、网络训练与测试,1 输出量的选择,输出量:代表系统
5、要实现的功能目标系统的性能指标分类问题的类别归属非线性函数的函数值,一 、训练样本集的准备,输入量的选择,输入量选择的两条基本原则必须选择那些对输出影响大且能够检测或提取的变量各输入变量之间互不相关或相关性很小,一 、训练样本集的准备,输入输出量的性质,从输入、输出量的性质来看,可分为两类:一类是数值变量,一类是语言变量。数值变量的值是数值确定的连续量或离散量。语言变量是用自然语言表示的概念,其“语言值”是用自然语言表示的事物的各种属性。当选用语言变量作为网络的输入或输出变量时,需将其语言值转换为离散的数值量。,一 、训练样本集的准备,2. 输入量的提取与表示,XC=(111100111)T
6、XI=(111100111)T XT=(111100111)T,(1)文字符号输入,一 、训练样本集的准备,(2)曲线输入,p=1,2,P,一 、训练样本集的准备,(3)函数自变量输入一般有几个输入量就设几个分量,1个输入分量对应1个输入层节点。(4)图象输入在这类应用中,一般先根据识别的具体目的从图象中提取一些有用的特征参数,再根据这些参数对输入的贡献进行筛选,这种特征提取属于图象处理的范畴。,一 、训练样本集的准备,3. 输出量的表示,(1)“n中取1”表示法,“n中取1”是令输出向量的分量数等于类别数,输入样本被判为哪一类,对应的输出分量取1,其余 n-1 个分量全取0。例如,用0001
7、、0010、0100和1000可分别表示优、良、中、差4个类别。,(2)“n-1”表示法,如果用n-1个全为0的输出向量表示某个类别,则可以节省一个输出节点。例如,用000、001、010和100也可表示优、良、中、差4个类别。,(3)数值表示法,对于渐进式的分类,可以将语言值转化为二值之间的数值表示。数值的选择要注意保持由小到大的渐进关系,并要根据实际意义拉开距离。,一 、训练样本集的准备,二、输入输出数据的归一化,归一化也称为或标准化,是指通过变换处理将网络的输入、输出数据限制在0,1或-1,1区间内。,进行归一化的主要原因: 归一化的方法:,进行归一化的主要原因:,网络的各个输入数据常常
8、具有不同的物理意义和不同的量纲,归一化给各输入分量以同等重要的地位;BP网的神经元均采用Sigmoid转移函数,变换后可防止因净输入的绝对值过大而使神经元输出饱和,继而使权值调整进入误差曲面的平坦区;Sigmoid转移函数的输出在01或-11之间。教师信号如不进行归一化处理,势必使数值大的输出分量绝对误差大,数值小的输出分量绝对误差小。,二、输入输出数据的归一化,归一化的方法:,二、输入输出数据的归一化,三、网络训练与测试,网络的性能好坏主要看其是否具有很好的泛化能力,对泛化能力的测试不能用训练集的数据进行,而要用训练集以外的测试数据来进行检验。,三、网络训练与测试,在隐节点数一定的情况下,为获得好的泛化能力,存在着一个最佳训练次数。,三、网络训练与测试,BP网络的MATLAB实现,例2-3,