导航:首页 > 解决方法 > 梯度下降最简单的方法

梯度下降最简单的方法

发布时间:2022-09-11 14:41:55

1. 梯度下降法是什么意思

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。

在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。

反过来,如果需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。

缺点:

(1)靠近极小值时收敛速度减慢。

(2)直线搜索时可能会产生一些问题。

(3)可能会“之字形”地下降。

以上内容参考 网络-梯度下降

2. 梯度下降法原理和步骤

一、梯度法思想
梯度法思想的三要素:出发点、下降方向、下降步长。
机器学习中常用的权重更新表达式为
:,这里的λ就是学习率,本文从这个式子出发来把机器学习中的各种“梯度”下降法阐释清楚。
机器学习目标函数,一般都是凸函数,什么叫凸函数?限于篇幅,我们不做很深的展开,在这儿我们做一个形象的比喻,凸函数求解问题,可以把目标损失函数想象成一口锅,来找到这个锅的锅底。非常直观的想法就是,我们沿着初始某个点的函数的梯度方向往下走(即梯度下降)。在这儿,我们再作个形象的类比,如果把这个走法类比为力,那么完整的三要素就是步长(走多少)、方向、出发点,这样形象的比喻,让我们对梯度问题的解决豁然开朗,出发点很重要,是初始化时重点要考虑的,而方向、步长就是关键。事实上不同梯度的不同就在于这两点的不同!
梯度方向是

,步长设为常数Δ,这时就会发现,如果用在梯度较大的时候,离最优解比较远,W的更新比较快;然而到了梯度较小的时候,也就是较靠近最优解的时候,W的更新竟然也保持着跟原来一样的速率,这样会导致W很容易更新过度反而远离了最优解,进而出现在最优解附近来回震荡。所以,既然在远离最优解的时候梯度大,在靠近最优解的时候梯度小,我们让步长随着这个律动,于是我我们就用λ|W|来代替Δ,最后得到了我们熟悉的式子:

所以说这时的λ是随着坡度的陡缓而变化的,别看它是个常数。
二、全量梯度下降法(Batch gradient descent)
全量梯度下降法每次学习都使用整个训练集,因此每次更新都会朝着正确的方向进行,最后能够保证收敛于极值点,凸函数收敛于全局极值点,非凸函数可能会收敛于局部极值点,缺陷就是学习时间太长,消耗大量内存。
第二、随机梯度下降法(Stochastic Gradient Descent)
SGD一轮迭代只用一条随机选取的数据,尽管SGD的迭代次数比BGD大很多,但一次学习时间非常快。
SGD的缺点在于每次更新可能并不会按照正确的方向进行,参数更新具有高方差,从而导致损失函数剧烈波动。不过,如果目标函数有盆地区域,SGD会使优化的方向从当前的局部极小值点跳到另一个更好的局部极小值点,这样对于非凸函数,可能最终收敛于一个较好的局部极值点,甚至全局极值点。
缺点是,出现损失函数波动,并且无法判断是否收敛。

3. 梯度下降法是什么

梯度下降是通过迭代搜索一个函数极小值的优化算法。使用梯度下降,寻找一个函数的局部极小值的过程起始于一个随机点,并向该函数在当前点梯度(或近似梯度)的反方向移动。梯度下降算法是一种非常经典的求极小值的算法。

比如逻辑回归可以用梯度下降进行优化,因为这两个算法的损失函数都是严格意义上的凸函数,即存在全局唯一极小值,较小的学习率和足够的迭代次数,一定可以达到最小值附近,满足精度要求是完全没有问题的。并且随着特征数目的增多,梯度下降的效率将远高于去解析标准方程的逆矩阵。

常用的梯度下降法有3种不同的形式:

(1)批量梯度下降法,简称BGD,使用所有样本,比较耗时。

(2)随机梯度下降法,简称SGD,随机选择一个样本,简单高效。

(3)小批量梯度下降法,简称MBGD,使用少量的样本,这是一个折中的办法。

机梯度下降法优点:

1、更容易跳出局部最优解。

2、具有更快的运行速度。

4. 梯度下降法是什么

梯度下降法是一个最优化算法,通常也称为最速下降法。

最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现已不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的。最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。

可以用于求解非线性方程组。

简介

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。

在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。

在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。

5. 机器学习中的降维算法和梯度下降法

