AI人工智能培训 最全总结!机器学习优化算法!

本文概述了梯度下降、随机梯度下降、动量法(包括Adam)、牛顿法、拟牛顿法(如LBFGS)、模拟退火、自适应聚类模拟退火、遗传算法和粒子群优化等机器学习优化算法,讨论了它们的原理、应用和优缺点,强调选择算法需考虑问题特性和数据集。
摘要由CSDN通过智能技术生成

考虑一座在 (x1, x2) 点高度是 f(x1, x2) 的山。那么,某一点的梯度方向是在该点坡度最陡的方向,而梯度的大小告诉我们坡度到底有多陡。注意,梯度也可以告诉我们不在最快变化方向的其他方向的变化速度(二维情况下,按照梯度方向倾斜的圆在平面上投影成一个椭圆)。对于一个含有 n 个变量的标量函数,即函数输入一个 n 维 的向量,输出一个数值,梯度可以定义为:

Hesse 矩阵常被应用于牛顿法解决的大规模优化问题(后面会介绍),主要形式如下:

当 f(x) 为二次函数时,梯度以及 Hesse 矩阵很容易求得。二次函数可以写成下列形式:

其中 A 是 n 阶对称矩阵,b 是 n 维列向量, c 是常数。f(x) 梯度是 Ax+b, Hesse 矩阵等于 A。

Jacobi 矩阵实际上是向量值函数的梯度矩阵,假设F:Rn→Rm 是一个从n维欧氏空间转换到m维欧氏空间的函数。这个函数由m个实函数组成:

。这些函数的偏导数(如果存在)可以组成一个m行n列的矩阵(m by n),这就是所谓的雅可比矩阵:

二、机器学习的优化算法

2.1 梯度下降法(Gradient Descent)

梯度下降法是最常用的一种优化算法,通过迭代地沿着梯度的负方向来寻找最优解。

在机器学习中,梯度下降法通常用于求解损失函数的最小值,通过不断更新模型的参数来逐渐减小损失函数的值。

梯度下降法的优点是简单、稳定且容易实现,适用于大规模数据集和复杂的模型。

梯度下降是一个大类,常见的梯度下降类算法如下图:

2.2 随机梯度下降法(Stochastic Gradient Descent, SGD)

随机梯度下降是在梯度下降算法效率上做了优化,不使用全量样本计算当前的梯度,而是使用小批量(mini-batch)样本来估计梯度,大大提高了效率。

原因在于使用更多样本来估计梯度的方法的收益是低于线性的,对于大多数优化算法基于梯度下降,如果每一步中计算梯度的时间大大缩短,则它们会更快收敛。且训练集通常存在冗余,大量样本都对梯度做出了非常相似的贡献。此时基于小批量样本估计梯度的策略也能够计算正确的梯度,但是节省了大量时间。

SGD具有快速收敛的特点,适用于处理大规模数据集和分布式计算环境。

SGD的缺点是容易陷入局部最优解,可结合其他优化算法如动量法或Adam等来提高收敛效果。

2.3 动量法(Momentum)和Nesterov 动量法

动量法通过引入一个动量项来加速梯度下降法的收敛速度。

Nesterov 动量法是对动量法的改进,在每一步迭代中考虑了未来的信息,从而更好地指导参数的更新方向。

动量法和Nesterov 动量法适用于非凸优化问题,能够跳出局部最优解并加速收敛。

2.4 Adam(Adaptive Moment Estimation)

Adam是最常用的优化算法之一,是一种自适应学习率的优化算法,结合了动量法和RMSprop的思想。

Adam能够自动调整学习率,并且在不同的数据分布和模型结构下具有良好的收敛效果。(虽然说已经简化了调参,但是并没有一劳永逸地解决问题,默认的参数虽然好,但也不是放之四海而皆准。因此,在充分理解数据的基础上,依然需要根据数据特性、算法特性进行充分的调参实验。)

