deep learning:改进BP过程的一些参数设定

结合模式分类中关于多层神经网络的讲解总结如何提高网络学习能力,主要是改进BP过程的一些trick:
1.在实际训练中,应结合validation的学习曲线变化来决定何时停止训练(error最小的时候),因为训练曲线肯定会在err上一直下降,最终会导致过拟合
2.激活函数,对于激活函数,应该要求存在非线性(不然线性作用线性还是线性,没有学习能力),有上下限(保证能够学习收敛),连续性和光滑性(BP中对导数的求解需要),因此我们多选用sigmoid和tanh。
对于sigmoid参数的设置,最好以0为中心,反对称,f = a tanh(b net) = 2a / (1+exp(-b net)) -a,通常取a=1.716,b=2/3,这样f' = 0.5,这个应该和toolbox中关于tanh的参数设置类似。
3.输入信号尺度变换,这个就是NN中对数据最开始的规格化处理,保证每个特征能平衡的贡献于上层,均值为0,方差为1.
4.带噪声的训练,现在还没用过,应该是防止过拟合
5.隐单元的数量,太少,显然表达能力不足,太多了,会导致训练的err下降,但测试err变大,即过拟合,通常选取n/10个权值相对较好,我们也可以先用较大的数量,然后衰减。
6.学习率,控制学习速度,学习率较小时,方向影响小,可保证收敛,但很慢;较大,则开始震荡收敛,若大于二倍最优,则发散。
对于sigmoid,通常0.1足够,这里可以看toolbox中设置的过大。
最优的学习率可以通过一步学习得到的局部误差最小的那个得到,n = (J''/W)-1,即J对W的二阶导的倒数,具体实际中如何求解,应该也是借助BP中类似。
7.冲量项,目的是允许当误差曲面存在平坦区时,网络还是可以快速学习(BP中)。主要控制BP过程梯度下降的方向,如果学习率为0,相当于没有控制,直接按算法的梯度下降,可能导致达到局部最小,而非最优。
w(m+1) = w(m) + (1-a)delta Wbp(m) + a delta W(m-1),即平衡原方向和新方向,平滑W的变化,a(0,1),通常取0.9


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值