zoukankan      html  css  js  c++  java
  • 神经网络与机器学习 笔记—改善反向传播的性能试探法

    改善反向传播的性能试探法

    整理8个能提高BP效率的方法:

     

    1. 随机和批量方式更新

    反向传播学习的随机(串行)方式(涉及一个模式接一个模式的更新)要比批量方式

    计算快。特别是当新联数据集很大且高度冗余时,更是如此。(批量学习再高度冗余的时候Jacobi矩阵会很麻烦)

    1. 最大信息内容

    作为一个基本的规则,对呈现给反向传播算法的每一个训练样本的挑选必须建立在其信息内容对解决问题有很大可能的基础上。达到这个目标的两种方法是:

    使用训练误差最大的样本。

    使用的样本要与以前使用的有区别。

    这两个试探方法起因于对权空间进行更多搜索的愿望。

    在模式分类的任务中使用串行反向传播学习,经常使用的一个简单技巧是将样本的每个回合呈现给多层感知器的顺序随机化(即弄乱)。理想情况下,随机化可以确保一个回合中的相继的样本很少属于同一类。

    1. 激活函数

    建议选择奇函数的sigmoid激活函数即

    F(-v) = - F(v)

    如下的双曲正切函数满足这个条件(logistic函数不满足)

    F(v) = a tanh (bv)       其中a和b的合适值:a=1.7159   b=2/3

     

    1. F(1)  = 1/F(-1) = -1
    2. 再远点激活函数的倾斜度(即有效增益)接近于1
    3. F(v)的二阶导数在v=1时达到最大。


    4.目标值。

    在sigmoid激活函数的范围内选择目标值(期望响应)是很重要的。更具体来说,多层感知器输出层的神经元j的期望响应dj必须与sigmoid激活函数的极限值偏离某个值,具体取决于极限值是正或负。否则反向传播算法会使网络的自由参数趋向于无穷大,驱使隐藏神经元达到饱和从而减慢学习过程。

    1. 输入的标准化。每一个输入标量都需要预处理,使得它关于整个训练集求平均的均值接近0,或者与标准偏差相比是较小的。位评价这个规则的实际意义,我们考虑输入恒正的极端情况。在这种情况下,第一隐藏层的一个神经元的所有突触权值只能同时增加或同时减少。所以,如果这个神经元权值向量改变方向,则它的误差曲面的路径变成锯齿形的,这会使收敛速度变慢,因此应该避免。两个步骤

    训练集包含的输入变量应该是不相关的;

    区相关后的输入变量应调整其长度使得它们的协方差近似相等,因此可以保证网络中的不同突触权值以大约相等的速度进行学习。

    1. 初始化。使得神经元诱导局部域的标准偏差位于它的sigmoid激活函数的线性部分和饱和部分的过渡区域。对于一个均匀分布,它需要其均值为0而方差将与神经元的突触链接的数目成反比,从而这个分布来选择突触权值的值。
    2. 从提示中学习。从一组未知的训练例子中学习意味着处理未知的输入-输出映射函数,事实上,学习过程利用函数例子锁包含的信息来推断它的逼近实现。从例子中学习的过程可以推广为包括从提示中学习,这可以通过在学习过程中加入函数的先验知识来实现。这些知识包括不变性、对称性或关于函数的其他知识,它们可以用来加速实现函数逼近的搜索,而且更重要的是,会提高最后估计的质量。
    3. 学习率。多层感知器的所有神经元理论上应以同一速率进行学习。网络最后一层的局部梯度与通常比别的层大。因此,最后一层的学习率参数应设的比别的层小。输入较多的神经元的学习率参数应比输入较少的神经元小。对于一个给定的神经元,其学习率应与该审刑院的突触链接的平方根成反比。

     

     

  • 相关阅读:
    基于序列号注册的软件框架
    JavaScript基础 实例和框架集成
    jQuery使用总结 Core jQuery 其他 4/4
    Microsoft AJAX Client Library规范的实例
    JavaScript DOJO使用总结
    Java语法专题3: HashMap
    html中的fieldset
    HTML.ActionLink 和 Url.Action 的区别
    [System.InvalidOperationException] = {"阅读器关闭时尝试调用 MetaData 无效。"}
    虚拟属性
  • 原文地址:https://www.cnblogs.com/csnd/p/12061924.html
Copyright © 2011-2022 走看看