Adam适用于处理高维特征和稀疏数据集,非常适用于深度学习模型中的参数优化。在使用大型模型和数据集的情况下,Adam 优化算法在解决局部深度学习问题上是很高效的。

2.5 AdaGrad(Adaptive Gradient Algorithm)和RMSprop

AdaGrad是一种自适应学习率的优化算法,能够根据参数的历史梯度来动态调整学习率。

RMSprop则是对AdaGrad的改进,通过引入一个指数衰减的平均来平滑历史梯度的方差。

AdaGrad和RMSprop适用于处理稀疏数据集和具有非平稳目标函数的优化问题。

2.6  牛顿法(Newton's Method)和拟牛顿法(Quasi-Newton Methods)

牛顿法是一种基于目标函数的二阶导数信息的优化算法,通过构建二阶导数矩阵并对其进行求解来逼近最优解。

拟牛顿法是牛顿法的改进,通过构造一个对称正定的矩阵来逼近目标函数的二阶导数矩阵的逆矩阵,从而避免了直接计算二阶导数矩阵的逆矩阵。

牛顿法和拟牛顿法适用于二阶可导的目标函数,具有较快的收敛速度,但在计算二阶导数矩阵时需要较大的存储空间。

2.7 共轭梯度法(Conjugate Gradient)

共轭梯度法是介于梯度下降法和牛顿法之间的一种方法,利用共轭方向进行搜索。

共轭梯度法的优点是在每一步迭代中不需要计算完整的梯度向量,而是通过迭代的方式逐步逼近最优解。

该方法适用于大规模问题,尤其是稀疏矩阵和对称正定的问题。

2.8 LBFGS(Limited-memory Broyden–Fletcher–Goldfarb–Shanno)

一种有限内存的Broyden-Fletcher-Goldfarb-Shanno(BFGS)算法,主要用于解决大规模优化问题。由于它只需要有限数量的计算机内存,因此特别适合处理大规模问题。LBFGS算法的目标是最小化一个给定的函数,通常用于机器学习中的参数估计。

2.9 SA(Simulated Annealing)

一种随机搜索算法,其灵感来源于物理退火过程。该算法通过接受或拒绝解的移动来模拟退火过程,以避免陷入局部最优解并寻找全局最优解。在模拟退火算法中,接受概率通常基于解的移动的优劣和温度的降低,允许在搜索过程中暂时接受较差的解,这有助于跳出局部最优,从而有可能找到全局最优解。

2.10 AC-SA(Adaptive Clustering-based Simulated Annealing)

一种基于自适应聚类的模拟退火算法。通过模拟物理退火过程,利用聚类技术来组织解空间并控制解的移动。该方法适用于处理大规模、高维度的优化问题,尤其适用于那些具有多个局部最优解的问题。

遗传算法是一种基于自然选择和遗传学机理的生物进化过程的模拟算法,适用于解决优化问题,特别是组合优化问题。该算法通过数学的方式,利用计算机仿真运算,将问题的求解过程转换成类似生物进化中的染色体基因的交叉、变异等过程。在求解较为复杂的组合优化问题时,相对一些常规的优化算法,通常能够较快地获得较好的优化结果。

2.11 PSO(Particle Swarm Optimization)

PSO是一种基于种群的随机优化技术,模拟了鸟群觅食的行为(吐槽下,智能优化算法的领域真是卷麻了!!!)。粒子群算法模仿昆虫、兽群、鸟群和鱼群等的群集行为,这些群体按照一种合作的方式寻找食物,群体中的每个成员通过学习它自身的经验和其他成员的经验来不断改变其搜索模式。PSO算法适用于处理多峰函数和离散优化问题,具有简单、灵活和容易实现的特点。

回顾下各类算法的优缺点:

三、优化算法的小结

本文介绍了梯度下降类、牛顿法、模拟退火、遗传算法和粒子群优化等常用的机器学习优化算法。这些算法各有特点和适用范围,选择合适的算法需要根据具体的问题、数据集和模型来进行权衡的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值