机器学习中常见的优化算法

wanghui1994 wanghui1994     2023-01-04     592

关键词:

 

  在机器学习中,有很多的问题并没有解析形式的解,或者有解析形式的解但是计算量很大(譬如,超定问题的最小二乘解),对于此类问题,通常我们会选择采用一种迭代的优化方式进行求解。
??这些常用的优化算法包括:梯度下降法(Gradient Descent)共轭梯度法(Conjugate Gradient)Momentum算法及其变体,牛顿法和拟牛顿法(包括L-BFGS)AdaGradAdadeltaRMSpropAdam及其变体,Nadam

1.梯度下降法

  梯度下降法的核心思想就是:通过每次在当前梯度方向(最陡的方向)向前前进一步,来逐渐逼近函数的最小值。类似于你站在山峰上,怎样才能最快的下到山脚呢?当然是选择坡度最陡的方向下山最快,这个坡度最陡正是数学上的“导数”概念,但导数没有方向,对此出来了“梯度”z,所以才叫做“梯度下降法”

  首先对于机器学习而言,存在模型函数h(θ),以及损失函数J(θ)

 技术分享图片

  我们将损失函数在θi进行一阶泰勒展开:

  技术分享图片

  对于大多数博文而言,对应的梯度下降函数会是

  技术分享图片

  可能大家没有注意到,这里为什么后面变成了的导数,不应该是正的嘛,这是为什么呢?????其实这里存在的负号很重要

  首先,对于损失函数而言,我们的目标是减小损失函数的值,上式中,前面一项不需要解释,后面一项是梯度下降的系数*导数。

  损失函数是关于θ的函数,当导数大于0时,损失函数随着θ的减小而减小。对上式而言,此时θ在减小(后面一项小于0),那么相应的损失函数也会相应的减小。

  当导数小于0时,损失函数随着θ的增大而减小。对上式而言,此时的θ是在增大的(后面一项大于0),那么相应的损失函数也会相应的减小。

  所以这就是为什么这个地方一定是负号,看似简单的数学推到,实则里面蕴藏着数学家很多的心血。

  对于梯度下降法,它其实就是在m个样本中,找寻那个使得当前损失函数(不管以后,只看眼睛前)下降最快的方向来进行θ参数的迭代。

  但是这种梯度下降法目前使用不多了,因为当数据量非常大时,那么相应的进行一步迭代会非常吃力(需要遍历所有样本,每一次迭代时,每一个样本都要计算,成本太高了)。相应的便产生了随机梯度下降法和批量梯度下降法。引入随机梯度下降法与批量梯度下降法是为了应对大数据量的计算而实现一种快速的求解。

  随机梯度下降法:在梯度下降法的基础上,它在每次迭代时,只找一个样本来进行迭代,这样计算量就会减少很多。比如对于一个有几十万的大数据集,使用随机梯度下降法,或许只需要使用几千个数据就可以得到最优的θ,那么此时计算就会快很多,但相应的也存在噪音的干扰,如果出现一些脏数据样本,那么就会对θ的优化产生影响。这种做法相对于梯度下降而言十分极端,因此现在普遍使用批量梯度下降法。

  批量梯度下降法:批量梯度下降法中m替换成mini-batch,在此将mini-bach的size远小于m的大小,同时m也是远大于1的。

  (1)首先J(θ)对θ求导,得到每个θ对应的梯度:

          技术分享图片

  (2)由于最小化损失函数,座椅按照每个参数θ的梯度负方向,来更新θ:

    技术分享图片

  从上面的公式可以看出,每次迭代的时候都是得到局部最优的近似解,然后在进行下一轮的迭代,虽然不是得到全局最优,但是从计算力上却减小了不少的计算量,方便实际操作。(不要太理想化,要投入到实际中去)。



机器学习常见的优化算法

...”。最速下降法越接近目标值,步长越小,前进越慢。在机器学习中,基于基本的梯度下降法发展 查看详情

机器学习几种常见优化算法介绍(代码片段)

机器学习几种常见优化算法介绍https://blog.csdn.net/class_brick/article/details/78949145 1.梯度下降法(GradientDescent)2.牛顿法和拟牛顿法(Newton‘smethod& Quasi-NewtonMethods)3.共轭梯度法(ConjugateGradient)4.启发式优化方法 5 查看详情

