梯度的直观理解_【风控建模】梯度提升@梯度下降

题外话:因为重复看GDBT和XGboost,所以很多东西容易恍惚,今天才发现一个问题梯度提升和梯度下降不是一回事?‍♀️,那就开始整理。

梯度

在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)或者▽f(x,y)。对于在点(x0,y0)的具体梯度向量就是(∂f/∂x0, ∂f/∂y0)T.或者▽f(x0,y0),如果是3个参数的向量梯度,就是(∂f/∂x, ∂f/∂y,∂f/∂z)T,以此类推。(此处忽略了斜率--导数--方向导数的内容,真正理解梯度需要完全理解其三步内容?‍♀️)

梯度的意义

从几何意义上讲,就是函数变化增加最快的地方。具体来说,对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快,也就是更加容易找到函数的最小值。

梯度提升和梯度下降的区别和联系(之前都没仔细发现这四个字不一样?‍♀️)

表是梯度提升算法和梯度下降算法的对比情况。可以发现,两者都是在每 一轮迭代中,利用损失函数相对于模型的负梯度方向的信息来对当前模型进行更新,只不过在梯度下降中,模型是以参数化形式表示,从而模型的更新等价于参数的更新。而在梯度提升中,模型并不需要进行参数化表示,而是直接定义在函数空间中,从而大大扩展了可以使用的模型种类。

d5d9a47bc857b9cbbe2a769e5ad3381d.png

梯度下降

梯度下降法用于求解无约束最优化问题:  7ad7968f-3640-eb11-8da9-e4434bdf6706.svg 记第  7cd7968f-3640-eb11-8da9-e4434bdf6706.svg  次迭代值为  7ed7968f-3640-eb11-8da9-e4434bdf6706.svg  ,初始值为  81d7968f-3640-eb11-8da9-e4434bdf6706.svg  。更新公式:  83d7968f-3640-eb11-8da9-e4434bdf6706.svg

85d7968f-3640-eb11-8da9-e4434bdf6706.svg 是 89d7968f-3640-eb11-8da9-e4434bdf6706.svg 在点 7ed7968f-3640-eb11-8da9-e4434bdf6706.svg 的梯度。 8fd7968f-3640-eb11-8da9-e4434bdf6706.svg 是学习率或步长,可以是定值,也可以是使得 89d7968f-3640-eb11-8da9-e4434bdf6706.svg 下

降最大的那个步长: 92d7968f-3640-eb11-8da9-e4434bdf6706.svg

通常的理解是,更新公式中的  94d7968f-3640-eb11-8da9-e4434bdf6706.svg  是模型参数  96d7968f-3640-eb11-8da9-e4434bdf6706.svg  ,但其实  94d7968f-3640-eb11-8da9-e4434bdf6706.svg  可以不仅仅可以是模型参数。 梯度提升

给定训练集 9cd7968f-3640-eb11-8da9-e4434bdf6706.svg ,任务是训练一个函数 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg 来拟合这个数据,损失函数是平方误差:

a2d7968f-3640-eb11-8da9-e4434bdf6706.svg

一开始,训练了一个函数 a5d7968f-3640-eb11-8da9-e4434bdf6706.svg ,赋给 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg , aad7968f-3640-eb11-8da9-e4434bdf6706.svg 。每个样本产生的误差,也叫残差(residual),是 acd7968f-3640-eb11-8da9-e4434bdf6706.svg 。接下来,要优化 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg ,条件是不能改变 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg 已有的内容,只能往 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg 上继续添加函数。再训练一个函数 b7d7968f-3640-eb11-8da9-e4434bdf6706.svg 来填补误差,即 b7d7968f-3640-eb11-8da9-e4434bdf6706.svg 的目标从 bbd7968f-3640-eb11-8da9-e4434bdf6706.svg 变成了 acd7968f-3640-eb11-8da9-e4434bdf6706.svg 。然后把 b7d7968f-3640-eb11-8da9-e4434bdf6706.svg添加到 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg, c5d7968f-3640-eb11-8da9-e4434bdf6706.svg 。然后误差变为新的 acd7968f-3640-eb11-8da9-e4434bdf6706.svg 。

以此类推,每次迭代都训练一个新的函数 cbd7968f-3640-eb11-8da9-e4434bdf6706.svg ,目标是误差 acd7968f-3640-eb11-8da9-e4434bdf6706.svg ,然后把新的函数 cbd7968f-3640-eb11-8da9-e4434bdf6706.svg添加到 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg

停止迭代后, 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg 就是若干个函数的和:

d6d7968f-3640-eb11-8da9-e4434bdf6706.svg

这就是梯度提升的直观例子,每次迭代训练一个弱学习器,目标是误差,最后将若干个弱学习器加到一起,作为最终的模型。

梯度提升和梯度下降的关系

从梯度下降法角度来看这个例子。令优化目标为 

d8d7968f-3640-eb11-8da9-e4434bdf6706.svg

优化变量为: 

dad7968f-3640-eb11-8da9-e4434bdf6706.svg

对照上节的符号, ddd7968f-3640-eb11-8da9-e4434bdf6706.svg 是 89d7968f-3640-eb11-8da9-e4434bdf6706.svg , 94d7968f-3640-eb11-8da9-e4434bdf6706.svg 的第 e5d7968f-3640-eb11-8da9-e4434bdf6706.svg 个元素是 e7d7968f-3640-eb11-8da9-e4434bdf6706.svg 。94d7968f-3640-eb11-8da9-e4434bdf6706.svg 可以不仅可以是模型参数,还可以直接是模型输出。

梯度是一个向量,第 e5d7968f-3640-eb11-8da9-e4434bdf6706.svg 维是 ddd7968f-3640-eb11-8da9-e4434bdf6706.svg 对 e7d7968f-3640-eb11-8da9-e4434bdf6706.svg 的偏导数: 

f2d7968f-3640-eb11-8da9-e4434bdf6706.svg

梯度更新:

f4d7968f-3640-eb11-8da9-e4434bdf6706.svg

f8d7968f-3640-eb11-8da9-e4434bdf6706.svg 时,有

fed7968f-3640-eb11-8da9-e4434bdf6706.svg

同样,有一个条件是不改变 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg已有的内容,只能往 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg上继续添加函数,所以不能把08d8968f-3640-eb11-8da9-e4434bdf6706.svg 消掉。这个更新公式的意思是,把函数的输出再加上一个误差。为了达到这个目的,就需要新训练一个函数来拟合误差,然后将函数加到 9fd7968f-3640-eb11-8da9-e4434bdf6706.svg上。也就是说,损失函数为二分之一平方误差,步长为1时,梯度下降法跟梯度提升是等价的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值