第九章 后向传播算法(分类)

1、神经网络

        后向传播(Back—PropagationNetwork,简称BP网络)是一种神经网络学习算法。

        神经网络最早是由心理学家和神经学家开创的,旨在寻求开发和检验神经的计算模拟。粗略地说,神经网络是一组连接的输入/输出单元,其中每个连接都与一个权重相关联。在学习阶段,通过调整这些权重,使得它能够正确预测输入样本的类标号。

        神经网络的缺点

        (1)需要很长的训练时间, 因而对于有足够长训练时间的应用更合适

        (2)它需要大量的参数,这些通常主要靠经验决定,如网络拓扑或“结构”。

        (3)可解释性差。例如,人们很难解释网络中学习的权重和“隐藏单元”的符号含义。

        神经网络的优点

        (1)对噪声数据的高承受能力

        (2)对未经训练的数据的模式分类能力

        最流行的神经网络算法是后向传播

2、多层前馈神经网络

        后向传播算法在多层前馈神经网络上学习。它迭代地学习用于元组类标号预测的一组权重。

        多层前馈神经网络有一个输入层、一个或多个隐藏层和一个输出层组成。

        例子:

        每层有一些单元组成。输入层的单元称作输入单元。隐藏层和输出层的单元称作神经结点或输出单元。上图所示的多层神经网络具有两层输出单元。因此,我们称之为两层神经网络(不计算输入层,因为它只用来传递输入值到下一层)。类似地,包含两个隐藏层的网络称作三层神经网络等。

        网络是前馈的,因为其权重都不回送到输入单元,或前一层的输出单元。网络是全连接的,如果每个单元都向下一层的每个单元提供输入。

        网络的输入对应于对每个训练元组的观测属性。输入同时提供给构成输入层的单元。这些输入通过输入层,然后加权同时提供给称作隐藏层的“类神经元的“第二层。该隐藏层单元的输出可以输入到另一个隐藏层,诸如此类。隐藏层的数量是任意的,尽管实践中通常只用一层。最后一个隐藏层的权重输出作为构成输出层的单元的输入。输出层发布给定元组的网络预测。

        每个输出单元取前一层单元输出的加权和作为输入。它应用一个非线性(激活)函数作用于加权输入。多层前馈神经网络可以将类预测作为输入的非线性组合建模。给定足够多的隐藏单元和足够的训练样本, 多层前馈神经网络可以逼近任意函数。

3、定义网络拓扑

        在开始训练之前,用户必须说明输入层的单元数、隐藏层数(如果多于一层)、每一隐藏层的单元数和输出层的单元数,以确定网络拓扑。 对于“最好的”隐藏层单元数没有明确的规则。

        网络设计是一个实验过程,并可能影响结果训练网络的准确性。权的初值也可能影响结果的准确性。一旦网络经过训练,并且其准确率不能被接受,则通常用不同的网络拓扑或使用不同的初始权值,重复训练过程。

        对训练样本中每个属性的值进行规范化,将有助于加快学习过程。通常,对输入值规范化,使得它们落入0.0和1.0之间。离散值属性可以重新编码,使得每个域值有一个输入单元。例如,如果属性A有3个可能的或已知的值{a0,a1 ,a2},则可以分配三个输入单元I0,I1,I2表示A 。每个单元都初始化为0,。如果A=a0,则I0置为1,其余为0;诸如此类。

        神经网络可以用于分类(预测给定元组的类标号)和数值预测(预测连续值输出)。对于分类,一个输出单元可以用来表示两个类(其中值1代表一个类,而值0代表另一个类)。如果多于两个类,则每个类使用一个输出单元。