几种常见的优化算法

...以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法 查看详情

机器学习常见算法简单汇总

机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作中都或多或少会用到机器学习的算法。这里IT经理网为您总结一下常见的机器学习算法,以供您在工作和学习中参考。机器学习的算法很多。很多时候... 查看详情

[人工智能-深度学习-15]:神经网络基础-常见优化器optimizer及其算法-梯度下降法系列

...iWangWenBing/article/details/120589554目录第1章什么是优化算法1.1机器学习模型与优化算法在机器学习模型中的位置1.2什么是优化器1.3什么是优化算法1.4优化 查看详情

机器学习最常用优化之一——梯度下降优化算法综述

转自:http://www.dataguru.cn/article-10174-1.html梯度下降算法是机器学习中使用非常广泛的优化算法,也是众多机器学习算法中最常用的优化方法。几乎当前每一个先进的(state-of-the-art)机器学习库或者深度学习库都会包括梯度下降算法... 查看详情

机器学习中常见优化方法汇总(代码片段)

...d/mathematical_optimization/index.html#a-review-of-the-different-optimizers机器学习中数学优化专门用于解决寻找一个函数的最小值的问题。这里的函数被称为costfunction或者objectivefunction,或者energy:损失函数或者目标函数 查看详情

机器学习中最优化算法的脉络

 主要分为是否约束,搜索方向两个维度。 查看详情

机器学习中最优化算法的脉络

 主要分为是否约束,与搜索方向两个维度。 查看详情

机器学习算法(优化)之一:梯度下降算法随机梯度下降(应用于线性回归logistic回归等等)

本文介绍了机器学习中基本的优化算法—梯度下降算法和随机梯度下降算法,以及实际应用到线性回归、Logistic回归、矩阵分解推荐算法等ML中。梯度下降算法基本公式常见的符号说明和损失函数X :所有样本的特征向量组成的... 查看详情

机器学习中的优化算法!

...干货 作者:李祖贤,Datawhale高校群成员,深圳大学在机器学习中,有很多的问题并没有解析形式的解,或者有解析形式的解但是计算量很大(譬如,超定问题的最小二乘解),对于此类问题,通常我们会选择采用一种迭代的... 查看详情

深度解析算法优化内部机制:为什么机器学习算法难以优化?

...解高级教程(附源码)tableau可视化数据分析高级教程在机器学习中,损失的线性组合无处不在。虽然它们带有一些陷阱,但仍然被广泛用作标准方法。这些线性组合常常让算法难以调整。在本文中,提出了以下论点:机器学习... 查看详情

常见机器学习算法优缺点

1、线性模型形式简单、易于建模、很好的可解释性2、逻辑回归无需事先假设数据分布;可得到近似概率预测;对率函数任意阶可导的凸函数,许多数值优化算法都可直接用于求取最优解3、线性判别分析(LDA)当两类数据同先验... 查看详情

《凸优化》学习笔记

...个广泛的话题,理解凸优化之前,请先理解线性优化。在机器学习算法中,已知的比如LogisticRegression,SVM,都与数学优化有关,在数学中,不存在无约束优化问题。比较常见的构建损失函数方法,从最简单的两个向量的二阶范数的... 查看详情

梯度下降优化算法综述

...dientdescentoptimizationalgorithms。??总所周知,梯度下降算法是机器学习中使用非常广泛的优化算法,也是众多机器学习算法中最常用的优化方法。几乎当前每一个先进的(state-of-the-art)机器学习库或者深度学习库都会包括梯度下降算法... 查看详情

梯度下降优化算法综述

...dientdescentoptimizationalgorithms。??总所周知。梯度下降算法是机器学习中使用非常广泛的优化算法,也是众多机器学习算法中最经常使用的优化方法。差点儿当前每一个先进的(state-of-the-art)机器学习库或者深度学习库都会包含梯度下... 查看详情

8种常见机器学习算法比较

机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普遍认同的算法,诸如SVM,... 查看详情

(转)8种常见机器学习算法比较

机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普遍认同的算法,诸如SVM,... 查看详情