机器学习中有很多算法都是十分经典的,比如说降维算法以及梯度下降法,这些方法都能够帮助大家解决很多问题,因此学习机器学习一定要掌握这些算法,而且这些算法都是比较受大家欢迎的。在这篇文章中我们就给大家重点介绍一下降维算法和梯度下降法。
降维算法
首先,来说一说降维算法,降维算法是一种无监督学习算法,其主要特征是将数据从高维降低到低维层次。在这里,维度其实表示的是数据的特征量的大小,当特征量大的话,那么就给计算机带来了很大的压力,所以我们可以通过降维计算,把维度高的特征量降到维度低的特征量,比如说从4维的数据压缩到2维。类似这样将数据从高维降低到低维有两个好处,第一就是利于表示,第二就是在计算上也能带来加速。
当然,有很多降维过程中减少的维度属于肉眼可视的层次,同时压缩也不会带来信息的损失。但是如果肉眼不可视,或者没有冗余的特征,这怎么办呢?其实这样的方式降维算法也能工作,不过这样会带来一些信息的损失。不过,降维算法可以从数学上证明,从高维压缩到的低维中最大程度地保留了数据的信息。所以说,降维算法还是有很多好处的。
那么降维算法的主要作用是什么呢?具体就是压缩数据与提升机器学习其他算法的效率。通过降维算法,可以将具有几千个特征的数据压缩至若干个特征。另外,降维算法的另一个好处是数据的可视化。这个优点一直别广泛应用。
梯度下降法
下面我们给大家介绍一下梯度下降法,所谓梯度下降法就是一个最优化算法,通常也称为最速下降法。最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的。最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。好比将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;当然解决问题的方法有很多,梯度下降只是其中一个,还有很多种方法。
在这篇文章中我们给大家介绍了关于机器算法中的降维算法以及梯度下降法,这两种方法是机器学习中十分常用的算法,降维算法和梯度下降法都是十分实用的,大家在进行学习机器学习的时候一定要好好学习这两种算法,希望这篇文章能够帮助大家理解这两种算法。

6. 梯度下降的例子

举一个非常简单的例子,如求函数 的最小值。
利用梯度下降的方法解题步骤如下:
1、求梯度,
2、向梯度相反的方向移动 ,如下
,其中, 为步长。如果步长足够小,则可以保证每一次迭代都在减小,但可能导致收敛太慢,如果步长太大,则不能保证每一次迭代都减少,也不能保证收敛。
3、循环迭代步骤2,直到 的值变化到使得 在两次迭代之间的差值足够小,比如0.00000001,也就是说,直到两次迭代计算出来的 基本没有变化,则说明此时 已经达到局部最小值了。
4、此时,输出 ,这个 就是使得函数 最小时的 的取值 。
MATLAB如下。 %%最速下降法图示%设置步长为0.1,f_change为改变前后的y值变化,仅设置了一个退出条件。symsx;f=x^2;step=0.1;x=2;k=0;%设置步长,初始值,迭代记录数f_change=x^2;%初始化差值f_current=x^2;%计算当前函数值ezplot(@(x,f)f-x^2)%画出函数图像axis([-2,2,-0.2,3])%固定坐标轴holdonwhilef_change>0.000000001%设置条件,两次计算的值之差小于某个数,跳出循环x=x-step*2*x;%-2*x为梯度反方向,step为步长,!最速下降法!f_change=f_current-x^2;%计算两次函数值之差f_current=x^2;%重新计算当前的函数值plot(x,f_current,'ro','markersize',7)%标记当前的位置drawnow;pause(0.2);k=k+1;endholdofffprintf('在迭代%d次后找到函数最小值为%e,对应的x值为%e ',k,x^2,x)梯度下降法处理一些复杂的非线性函数会出现问题,例如Rosenbrock函数:

其最小值在 处,函数值为 。但是此函数具有狭窄弯曲的山谷,最小点 就在这些山谷之中,并且谷底很平。优化过程是之字形的向极小值点靠近,速度非常缓慢。

7. 梯度下降——寻找那个最优解

在机器学习中,我们面对一个实际问题,收集了数据,建立了模型。接下来,就需要求解模型。即我们要取怎样的参数,才能使模型完成尽可能准确的预测呢?

在求解机器学习算法的模型参数,即无约束优化问题时,我们最常用的方法之一,便是 梯度下降法

如果坐标系内有两个点,此时,我们需要寻找一条直线将使得这两点损失最小。
这个问题非常容易。因为一条直线是可以覆盖两个点的,我们可以计算出:

这很容易,那么如果有三个点,情况会怎么样呢?

虽然我们还是能一眼看出,哪条线更符合我们的要求,但要求解它,已经不那么容易了。
如果有成千上万个点呢?

在机器学习的场景中,我们的数据是海量的。我们如何在海量数据中找到那一组损失最小,我们最需要的模型参数。这就是 梯度下降 带给我们的意义。

这是梯度下降法的在维基网络上的定义。我们应该如何理解呢?

可以想象一个情景。我们站在半山腰,需要最快的下山。这个山腰的高度就是模型任意参数时的损失值,山底就是损失值最小的点。而此时四周又有大雾,我们该如何下山呢?梯度下降法的思路就是,我们会以一步为限,寻找四周,我这一步能下降最多的方向,迈出这一步。然后再寻找能下降最多的方向,再迈出一步,经过不懈努力就能下山了。

