zoukankan      html  css  js  c++  java
  • zz1998_Efficient Backprop笔记

    1998_Efficient Backprop笔记

    A few practical tricks

    1. Stochastic vs Batch learning

        在最小值附近震荡的幅度与学习速率成比例,为了减小震荡,可以减小学习速率或者使用自适应的batch size。

        有理论证明以下这种形式的学习速率最好:

    其中t是类别数,c是一个常量,实际上,这个速率可能太快。

        另一种消除噪声的方法是用mini-batch,就是开始用一个小的batch size,然后随着训练进行增加。但是如何增加和调整学习速率一样困难。

    2. Shuffling the examples

        网络从未知样本学习最快,因此要在每一次迭代选择最不熟悉的样本。这个方法只适用于SGD,最简单的方式是选择连续的不同类的样本。

    3. Normalizing the inputs

    4. The Sigmoid

        用对称的sigmoid函数有一个潜在的问题,那就是误差平面会变得很平坦,因此应该避免用很小的值初始化weights。

    5. Choosing Target Values

    6. Initializing the weights

    7. Choosing Learning Rates

        一般情况下权重向量震荡时减小学习速率,而始终保持稳定的方向则增加,但是不适用于SGD和online learning,因为他们始终在震荡。

    Momentum:

    其中u是momentum的强度,当误差平面是非球形(nonspherical),它增加了收敛速度因为它减小了高曲率方向的step,从而在低曲率部分增加了学习速率的影响。它通常在batch learning中比SGD更有效。

    Adaptive Learning Rates:

    这个方法实际上很容易实现,其实就是track公式18中的矩阵,平均梯度r。这个矩阵的norm控制学习速率的大小。

    8. Radial Basis Functions vs Sigmoid Units

    RBF神经网络:

        sigmoid单元可以覆盖整个输入空间,但是一个RBF单元只能覆盖一个小的局部空间,因此它的学习更快。但是在高维空间中它需要更多的单元去覆盖整个空间,因此RBF适合作为高层而sigmoid适合作为低层单元。

    Convergence of Gradient Descent

     

    1. A little theory

    具体理论分析见文章。

    理论内容包括:特征向量和特征值,Hessian矩阵,协方差矩阵

    结论:

    如果对所有的weight约定一个学习速率,那么

    2. Two examples

    b. Multilayer Network 

    3. 以上的理论可以证明这几个tricks:

  • 相关阅读:
    Prometheus09 promtool工具探索
    Prometheus04 prometheus查询语言
    03K8S之service工作方式及使用
    Prometheus08 pushgateway
    prometheus06 grafana可视化
    prometheus05 prometheus使用案例
    Prometheus03 cAdvisorDocker容器监控
    02K8S之自主式Pod
    Prometheus07 blackbox
    javascript实现tab切换效果
  • 原文地址:https://www.cnblogs.com/cx2016/p/11410206.html
Copyright © 2011-2022 走看看