梯度提升与梯度下降_梯度提升和梯度下降的区别-程序员宅基地

技术标签: 机器学习/深度学习  机器学习  深度学习  数据挖掘  

梯度是什么

  “梯度提升”与“梯度下降”中的“梯度”是什么?梯度是损失函数对需要求解的模型参数的导数。梯度方向是参数导数中绝对值最大的方向,因此梯度方向有两个,一个是梯度最大方向,另一个是梯度最小方向。

梯度是谁的

  “梯度”是目标函数在当前点的梯度(不是参数的梯度),因此有了目标函数、样本点,才会有梯度。

梯度下降

  在参数空间中,梯度下降是指目标函数在当前点的取值下降(最小化目标函数),参数自身沿着负梯度的方向下降。因此梯度下降,是目标函数对最优参数的搜索,其变量是参数。
  梯度下降通常用来求解这种无约束最优化问题,它是一种迭代方法:初选取参数初值(还包括算法终止距离参数和学习率参数),不断迭代,更新参数的值,进行损失函数的最小化。
  为什么梯度的负方向是函数局部下降最快的方向?下面开始证明。
  假设迭代公式为: θ t = θ t − 1 + Δ θ \theta_{t}=\theta_{t-1}+\Delta \theta θt=θt1+Δθ,将 L ( θ t ) L\left(\theta_{t}\right) L(θt) θ t − 1 \theta_{t-1} θt1处进行泰勒展开:
L ( θ t ) = L ( θ t − 1 + Δ θ )   ≈ L ( θ t − 1 ) + L ′ ( θ t − 1 ) Δ θ \begin{aligned} L\left(\theta_{t}\right) &=L\left(\theta_{t-1}+\Delta \theta\right) \ \approx L\left(\theta_{t-1}\right)+L^{\prime}\left(\theta_{t-1}\right) \Delta \theta \end{aligned} L(θt)=L(θt1+Δθ) L(θt1)+L(θt1)Δθ
  故:
L ( θ t − 1 + Δ θ ) − L ( θ t − 1 ) ≈ L ′ ( θ t − 1 ) Δ θ L\left(\theta_{t-1}+\Delta \theta\right)-L\left(\theta_{t-1}\right) \approx L^{\prime}\left(\theta_{t-1}\right) \Delta \theta L(θt1+Δθ)L(θt1)L(θt1)Δθ
  则 L ′ ( θ t − 1 ) Δ θ L^{\prime}\left(\theta_{t-1}\right) \Delta \theta L(θt1)Δθ是函数值的变化量,因为 L ′ ( θ t − 1 ) 和 Δ θ L^{\prime}\left(\theta_{t-1}\right)和 \Delta \theta L(θt1)Δθ均为向量,因此 L ′ ( θ t − 1 ) Δ θ L^{\prime}\left(\theta_{t-1}\right) \Delta \theta L(θt1)Δθ是两个向量进行点积,而向量进行点积绝对值最大时,是两者共线的时候。故 L ′ ( θ t − 1 ) 和 Δ θ L^{\prime}\left(\theta_{t-1}\right)和 \Delta \theta L(θt1)Δθ方向相同,点积正方向最大;若 L ′ ( θ t − 1 ) 和 Δ θ L^{\prime}\left(\theta_{t-1}\right)和 \Delta \theta L(θt1)Δθ反向,点积负方向最大。
  因此,梯度的负方向是局部下降最快的方向,反之,梯度(正)方向是函数局部上升最快的方向。
所以, Δ θ = − α L ′ ( θ t − 1 ) \Delta \theta=-\alpha L^{\prime}\left(\theta_{t-1}\right) Δθ=αL(θt1),此时 α \alpha α是学习率(也称为步长)。
对于最终的最优解 θ ∗ \theta^{*} θ θ ∗ = ∑ t = 0 T α t ∗ [ − δ L ( θ ) δ θ ] θ = θ t − 1 \theta^{*}=\sum_{t=0}^{T} \alpha_{t} *\left[-\frac{\delta L(\theta)}{\delta \theta}\right]_{\theta=\theta_{t-1}} θ=t=0Tαt[δθδL(θ)]θ=θt1

