机器学习知识总结系列-机器学习中的优化算法总结(1-4)

本文综述了机器学习中常用的优化算法,包括梯度下降的各种形式(如批量梯度下降、随机梯度下降和小批量随机梯度下降)、动量算法、自适应学习率算法等,并探讨了它们的优点和局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


几乎所有的的机器学习问题最终都将转换为一个最优化问题,而一般回转换为最小化问题
传统的解析方法在机器学习的优化问题中常常不适用,通常使用的是迭代优化的问题,需要确定两个关键点:1.下降的方向 2.确定下降的步长
参考博客

1.梯度下降

每次都沿着目标函数的负梯度方向进行下降,更新参数

1.1批量梯度下降(BGD)

BGD 采用整个训练集的数据来计算 cost function 对参数的梯度
在这里插入图片描述

1.2随机梯度下降(SGD)

和批量梯度下降(BGD) 的一次用所有数据计算梯度相比,随机梯度下降(SGD)每次更新时对每个样本进行梯度更新,
对于很大的数据集来说,可能会有相似的样本,这样 BGD 在计算梯度时会出现冗余, 而 SGD 一次只进行一次更新,
就没有冗余,而且比较快,并且可以新增样本。

缺点
随机梯度下降(SGD)因为更新比较频繁,会造成 cost function 有严重的震荡,此外随机梯度下降(SGD)对噪声比较敏感;批量梯度下降(BGD)可以收敛到局部极小值,当然 随机梯度下降(SGD)的震荡可能会跳到更好的局部极小值处。;当我们稍微减小 learning rate,随机梯度下降(SGD)和批量梯度下降(BGD)的收敛性是一样的。

1.3 小批量随机梯度下降(MSGD)

MBGD 每一次利用一小批样本,即 n 个样本进行计算, 这样它可以降低参数更新时的方差,收敛更稳定,

另一方面可以充分地利用深度学习库中高度优化的矩阵操作来进行更有效的梯度计算。
和 SGD 的区别是每一次循环不是作用于每个样本,而是具有 n 个样本的Batch。

缺点

  • 1.选择合适的学习率非常困难。太大会使得手敛波动大,太小使得手敛速度慢
  • 2.所有的参数使用相同的学习率。对于不经常出现的特征的参数希望更新快些,对于常常出现的特征则希望跟新慢一些
  • 3.sgd容易收敛到局部最优解,并且在某些会受到鞍点影响;通过合适的初始化和step size设置下,鞍点影响可以降低。

minibatchSGD是梯度下降方法中较常用的方法,而且性能比其他两种都要好一些。但是仍然存在很多的问题,于是就有后面的那些改进的方法。

1.4 比较:

在这里插入图片描述

1.5 动量算法(momentum)

在这里插入图片描述
在这里插入图片描述

1.6 Nestrov Momentum

在这里插入图片描述

2. 自适应方法

2.1 自适应学习率算法(AdaGrad)

在这里插入图片描述

2.2 均方根反向传播算法(RMSprop)

在这里插入图片描述

2.3 Adadelta

在这里插入图片描述

2.4 自适应矩估计优化算法(Adam)

在这里插入图片描述
在这里插入图片描述

3.牛顿法

3.1 牛顿法

在这里插入图片描述
在这里插入图片描述

3.2 拟牛顿法

在这里插入图片描述

总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值