第4讲 计算智能人工神经网络学习概述•人工神经网络提供了一种普遍且适用的方法从样例中学习值为实数、离散值或向量的函数•人工神经网络对于训练数据中的错误强壮性很好•人工神经网络已被胜利运用到很多领域,例如视觉场景分析,语音识别,机器人控制•其中,最流行的网络和算法是20世纪80年代提出的BP网络和BP算法, BP算法运用梯度下降法来调理BP网络的参数以最正确拟合由输入-输出对组成的训练集合BP算法概述1、BP算法的出现非循环多级网络的训练算法UCSD PDP小组的Rumelhart、Hinton和Williams1986年独立地给出了BP算法清楚而简单的描画1982年,Paker就完成了类似的任务1974年,Werbos已提出了该方法2、弱点:训练速度非常慢、部分极小点的逃离问题、 算法不一定收敛3、优点:广泛的顺应性和有效性BP网络的根本构造确定BP网络的拓扑构造•在开场训练之前,需求确定网络的拓扑构造:出入层神经元的个数、隐含层神经元的层数及每一层神经元的个数、输出层神经元的个数•对训练样本中的每一属性的值进展归一化,使其值落在〔0,1〕区间,有助于加快学习过程•对于离散的属性值,要进展适宜的编码。
•BP网普通都选用二级网络•实验阐明:添加隐藏层的层数和隐藏层神经元个数不一定总可以提高网络精度和表达才干神经元的M-P模型激活函数激活函数(Activation Function) (Activation Function) •激激活活函函数数————执执行行对对该该神神经经元元所所获获得得的的网网络络输输入入的的变变换换,,也也可可以以称称为为鼓鼓励励函函数数、、活活化函数:化函数: o=f o=f〔〔netnet〕〕 •1 1、线性函数〔、线性函数〔Liner FunctionLiner Function〕〕 •f f〔〔netnet〕〕=k*net+c =k*net+c netooc2、非线性斜面函数、非线性斜面函数(Ramp Function)γ if net≥θf〔net〕= k*netif |net|<θ-γif net≤-θ γ>0为一常数,被称为饱和值,为该神经元的最大输出 2、非线性斜面函数〔、非线性斜面函数〔Ramp Function〕〕γ -γ θ -θ net o 3、阈值函数〔、阈值函数〔Threshold Function〕阶跃函数〕阶跃函数βif net>θf〔〔net〕〕=-γif net≤ θβ、、γ、、θ均为非负实数,均为非负实数,θ为阈值为阈值二值方式:二值方式:1if net>θf〔〔net〕〕=0if net≤ θ双极方式:双极方式:1if net>θf〔〔net〕〕=-1if net≤ θ 3、阈值函数〔、阈值函数〔Threshold Function〕阶跃函数〕阶跃函数β -γθonet04、、S形函数形函数 紧紧缩缩函函数数〔〔Squashing Squashing FunctionFunction〕〕和和逻逻辑辑斯斯特函数〔特函数〔Logistic FunctionLogistic Function〕。
〕f f〔〔netnet〕〕=a+b/(1+exp(-d*net))=a+b/(1+exp(-d*net))a a,,b b,,d d为常数它的饱和值为为常数它的饱和值为a a和和a+ba+b最简单方式为:最简单方式为:f f〔〔netnet〕〕= 1/(1+exp(-d*net))= 1/(1+exp(-d*net)) 函数的饱和值为函数的饱和值为0 0和和1 1S S形函数有较好的增益控制形函数有较好的增益控制 4、、S形函数形函数 a+b o(0,c)netac=a+b/2BP算法BP算法的根本思想•BP算法的根本任务过程大约可以分为两个阶段:1〕信号的向前传播,在这个阶段,要求计算出隐含层和输出层中每一神经元的净输入和输出•2〕误差的向后传播,在这个阶段,要求计算出输出层和隐含层中每一神经元的误差初始化问题•在BP算法中,权和偏置在网络学习之前,都将其初始化为不同的小随机数•“不同〞保证网络可以学习;“小随机数〞防止其值过大而提早进入饱和形状更新问题•根本的BP算法采用的是实例更新,即每处置一个实例就更新一次权和偏置实例更新的缺陷:实例的顺序对训练结果有较大影响它更“偏爱〞较后出现的实例。
而给其中的实例安排一个适当的顺序,是非常困难的•处理的方法就是采用周期更新,即每处置一遍一切的实例才更新一次权和偏置周期更新的益处是:可以消除实例顺序对结果的影响收敛速度问题•BP算法的训练速度是非常慢的,尤其是当训练到达一定的程度后,甚至有时是发散的部分极小点问题•防止——修正初始值:并不是总有效•逃离——统计方法:[Wasserman,1986]将Cauchy训练与BP算法结合起来,可以在保证训练速度不被降低的情况下,找到全局极小点网络瘫痪问题•在训练中,权能够变得很大,这会使神经元的网络输入变得很大,从而又使得其激活函数的导函数在此点上的取值很小根据相应式子,此时的训练步长会变得非常小,进而将导致训练速度降得非常低,最终导致网络停顿收敛稳定性问题•用修正量的综合实施权的修正〔用消除样本顺序影响的算法4-2来训练〕•延续变化的环境,它将变成无效的〔网络不可塑〕步长问题•BP网络的收敛是基于无穷小的权修正量•步长太小,收敛就非常慢•步长太大,能够会导致网络的瘫痪和不稳定•自顺应步长,使得权修正量能随着网络的训练而不断变化[1988年,Wasserman] BP算法适宜问题的特征•实例是用很多“属性-值〞对表示的•目的函数的输出能够是离散值、实数值或者由假设干实数属性或离散属性组成的向量•训练数据能够包含错误•可容忍长时间的训练•能够需求快速求出目的函数值(分类速度快)•人类能否了解学到的目的函数是不重要的。