机器学习:优化方式:梯度下降(随机,批量),动量,adagrad,Adam /未完

本文详细介绍了优化神经网络模型的几种方法,从基础的梯度下降开始,包括随机梯度下降(SGD)、小批量SGD及其问题,接着探讨了动量算法(Momentum)和Nesterov动量,再到自适应学习率的优化算法AdaGrad,最后讨论了Adam优化器以及如何选择合适的优化算法。内容涵盖了优化算法的基本原理和实际应用中的考虑因素。
摘要由CSDN通过智能技术生成

一、梯度下降

  • 梯度下降是一种优化算法,通过迭代的方式寻找模型的最优参数

    • 所谓最优参数指的是使目标函数达到最小值时的参数;
    • 当目标函数是凸函数时,梯度下降的解是全局最优解;但在一般情况下,梯度下降无法保证全局最优
  • 微积分中使用梯度表示函数增长最快的方向;因此,神经网络中使用负梯度来指示目标函数下降最快的方向。
    • 梯度实际上是损失函数对网络中每个参数的偏导所组成的向量;
    • 梯度仅仅指示了对于每个参数各自增长最快的方向;因此,梯度无法保证全局方向就是函数为了达到最小值应该前进的方向。
    • 梯度的具体计算方法即反向传播
  • 负梯度中的每一项可以认为传达了两个信息
    • 正负号在告诉输入向量应该调大还是调小(正调大,负调小
    • 每一项的相对大小表明每个参数对函数值达到最值的影响程度

1.1 随机梯度下降

  • 基本的梯度下降法每次使用所有训练样本平均损失来更新参数;
    • 因此,经典的梯度下降在每次对模型参数进行更新时,需要遍历所有数据;
    • 当训练样本的数量很大时,这需要消耗相当大的计算资源,在实际应用中基本不可行。
  • 随机梯度下降(SGD)每次使用单个样本的损失来近似平均损失

1.2小批量随机梯度下降

  • 为了降低随机梯度的方差,使模型迭代更加稳定,实践中会使用一批随机数据的损失来近似平均损失。

    ../机器学习基础/偏差与方差

  • 使用批训练的另一个主要目的,是为了利用高度优化的矩阵运算以及并行计算框架

1.3 小批量 SGD 的更新过程

  • 在训练集上抽取指定大小(batch_size)的一批数据 {(x,y)}
  • 前向传播】将这批数据送入网络,得到这批数据的预测值 y_pred
  • 计算网络在这批数据上的损失,用于衡量 y_pred 和 y 之间的距离
  • 反向传播】计算损失相对于所有网络中可训练参数的梯度 g
  • 将参数沿着负梯度的方向移动,即 W -= lr * g

1.4 “批”的大小对优化效果的影响

  • 《深度学习》 8.1.3 批量算法和小批量算法

  • <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值