梯度提升如何像梯度下降一样?


Answers:


11

假设我们处于以下情况。我们有一些数据,其中每个X 可以是数字或向量,并且我们想确定一个函数˚F近似于关系˚F X Ý ,在这个意义上的最小二乘误差:{xi,yi}X一世FFX一世ÿ一世

1个2一世ÿ一世-FX一世2

是小。

现在,问题开始了,我们希望的域是什么。领域的退化选择只是我们训练数据中的要点。在这种情况下,我们可以只定义f x i= y,覆盖整个所需域,并用它完成。解决此问题的一种方法是使用此离散空间作为域进行梯度下降。这需要一些角度上的改变。让我们将损失视为真实y点和预测f的函数(目前,f不是函数,而只是预测的值)FFX一世=ÿÿ FF

大号F;ÿ=1个2ÿ-F2

然后针对预测取梯度

F大号F;ÿ=F-ÿ

然后,从的初始值开始进行梯度更新为ÿ0

ÿ1个=ÿ0-Fÿ0ÿ=ÿ0-ÿ0-ÿ=ÿ

因此,通过此设置,我们可以在渐变步骤中恢复理想的预测,这很好!

当然,这里的缺陷是我们希望定义不仅仅是我们的训练数据点。为此,我们必须做出一些让步,因为我们无法在训练数据集以外的任何点评估损失函数或其梯度。 F

大思路是弱近似L

Start最初的猜测是,几乎总是一个简单的常数函数f x = f 0,它随处可见。现在,通过使用f的初始猜测,通过评估训练数据处的损失函数的梯度来生成新的工作数据集:ff(x)=f0f

W={xi,f0y}

Now approximate 由弱学习拟合 w ^。说我们得到了近似 ˚F 大号。我们已经以 F X 的形式将数据 W扩展到整个域,尽管由于适合一个小的学习者,我们在训练点上已经失去了精度。LWFLWF(X)

Finally使用代替大号中的梯度更新˚F 0在整个域:FLf0

f1(x)=f0(x)F(x)

我们得到,它是f的新近似值,比f 0好一点。从f 1重新开始,并进行迭代直到满意为止。f1ff0f1

希望您看到真正重要的是近似损耗的梯度。在最小二乘最小化的情况下,采用原始残差的形式,但在更复杂的情况下则不采用。机械仍然适用。只要可以构造一种用于在训练数据处计算损失和损失梯度的算法,我们就可以使用该算法来近似最小化该损失的函数。


是的,我认为很好。唯一需要注意的是,例如,如果您想提高以最小化二项式损失则我们扩展的梯度为不再自然地与残差相关。
iyilog(pi)+(1yi)log(1pi)
马修·德鲁里

谢谢马修。我想让我明白的一件事。在文献中它经常说,模型更新为F(M + 1)= F(M)+ ,其中h(m)为弱学习。如果我正在考虑基于树的模型-这是否意味着对于回归和分类,我们都通过简单地添加两个模型的结果来实际地针对给定的数据点更新我们的预测?如果我们尝试对此进行二进制分类,那也行得通吗?还是应该不按字面意思解释+号?αmh(m)
Wouter

0,1

1
f1f0F(x)f0αF(x)α

@ hxd1011是的,这是绝对正确的,对于成功使用渐变增强至关重要。
马修·德鲁里
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.