梯度提升

  在函数空间中,可以借鉴梯度下降的思想,进行最优函数的搜索。梯度提升实际仍是指对于模型的目标函数在当前点的取值提升(有说梯度提升仅指GBDT,对“新函数求导”,让“新函数”沿着梯度方向变化)。
  同样, f t ( x ) = − α t g t ( x ) = − α t ∗ [ δ L ( y , F ( x ) ) δ F ( x ) ] F ( x ) = F t − 1 ( x ) f_{t}(x)=-\alpha_{t} g_{t}(x)=-\alpha_{t} *\left[\frac{\delta L(y, F(x))}{\delta F(x)}\right]_{F(x)=F_{t-1}(x)} ft(x)=αtgt(x)=αt[δF(x)δL(y,F(x))]F(x)=Ft1(x)
  可以看出,这个梯度变量是一个函数,通过当前函数的负梯度方向来更新函数以修正模型,是模型更优,最后累加(加法模型)的模型为近似最优函数。

  梯度提升原理:
  假设已经有T(0≤t≤T)个不完美的模型 F t − 1 F_{t-1} Ft1。梯度提升算法不改变 F t − 1 F_{t-1} Ft1,而是通过增加估计其f构建新的模型 F t ( x ) = F t − 1 ( x ) + f ( x ) F_{t}(x) = F_{t-1}(x)+f(x) Ft(x)=Ft1(x)+f(x)来提高整体模型的效果。如何找到最优的f(x)呢?最好的f(x)应该使得 F t ( x ) = F t − 1 ( x ) + f ( x ) = y F_{t}(x)=F_{t-1}(x)+f(x)=y Ft(x)=Ft1(x)+f(x)=y,或者等价于 f ( x ) = y − F t − 1 ( x ) f(x)=y-F_{t-1}(x) f(x)=yFt1(x)
  因此梯度提升算法是将 f f f与残差 y − F t − 1 ( x ) y-F_{t-1}(x) yFt1(x)拟合。可以观察到,残差 y − F t − 1 ( x ) y-F_{t-1}(x) yFt1(x)是损失函数 1 / 2 ( y − F t − 1 ( x ) ) 2 1/2(y-F_{t-1}(x))^2 1/2(yFt1(x))2的负梯度方向,因此可以将其推广到其他不是平方误差(分类或者排序问题)的损失函数。也就是说,梯度提升算法实际上也是一种梯度下降算法,只需要更改损失函数和梯度就可以将其推广。
  当采用平方误差损失函数时, L ( y , f ( x ) ) = ( y − f ( x ) ) 2 L(y, f(x))=(y-f(x))^{2} L(y,f(x))=(yf(x))2,其损失函数变为: L ( y , f t ( x ) ) = L ( y , f t − 1 ( x ) + T ( x ; θ t ) ) = ( y − f t − 1 ( x ) − T ( x ; θ t ) ) 2 = ( r − T ( x ; θ t ) ) 2 \begin{array}{l} {L\left(y, f_{t}(x)\right)} \\ {=L\left(y, f_{t-1}(x)+T\left(x ; \theta_{t}\right)\right)} \\ {=\left(y-f_{t-1}(x)-T\left(x ; \theta_{t}\right)\right)^{2}} \\ {=\left(r-T\left(x ; \theta_{t}\right)\right)^{2}} \end{array} L(y,ft(x))=L(y,ft1(x)+T(x;θt))=(yft1(x)T(x;θt))2=(rT(x;θt))2
  其中 r − T ( x ; θ t ) {r-T\left(x ; \theta_{t}\right)} rT(x;θt)是当前模型拟合数据的残差。
  在使用更一般的损失函数时,利用损失函数的负梯度在当前模型的值
− [ δ L ( y , F ( x ) ) δ F ( x ) ] F ( x ) = F t − 1 ( x ) -\left[\frac{\delta L(y, F(x))}{\delta F(x)}\right]_{F(x)=F_{t-1}(x)} [δF(x)δL(y,F(x))]F(x)=Ft1(x)作为提升树算法中残差的近似值,拟合一个梯度提升模型。下面开始证明。
  对函数 f ( x ) f(x) f(x) x = x t − 1 x=x_{t-1} x=xt1处的泰勒展开式为: f ( x ) ≈ f ( x t − 1 ) + f ′ ( x t − 1 ) ( x − x t − 1 ) f(x) \approx f(x_{t-1})+f^{\prime}(x_{t-1})(x-x_{t-1}) f(x)f(xt1)+f(xt1)(xxt1),因此,损失函数 L ( y , F ( x ) ) L(y,F(x)) L(y,F(x)) F ( x ) = F t − 1 ( x ) F(x)=F_{t-1}(x) F(x)=Ft1(x)处的泰勒展开式为:
L ( y , F ( x ) ) ≈ L ( y , F t − 1 ( x ) ) + [ δ L ( y , F ( x ) ) δ F ( x ) ] F ( x ) = F t − 1 ( x ) ( F ( x ) − F t − 1 ( x ) ) L(y, F(x)) \approx L(y, F_{t-1}(x))+\left[\frac{\delta L(y, F(x))}{\delta F(x)}\right]_{F(x)=F_{t-1}(x)}(F(x)-F_{t-1}(x)) L(y,F(x))L(y,Ft1(x))+[δF(x)δL(y,F(x))]F(x)=Ft1(x)(F(x)Ft1(x))
  将 F ( x ) = F t ( x ) F(x)=F_t(x) F(x)=Ft(x)带入上式,可得:
L ( y , F t ( x ) ) ≈ L ( y , F t − 1 ( x ) ) + [ δ L ( y , F ( x ) ) δ F ( x ) ] F ( x ) = F t − 1 ( x ) ( F t ( x ) − F t − 1 ( x ) ) L(y, F_{t}(x)) \approx L(y, F_{t-1}(x))+\left[\frac{\delta L(y, F(x))}{\delta F(x)}\right]_{F(x)=F_{t-1}(x)}(F_{t}(x)-F_{t-1}(x)) L(y,Ft(x))L(y,Ft1(x))+[δF(x)δL(y,F(x))]F(x)=Ft1(x)(Ft(x)Ft1(x))
  因此, − [ δ L ( y , F ( x ) ) δ F ( x ) ] F ( x ) = F t − 1 ( x ) -\left[\frac{\delta L(y, F(x))}{\delta F(x)}\right]_{F(x)=F_{t-1}(x)} [δF(x)δL(y,F(x))]F(x)=Ft1(x)应该对应于平方误差损失函数中的 y − F t − 1 ( x ) y-F_{t-1}(x) yFt1(x),故对于平方损失函数拟合的是残差,对于一般损失函数,拟合的是残差的近似值。

总结

  1、参数与模型
  梯度提升与梯度下降算法,都是指每一轮迭代中,利用目标函数相对于模型的负梯度方向的信息来对当前模型进行更新,只是在梯度下降中,函数是以参数化形式表示,参数的更新等价于模型的更新;而在梯度提升中,模型直接定义在函数空间中,函数的优化等价于模型的优化,大大扩展了可以使用的模型种类。
  2、近似残差
  在平方误差损失函数和指数损失函数中,损失函数的负梯度在当前模型的值作为梯度提升算法中的残差,而在其他一般损失函数中,残差 y − F t − 1 ( x ) y-F_{t-1}(x) yFt1(x)是目标函数 1 / 2 ( y − F t − 1 ( x ) ) 2 1/2(y-F_{t-1}(x))^2 1/2(yFt1(x))2的负梯度方向,因此可以将其推广到其他不是平方误差的目标函数。
  梯度提升算法是一种梯度下降算法,不同之处在于更改损失函数和求其负梯度就能将其推广,即可以将结论推广为对于一般损失函数也可以利用损失函数的负梯度近似拟合残差。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42003997/article/details/103682921

智能推荐

WCE Windows hash抓取工具 教程_wce.exe -s aaa:win-9r7tfgsiqkf:0000000000000000000-程序员宅基地

文章浏览阅读6.9k次。WCE 下载地址:链接:https://share.weiyun.com/5MqXW47 密码:bdpqku工具界面_wce.exe -s aaa:win-9r7tfgsiqkf:00000000000000000000000000000000:a658974b892e

各种“网络地球仪”-程序员宅基地