对照上面的例子,因为我们无法计算出最佳参数是什么,所以我们需要进行反复试验摸索。每一步的距离,即为 步长 。下降最多的方向,即为损失函数对各方向上的 偏导 。山底就是我们使用梯度下降法,寻找到的最优解,即损失函数的极小值。

结合我们一开始的例子,假设我们需要用一条直接去覆盖很多的点。我们会这样定义一个损失函数:

式中,h函数即为我们的kx+b。
因为我们要寻找它下降最快的方向。我们会对其求偏导。

根据求出的偏导,不断更新theta:

这个方法就叫做: 批量梯度下降法

上面的迭代方法,虽然能帮助我们找到全局极小值。但是,在实际计算中,也会有相当的困难。每一次迭代,我们都需要对m项进行求和。如果m非常大,这个计算将会变得相当困难。

为了解决这样的困难,我们找到了一个新方法: 随机梯度下降法

如果我们的迭代只使用一个样本,会发生什么情况呢?

整个过程似乎会变得不可控了,因为随着样本的随机性。我们的梯度下降的方向,可能会产生一些随机因素。但如果样本数量足够大,当我们经历其中一部分样本后,我们就已经能到达最优解了。
相比于批量梯度下降,两者的关系可以这样理解:随机梯度下降方法以损失很小的一部分精确度和增加一定数量的迭代次数为代价,换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。

所以对比两种方式:

以上就是梯度下降的基本知识。如有问题,欢迎指正。

8. 梯度下降法是什么

梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最陡下降法。

要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。

梯度下降一般归功于柯西,他在 1847 年首次提出它。Hadamard在 1907 年独立提出了类似的方法。Haskell Curry在 1944 年首先研究了它对非线性优化问题的收敛性,随着该方法在接下来的几十年中得到越来越多的研究和使用,通常也称为最速下降。

梯度下降适用于任意维数的空间,甚至是无限维的空间。在后一种情况下,搜索空间通常是一个函数空间,并且计算要最小化的函数的Fréchet 导数以确定下降方向。

梯度下降适用于任意数量的维度(至少是有限数量)可以看作是柯西-施瓦茨不等式的结果。那篇文章证明了任意维度的两个向量的内(点)积的大小在它们共线时最大化。在梯度下降的情况下,当自变量调整的向量与偏导数的梯度向量成正比时。

修改

为了打破梯度下降的锯齿形模式,动量或重球方法使用动量项,类似于重球在被最小化的函数值的表面上滑动,或牛顿动力学中的质量运动在保守力场中通过粘性介质。具有动量的梯度下降记住每次迭代时的解更新,并将下一次更新确定为梯度和前一次更新的线性组合。

对于无约束二次极小化,重球法的理论收敛速度界与最优共轭梯度法的理论收敛速度界渐近相同。

该技术用于随机梯度下降,并作为用于训练人工神经网络的反向传播算法的扩展。

9. 梯度下降法和随机梯度下降法的区别

梯度下降和随机梯度下降之间的关键区别:
1、标准梯度下降是在权值更新前对所有样例汇总误差,而随机梯度下降的权值是通过考查某个训练样例来更新的。
2、在标准梯度下降中,权值更新的每一步对多个样例求和,需要更多的计算。
3、标准梯度下降,由于使用真正的梯度,标准梯度下降对于每一次权值更新经常使用比随机梯度下降大的步长。
4、如果标准误差曲面有多个局部极小值,随机梯度下降有时可能避免陷入这些局部极小值中。

相关知识:
1、梯度下降法是一个最优化算法,通常也称为最速下降法。最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的。最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。
缺点:
(1)靠近极小值时收敛速度减慢。
(2)直线搜索时可能会产生一些问题。
(3)可能会“之字形”地下降。
2、随机并行梯度下降算法,简称SPGD算法。作为一种无模型优化算法,比较适用于控制变量较多,受控系统比较复杂,无法建立准确数学模型的最优化控制过程。

阅读全文

与梯度下降最简单的方法相关的资料

热点内容
提公因式法的技巧和方法 浏览:822
脸上的瘊子治疗方法 浏览:140
暖气水管对接安装方法 浏览:568
测量直流功率的方法主要有 浏览:984
微信号检测方法 浏览:207
如何证明自己是学生的方法 浏览:279
500ml输液器连接方法 浏览:837
做白菜包子的方法与步骤窍门 浏览:770
膨胀丝钉安装方法 浏览:255
三菱的连接方法 浏览:434
如何让孩子做到自律的方法 浏览:32
未来五年狙神训练方法 浏览:34
贵州中小学微课录制简便方法 浏览:342
如何判断沉淀洗净的方法 浏览:498
炸薯条有哪些方法最简单的家用的 浏览:493
纹绣固色剂使用方法 浏览:812
调查方法案例分析 浏览:66
发生火灾时逃生方法的图片 浏览:707
窗帘幔子的计算方法 浏览:26
四块电瓶连接线的接线方法 浏览:447