第5讲 神经网络基础知识内容安排一、生物神经元 二、人工神经网络结构 三、神经网络基本学习算法 四、BPN及其应用5.1生物神经元生物神经元 突触信息处理 信息传递功能与特点5.1.1 生物神经元神经元是大脑处理信息的基本单元人脑大约由1011个神经元组成,神经元互 相连接成神经网络神经元以细胞体为主体,由许多向周围延 伸的不规则树枝状纤维构成的神经细胞, 其形状很像一棵枯树的枝干主要由细胞体、树突、轴突和突触 (Synapse,又称神经键)组成生物神经元示意图5.1.2 突触的信息处理生物神经元传递信息的过程为多输入、单输出 神经元各组成部分的功能来看,信息的处理与 传递主要发生在突触附近 当神经元细胞体通过轴突传到突触前膜的脉冲 幅度达到一定强度,即超过其阈值电位后,突 触前膜将向突触间隙释放神经传递的化学物质 突触有两种类型,兴奋性突触和抑制性突触。
前者产生正突触后电位,后者产生负突触后电 位5.1.3 信息传递功能与特点具有时空整合能力 不可逆性,脉冲只从突触前传到突触后,不逆 向传递 神经纤维传导的速度,即脉冲沿神经纤维传递 的速度,在1—150m/s之间 信息传递时延和不应期,一般为0.3~lms 可塑性,突触传递信息的强度是可变的,即具 有学习功能 存在学习、遗忘或疲劳(饱和)效应对应突触传递作用增强、减弱和饱和5.2人工神经网络结构人工神经网络 人工神经元模型 常见响应函数 人工神经网络典型结构5.2.1 人工神经网络直观理解神经网络是一个并行和分布式的信息处理网 络结构它一般由大量神经元组成每个神经元只有一个输出,可以连接到很多其他 的神经元 每个神经元输入有多个连接通道,每个连接通道 对应于一个连接权系数5.2.2 人工神经元模型通用模型求和操作 响应函数5.2.2 人工神经元模型♦ 响应函数的基本作用– 控制输入对输出的激活作用 – 对输入、输出进行函数转换 – 将可能无限域的输入变换成指定的有限范围内的输出5.2.3 常见神经元响应函数(a)阈值单元(b)线性单元(c)(d)非线性单元:Sigmoid函数5.2.3 常见神经元响应函数人工神经元的响应函数5.2.4 人工神经网络典型结构神经元的模型确定之后,一个神经网络的特性 及能力主要取决于网络的拓扑结构及学习方法 人工神经网络连接的几种基本形式前向网络 (a) 从输出到输入有反馈的前向网络 (b)用来存储某种模式序列层内互连前向网络 (c)限制层内同时动作的神经元;分组功能相互结合型网络 (d)神经网络的典型结构5.3神经网络基本学习算法权值确定 Hebb学习规则 误差校正(纠错)学习规则 相近(无教师)学习规则5.3.1 权值确定人工神经网络连接权的确定通常有两种 方法根据具体要求,直接计算,如Hopfield网络 作优化计算通过学习得到的。
大多数人工神经网络都采 用这种方法学习方法是人工神经网络研究中的核心 问题5.3.2 Hebb学习规则Donall Hebb根据生理学中条件反射机理,于 1949年提出的神经元连接强度变化的规则如果两个神经元同时兴奋(即同时被激活),则它们 之间的突触连接加强a为学习速率,Vi, Vj为神经元i和j的输出Hebb学习规则是人工神经网络学习的基本规 则,几乎所有神经网络的学习规则都可以看作 Hebb学习规则的变形5.3.3 误差校正规则用已知样本作为教师对网络进行学习 学习规则可由二次误差函数的梯度法导出 误差校正学习规则实际上是一种梯度方法不能保证得到全局最优解 要求大量训练样本,收敛速度慢 对样本地表示次序变化比较敏感5.3.4 无教师学习规则Δϖ ij = α (vi −ϖ ij )这类学习不在于寻找一个特殊映射的表示,而是 将事件空间分类为输入活动区域,并有选择地对 这些区域响应,从而调整参数一反映观察事件的 分部 输入可以是连续值,对噪声有较强地抗干扰能力 对较少输入样本,结果可能要依赖于输入序列 在ART、Kohonen等自组织竞争型网络中采用内容安排内容回顾 5.4BP网络5.4.1 BP网络简介♦ 反向传播网络(Back-Propagation Network,简 称BP网络)是将W-H学习规则一般化,对非线性 可微分函数进行权值训练的多层网络♦ 权值的调整采用反向传播(Back-propagation) 的学习算法♦ 它是一种多层前向反馈神经网络,其神经元的 变换函数是S型函数♦ 输出量为0到1之间的连续量,它可实现从输入 到输出的任意的非线性映射BP网络主要用于下述方面♦ 函数逼近:用输入矢量和相应的输出矢量训练一个 网络逼近一个函数♦ 模式识别和分类:用一个特定的输出矢量将它与输 入矢量联系起来;把输入矢量以所定义的合适方式 进行分类;♦ 数据压缩:减少输出矢量维数以便于传输或存储具有将强泛化性能:使网络平滑地学习函数,使网络 能够合理地响应被训练以外的输入泛化性能只对被训练的输入/输出对最大值范围内的 数据有效,即网络具有内插值特性,不具有外插值 性。
超出最大训练值的输入必将产生大的输出误差5.4.2 网络模型一个具有r个输入和一个隐含层的神经网络模型结构感知器和自适应线性元件的主要差别在激活函数 上:前者是二值型的,后者是线性的BP网络具有一层或多层隐含层,除了在多层网络上 与前面已介绍过的模型有不同外,其主要差别也表 现在激活函数上。
BP网络的激活函数必须是处处可微的,因此它不能 采用二值型的阀值函数{0,1}或符号函数{-1,1}BP网络经常使用的是S型的对数或正切激活函数和 线性函数BP网络特点输入和输出是并行的模拟量网络的输入输出关系是各层连接的权因子决 定,没有固定的算法权因子通过学习信号调节。
学习越多,网络 越聪明只有当希望对网络的输出进行限制,如限制 在0和1之间,那么在输出层应当包含S型激活 函数在一般情况下,均是在隐含层采用S型激活函 数,而输出层采用线性激活函数S型函数具有非线性放大系数功能,可以把输入从负无穷 大到正无穷大的信号,变换成-1到l之间输出对较大的输入信号,放大系数较小;而对较小的输入信 号,放大系数则较大采用S型激活函数可以处理和逼近非线性输入/输出关系5.4.3 学习规则BP算法属于δ算法,是一种监督式的学习算法主要思想对于q个输入学习样本:P1,P2,…,Pq,已知与其对应的 输出样本为:T1,T2,…,Tq 使网络输出层的误差平方和达到最小 用网络的实际输出A1,A2,…,Aq, 与目标矢量T1,T2,…,Tq 之间的误差修改其权值,使Am与期望的Tm,(m=l,…,q) 尽可能接近BP算法是由两部分组成,信息的正向传递与误差 的反向传播正向传播过程中,输入信息从输入层经隐含层逐层计 算传向输出层,每一层神经元的状态只影响下一层神 经元的状态如果在输出层未得到期望的输出,则计算输出层的误 差变化值,然后转向反向传播,通过网络将误差信号 沿原来的连接通路反传回来修改各层神经元的权值直 至达到期望目标假设输入为P,输入神经元有r个,隐含层内有s1个神经 元,激活函数为F1,输出层内有s2个神经元,对应的激 活函数为F2,输出为A,目标矢量为T信息的正向传递隐含层中第i个神经元的输出输出层第k个神经元的输出定义误差函数利用梯度下降法求权值变化及误差的反向传播输出层的权值变化其中 同理可得隐含层权值变化其中 同理可得对于f1为对数S型激活函数, 对于f2为线性激活函数5.4.4 误差反向传播图形解释误差反向传播过程实际上是通过计算输出层的误差ek, 然后将其与输出层激活函数的一阶导数f2’相乘来求得 δki 由于隐含层中没有直接给出目标矢量,所以利用输出层 的δki反向传递来求出隐含层权值的变化量Δw2ki。
然后 计算同样通过将ei与该层激活函数的一阶导数f1’相乘,而求 得δij,以此求出前层权值的变化量Δw1ij 如果前面还有隐含层,沿用上述同样方法依此类推,一 直将输出误差ek逐层的反推算到第一层为止5.4.5 网络训练训练BP网络,需要计算网络加权输入矢量以及网 络输出和误差矢量,然后求误差平方和当所训练矢量的误差平方和小于误差目标,训练 停止;否则在输出层计算误差变化,且采用反向 传播学习规则来调整权值,然后重复此过程网络完成训练后,对网络输入一个不是训练集合 中的矢量,网络将以泛化方式给出输出结果为了能够较好地掌握BP网络的训练过程,我们用 两层网络为例来叙述BP网络的训练步骤初始化:用小的随机数初始化每一层的权值W和 偏差B,保证网络不被大的加权输入饱和期望误差最小值error_goal 最大循环次数max_epoch 修正权值的学习速率1r,一般情况下k=0.0l,0.7变量表达:计算网络各层输出矢量A1和A2以及网 络误差EA1=tansig(W1*P,B1); A2=purelin(W2*A1,B2); E=T-A;权值修正:计算各层反传的误差变化D2和D1并计 算各层权值的修正值以及新权值:D2=deltalin(A2,E); D1=deltatan(A1,D2,W2); [dlWl,dBl]=learnbp(P,D1,lr); [dW2,dB2]=1earnbp(A1,D2,1r); W1=W1十dW1;B1=B1十dBl; W2=W2十dW2;B2=B2十dB2计算权值修正后误差平方和SSE=sumsqr(T-purelin(W2*tansig(W1*P,B1), B2))检查:SSE是否小于err_goal。
若是,训练结 束;否则继续以上所有的学习规则与训练的全过程,可以用函 数trainbp.m来完成它的使用只需定义有关参数:显示间隔次数,最大循 环次数,目标误差,以及学习速率。
调用后返回训练 后权值,循环总数和最终误差TP=[disp_freq max_epoch err_goal 1r] [W,B,epochs,errors]=trainbp(W,B,’F’,P, T,TP)5.4.6 网络设计1 网络的层数 2 隐含层神经元数 3 初始权值的选取 4 学习速率 5 期望误差的选取 6 应用举例 7 局限性5.4.6.1 网络的层数理论上已经证明:具有偏差和至少一个S型隐 含层加上一个线性输出层的网络,能够逼近任 何有理函数定理:增加层数主要可以进一步的降低误差,提高精 度,但同时也使网络复杂化,从而增加了网络 权值的训练时间。
一般情况下应优先考虑增加隐含层中神经元数 仅用具有非线性激活函数的单层网络来解决问 题没有必要或效果不好线性问题 非线性问题5.4.6.2 隐含层神经元数网络训练精度的提高,可以通过采用一个隐含层,而 增加其神经元数的方法来获得。