深度学习之梯度下降优化

梯度下降算法的改进

  • 目标
    • 了解深度学习遇到的一些问题
    • 了解批梯度下降与MiniBatch梯度下降的区别
    • 了解指数加权平均的意义
    • 了解动量梯度,RMSProp,Adam算法的公式意义
    • 知道学习率衰减方法
    • 知道参数初始化策略的意义
  • 应用
    • 暂无
  • 在大数据领域的发展原因
    深度学习难以在大数据领域发挥的最大效果的一个原因是,在巨大数据集的基础上面进行训练的速度很慢。而优化算法能够帮助我们快速的训练模型,提高计算效率。

优化遇到的问题

  • 梯度消失
  • 局部最优
梯度消失
  • 梯度函数上面将会出现指数级递增或者递减的情况分别称为梯度爆炸或者梯度消失
    在这里插入图片描述
    • 对于W[ l ]的值大于1的情况,激活函数的值将以指数级递增
    • 对于于W[ l ]的值小于1的情况,激活函数的值将以指数级递减
  • 计算梯度的时候,梯度函数也会呈现指数级的递增和递减,导致训练难度上升,步长越来越小,时间却越来越多
  • 举例
    如上图,如果神经网络没有激活,偏置也为0,那么正向传播的计算公式的为
    • y = W[10]*…W[2]*W[1]*W[0]*x,对应的就会将输出值变得指数爆炸或者指数减小
局部最优

在这里插入图片描述
全局最低点和局部最优点

  • 鞍点:函数的倒数为零,但不是轴上面的局部最优点。通常梯度为零的点,而非局部最优点。减小损失的难度也来自于误差曲面的鞍点,而不是局部最优点。如下点图
    两个的交叉点
总结
  • 在训练较大的神经网络,存在大量的参数,并且成本函数被定义为在较高的维度空间时,困在极差的局部最优基本不会发生。
  • 鞍点附近的平稳段会使学习的效率非常缓慢,而这需要后面的动量梯度下降法,RMSProp,Adam算法进行加速学习,能够尽快帮助我们走出平稳期
  • 解决策略
    • 初始化参数策略(手写的随机初始化,较小值)
    • Mini梯度下降法
    • 梯度下降算法优化
    • 学习率衰减
1. 梯度下降算法
  1. 批梯度下降算法(Betch Gradient Descent)
    1. 定义:批梯度下降法(btach),即同时处理整个数据集
    2. 缺点: 数据集大的时候,处理数据慢
  2. Mini-Batch Gradient Descent
    1. 定义:每次处理固定大小的数据集
    2. 种类:大小为1时,即为随机梯度下降法(SGD)
  3. 两者的区别
    两个梯度下降法代价函数的变化趋势
  4. 影响
    1. Batch:迭代速度慢,训练过程慢
    2. SGD(随机):有很多噪声,但是速度很快,大型数据或者大型网络中导致一直在鞍点附近徘徊。
      在这里插入图片描述
大小选择
  • 训练样本的大小比较小,选择batch梯度下降
  • 样本比较大时,选择Mini-Betch梯度下降法。(某论文)为了和计算机的信息存储方式相适应,代码在Mini-Batch大小为2的幂次是运行要快一点,典型的大小有2^6 , 27,28等,Mini-Betch的大小要符合CPU/GPU内存

2. 指数加权算法

  • 属于梯度下降算法内部的优化
  • 定义:属于一种常用的序列数据处理方式,通常在序列场合如金融、温度变化等序列来分析
    在这里插入图片描述
    红色的为加权数为0.9平均之后的效果,紫色的为权重为0.98,当β的值越大,求取平均利用的天数越多,曲线自然就会越平滑而且滞后,这些系数被称为偏差修正
  • 指数移动平均值
    • 参数越大,曲线越平滑
    • 参数越小,曲线越曲折(波动越频繁)
3. 动量梯度下降法
  • 定义:计算梯度的指数加权平均数,并利用该值来更新参数值
    在这里插入图片描述
    在这里插入图片描述
  • 通过累加我过去的梯度值来减小抵达最小路径上面的波动
  • 形象的理解:小球在向下的过程中会有加速度,导致越来越快,由于β的存在,不会使小球一直加速下去
4. RMSProp算法
  • 定义: 对梯度进行指数加权平均的举出上,引入平方和平方根
    在这里插入图片描述
    其中ε是一个非常小的数,防止分母太小导致不稳定dW和db会比较大,从而sdW会比较大,从而使结果更加准确,有助于减小抵达最小路径的上的摆动,并允许使用更大的学习率,加速算法学习速度
5. Adam算法
  • 将Momentum和RMSProp算法结合,达到缓和波动
总结
  • 学习敏感率: Momentum>MRSProp>Adam
  • 目的:为了限制梯度更新的波动

学习率的衰减

  • 学习率的控制
    • 前期的学习率较大
    • 接近最优值的学习率减小
    • 最常用的学习率衰减 α = 1/(1 + decay_rate * epoch_num)* a0
    • 指数衰减 a = 0.95^(epoch_num) * a0

其他非算法优化算法

  • 对网络的输入特征进行标准化,能够缓解梯度消失或者梯度爆炸
  • 迭代次数较少的获取得到全局最优解

总结(最终)

  • 掌握参数初始化策略
  • 掌握Mini-Batch的特点以及优势
  • 掌握梯度下降算法的优化的目的以及效果
    • 掌握指数移动平均的好处
    • 掌握Monentum、MRSProp、Adam算法的特点
    • 掌握学习率衰减的算法
  • 掌握标准化输入带来网络学习速度的提升
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值