4、 后向传播

        基本思想:迭代地处理训练元组数据集, 将每个元组的网络预测与实际知道的类标号相比较进行学习,对于每个训练样本, 修改权重使得网络预测和实际类之间的均方误差最小。这种修改“后向”进行,即由输出层,经由每个隐藏层,到第一个隐藏层(因此称作后向传播)。尽管不能保证,一般地,权重将最终收敛,学习过程停止。 

        算法如下:


         步骤解释如下:

         初始化权重:网络的权重被初始化为小随机数(例如,由-1.0到1.0,或由-0.5到0.5)。每个单元都有一个相关联的偏倚。类似地,偏倚也初始化为小随机数。

         每个训练元组X按以下步骤处理:(1)向前传播输入(2)后向传播误差(3)重复以上两步,直至终止条件满足。

         向前传播输入:首先,训练元组提供给网络的输入层。计算隐藏层和输出层每个单元的净输入和输出。

       (1)对于输入层的单元j,它的输出等于它的输入;即Oj = Ij

       (2)给定隐藏层或输出层的单元j,到单元j的净输入Ij


         其中, wij是由上一层的单元i到单元j的连接的权重;Oi是上一层的单元i的输出; 而是单元j的偏倚(充当阈值,用来改变单元的活性)。

       (3)给定单元j的净输入Ij , 然后将激活函数作用于它,如下图所示。单元j的输出Oj用下式(logistic函数)计算

         该函数又称挤压函数, 因为它将一个较大的输入值域映射到较小的区间0到1。

         向后传播误差:通过更新权重和反映网络预测误差的偏倚,向后传播误差。

       (1)对于输出层单元j, 误差Errj用下式计算

 

                 其中,Oj是单元j的实际输出,而 Tj是j给定训练元组的已知目标值。

       (2)隐藏层单元j的误差是

                 其中, wkj是由下一较高层中单元k到单元j的连接权, 而Errk是单元k的误差。

       (3)更新权重和偏倚,以反映传播的误差。

                 权重由下式更新:

             

                 其中,Dwij是权wij的改变量, 变量l是学习率,通常取0.0和1.0之间的常数值。

                        学习率帮助避免陷入决策空间的局部极小(即权重看上去收敛,但不是最优解),并有助于找到全局最小。如果学习率太低,则学习将进行得很慢。如果学习率太高,则可能出现在不适当的解之间的摆动。

                        学习率调整规则: 将学习率设置为1/t. 其中t是已对训练样本集迭代的次数。

                 偏倚由下式更新:

                 其中, Dqj是偏倚qj的改变

 

                 实例更新(case update): 每处理一个样本就更新权值和偏置。

                 周期更新(epoch update): 权重和偏倚的增量累积到变量中,处理完训练集中的所有样本之后再更新权值和偏置。

                 其中,扫描训练集的一次迭代是一个周期。

                 理论上,后向传播的数学推导使用周期更新,而在实践中,实例更新更常见,因为它通常产生更准确的结果。

        终止条件

           (1)前一周期所有的Dwij都小于某个指定的阈值, 或

           (2)前一周期未正确分类的元组百分比小于某个阈值, 或

           (3)超过预先指定的周期数

            实践中,权重收敛可能需要数十万个周期。

     

        后向传播算法学习的样本计算(例子)

        下图给出了一个多层前馈神经网路。令学习率l=0.9。该网络的初始权重和偏倚值在表1中给出,第一个训练元组为X={1,0,1},其类标号为1。

        给定第一个训练元组X,,该例展示向后传播计算。首先把该元组提供给网络,计算每个单元的净输入和输出,这些值显示在表2中。计算每个单元的误差,并向后传播,误差值显示在表3中。权重和偏倚的更新显示在表4中。


        “如何使用训练过的网络对未知元组分类?

        为了对未知元组X分类,把该元组输入到训练过的网络,计算每个单元的净输入和输出。(不需要计算误差和/或它们的后向传播。)如果每个类有一个输出结点,则具有最高输出值的结点决定X的预测类标号,如果只有一个输出结点,则输出值大于或等于0.5可以视为正类,而值小于0.5可以视为负类。

5、黑盒内部:后向传播和可解释性

        神经网络是一个黑盒。

        神经网络的缺点:知识表示。用加权链连接单元的网络表示的知识让人很难理解。这激发了提取隐藏在训练后的神经网络中的知识及象征性地表示这些知识的研究。

        解决方法:由网络提取规则和灵敏度分析。

        网络提取规则:(1)第一步,网络剪枝,剪去对训练后的网络影响最小的加权链(2)对剪枝后的网络进行链、单元或活化值聚类。

        例如,在一种方法中,对训练过的两层神经网络中每个隐藏单元,使用聚类发现公共活化值的集合。对每个隐藏单元分析这些活化值的组合。导出涉及这些火花值和对应的输出单元值组合的规则。类似地,研究输入值和活化值的集合,导出描述输入和隐藏层单元联系的规则。最后,两个规则的集合可以结合在一起,形成IF——THEN规则。

        灵敏度分析:用于评估一个给定的输入变量对网络输出的影响。改变该变量的输入,而其它输入变量固定,监测网络输出的改变。

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值