zoukankan      html  css  js  c++  java
  • 深度网络的相关问题(一)

    今天主要解决以下四个问题:超参数,动量梯度下降,权重初始化,BP网络反向传播算法,只学习了部分内容,以后接触到相关问题再进行补充。

    (1)训练神经网络的超参数设置

    现在我了解到的超参数:学习率,权重衰减,mini_batch,

    学习率:是权重更新的步长,梯度是权重更新的方向,反向传播是计算梯度的方法,梯度下降是求解的方式。学习率可以是固定学习率设置,也可以动态调节学习率。

        由于在参数求解接近最优时,较大的步长会越过最优解,因此此时最好设置较小的学习率。最好不要使用固定的学习率。

        使用动态的学习率包括(1)使用一段一段的学习率,如训练4个epoch,每个epoch对应的学习率为1 0.1 0.01 0.001,(2)可以根据验证误差,减半学习率,

        不断减半学习率,(3)可以使用指数衰减的方式,(4)可以使用自适应学习率的方式,如RMSProp,Adam。

    权重衰减:就是正则化的系数。

    mini_batch:设置为2的倍数最好,1 2 4 8 16 32 64 128 256 512 1024,常用的为64 128 256,设置过大非常需要内存,设置过小无法表现数据规律,可能训练效果不好。

    (2)动量梯度下降

      积累了之前梯度的加权平均,可以使网络训练更快地收敛。超参数beta控制指数加权平均数,一般取0.9,代表取前10个梯度的平均值。当时想到动量梯度下降公式

    中的dw代表什么意思?其实还是损失函数关于w的偏导,不知道是缩写还是什么原因写成这样,一下弄蒙我了。

    (3)权重初始化

      目前了解到的常用的设置权重初始化的方式为Xavier初始化,高斯分布,截断高斯分布。

    (4)BP反向传播

      BP反向传播四个公式:输出层误差的方程,使用下一层的误差表示当前层的误差,代价函数关于网络中任意偏置的改变率,代价函数关于网络中任意权重的改变率


      学习过程中,想到一个问题,训练经常遇到的梯度消失或梯度爆炸问题,我们是如何判断出现这个问题的?通过查看相应的权重不更新,还是保存计算的梯度为0呢?暂时没有这方面的资料供我参考,

    好希望有个大佬带我学习,解我疑惑。

  • 相关阅读:
    bash特性
    FHS 层级文件系统
    环境变量的问题
    linux认识
    搜索引擎的使用
    nginx
    部署操作手册
    git
    添加tag
    pycharm中使用git
  • 原文地址:https://www.cnblogs.com/w33-blog/p/9991414.html
Copyright © 2011-2022 走看看