文章浏览阅读4.5k次。Weather Globe(Mackiev)Google Earth(Google)Virtual Earth(Microsoft)World Wind(NASA)Skyline Globe(Skylinesoft)ArcGISExplorer(ESRI)国内LTEarth(灵图)、GeoGlobe(吉奥)、EV-Globe(国遥新天地) 软件名称: 3D Weather Globe(http:/_网络地球仪

程序员的办公桌上,都出现过哪些神奇的玩意儿 ~_程序员展示刀,产品经理展示枪-程序员宅基地

文章浏览阅读1.9w次,点赞113次,收藏57次。我要买这些东西,然后震惊整个办公室_程序员展示刀,产品经理展示枪

霍尔信号、编码器信号与电机转向-程序员宅基地

文章浏览阅读1.6w次,点赞7次,收藏63次。霍尔信号、编码器信号与电机转向从电机出轴方向看去,电机轴逆时针转动,霍尔信号的序列为编码器信号的序列为将霍尔信号按照H3 H2 H1的顺序组成三位二进制数,则霍尔信号翻译成状态为以120°放置霍尔为例如不给电机加电,使用示波器测量三个霍尔信号和电机三相反电动势,按照上面所说的方向用手转动电机得到下图① H1的上升沿对应电机q轴与H1位置电角度夹角为0°,..._霍尔信号

个人微信淘宝客返利机器人搭建教程_怎么自己制作返利机器人-程序员宅基地

文章浏览阅读7.1k次,点赞5次,收藏36次。个人微信淘宝客返利机器人搭建一篇教程全搞定天猫淘宝有优惠券和返利,仅天猫淘宝每年返利几十亿,你知道么?技巧分享:在天猫淘宝京东拼多多上挑选好产品后,按住标题文字后“复制链接”,把复制的淘口令或链接发给机器人,复制机器人返回优惠券口令或链接,再打开天猫或淘宝就能领取优惠券啦下面教你如何搭建一个类似阿可查券返利机器人搭建查券返利机器人前提条件1、注册微信公众号(订阅号、服务号皆可)2、开通阿里妈妈、京东联盟、拼多多联盟一、注册微信公众号https://mp.weixin.qq.com/cgi-b_怎么自己制作返利机器人

【团队技术知识分享 一】技术分享规范指南-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏5次。技术分享时应秉持的基本原则:应有团队和个人、奉献者(统筹人)的概念,同时匹配团队激励、个人激励和最佳奉献者激励;团队应该打开工作内容边界,成员应该来自各内容方向;评分标准不应该过于模糊,否则没有意义,应由客观的基础分值以及分团队的主观综合结论得出。应有心愿单激励机制,促进大家共同聚焦到感兴趣的事情上;选题应有规范和框架,具体到某个小类,这样收获才有目标性,发布分享主题时大家才能快速判断是否是自己感兴趣的;流程和分享的模版应该有固定范式,避免随意的格式导致随意的内容,评分也应该部分参考于此;参会原则,应有_技术分享

随便推点

O2OA开源企业办公开发平台:使用Vue-CLI开发O2应用_vue2 oa-程序员宅基地

文章浏览阅读1k次。在模板中,我们使用了标签,将由o2-view组件负责渲染,给o2-view传入了两个参数:app="内容管理数据"和name="所有信息",我们将在o2-view组件中使用这两个参数,用于展现“内容管理数据”这个数据应用下的“所有信息”视图。在o2-view组件中,我们主要做的事是,在vue组件挂载后,将o2的视图组件,再挂载到o2-view组件的根Dom对象。当然,这里我们要在我们的O2服务器上创建好数据应用和视图,对应本例中,就是“内容管理数据”应用下的“所有信息”视图。..._vue2 oa

[Lua]table使用随笔-程序员宅基地

文章浏览阅读222次。table是lua中非常重要的一种类型,有必要对其多了解一些。

JAVA反射机制原理及应用和类加载详解-程序员宅基地

文章浏览阅读549次,点赞30次,收藏9次。我们前面学习都有一个概念,被private封装的资源只能类内部访问,外部是不行的,但这个规定被反射赤裸裸的打破了。反射就像一面镜子,它可以清楚看到类的完整结构信息,可以在运行时动态获取类的信息,创建对象以及调用对象的属性和方法。

Linux-LVM与磁盘配额-程序员宅基地

文章浏览阅读1.1k次,点赞35次,收藏12次。Logical Volume Manager,逻辑卷管理能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性/boot分区用于存放引导文件,不能基于LVM创建PV(物理卷):基于硬盘或分区设备创建而来,生成N多个PE,PE默认大小4M物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录 LVM 的属性,并把存储空间分割成默认大小为 4MB 的基本单元(PE),从而构成物理卷。

车充产品UL2089安规测试项目介绍-程序员宅基地

文章浏览阅读379次,点赞7次,收藏10次。4、Dielecteic voltage-withstand test 介电耐压试验。1、Maximum output voltage test 输出电压试验。6、Resistance to crushing test 抗压碎试验。8、Push-back relief test 阻力缓解试验。7、Strain relief test 应变消除试验。2、Power input test 功率输入试验。3、Temperature test 高低温试验。5、Abnormal test 故障试验。

IMX6ULL系统移植篇-系统烧写原理说明_正点原子 imx6ull nand 烧录-程序员宅基地

文章浏览阅读535次。镜像烧写说明_正点原子 imx6ull nand 烧录