f_t(x_i) 可能存在下限
个人理解,在 lll 为平方误差的时候,ft(x)f_{t}(x)ft(x) 是有范围的,我们对上面一阶泰勒展开的式子详细写开
l(Ht−1(xi)+ft(xi))≈l(Ht−1(xi))+∂l(Ht−1(xi))∂Ht−1(xi)×ft(xi)=[yi−Ht−1(xi)]2−2[yi−Ht−1(xi)]×ft(xi)
\begin{aligned}
l(H_{t-1}(x_i) + f_t(x_i) ) &\approx l(H_{t-1}(x_i)) + \frac{\partial{l(H_{t-1}(x_i))}}{\partial{H_{t-1}(x_i)}} \times f_t(x_i) \\
&= [y_{i}-H_{t-1}(x_{i})]^{2}-2[y_{i}-H_{t-1}(x_{i})]\times f_{t}(x_{i})\\
\end{aligned}
l(Ht−1(xi)+ft(xi))≈l(Ht−1(xi))+∂Ht−1(xi)∂l(Ht−1(xi))×ft(xi)=[yi−Ht−1(xi)]2−2[yi−Ht−1(xi)]×ft(xi)
这里需要注意的是,等式左面是平方损失,本身就是平方项,因此必须要大于等于 0,因此其最小值就为 0
[yi−Ht−1(xi)]2−2[yi−Ht−1(xi)]×ft(xi)=0ft(xi)=12[yi−Ht−1(xi)]ft(xi)=−14gt
\begin{aligned}
\ [y_{i}-H_{t-1}(x_{i})]^{2}-2[y_{i}-H_{t-1}(x_{i})]\times f_{t}(x_{i})&=0\\
f_{t}(x_{i})&=\frac{1}{2}[y_{i}-H_{t-1}(x_{i})]\\
f_{t}(x_{i})&=-\frac{1}{4}g_{t}
\end{aligned}
[yi−Ht−1(xi)]2−2[yi−Ht−1(xi)]×ft(xi)ft(xi)ft(xi)=0=21[yi−Ht−1(xi)]=−41gt
当然如果 lll 使用其他的计算公式那么这个推导就不适用了
为什么取 f_t(x_i)=-g_t
从迭代的角度说,其实 ft(xi)f_{t}(x_{i})ft(xi) 也没必要很大,因为此时梯度为 ∂l(Ht−1(xi))∂Ht−1(xi)\begin{aligned} \frac{\partial{l(H_{t-1}(x_i))}}{\partial{H_{t-1}(x_i)}}\end{aligned}∂Ht−1(xi)∂l(Ht−1(xi)),但经过更新后,也就是 Ht(x)=Ht−1(x)+ηft(x)H_t(x) = H_{t-1}(x) + \eta f_t(x)Ht(x)=Ht−1(x)+ηft(x),梯度的值也会重新变化,也就是损失函数下降最快的方向就会随之变化,因此我们需要不断更新梯度
对于一个凸函数,用泰勒展开并令其等于 0 得到的
ft(xi)=−14gtf_{t}(x_{i})=-\frac{1}{4}g_{t}ft(xi)=−41gt
即使拟合的数完全符合这个规则,代入
Ht(x)=Ht−1(x)+ft(x)H_t(x) = H_{t-1}(x) + f_t(x)Ht(x)=Ht−1(x)+ft(x)
并不会直接使得损失函数为 0,泰勒展开是约等于,只是使得在当前梯度情况下的损失函数最小值,也就是满足
l(Ht−1(xi))+∂l(Ht−1(xi))∂Ht−1(xi)×ft(xi)=0l(H_{t-1}(x_i)) + \frac{\partial{l(H_{t-1}(x_i))}}{\partial{H_{t-1}(x_i)}} \times f_t(x_i)=0l(Ht−1(xi))+∂Ht−1(xi)∂l(Ht−1(xi))×ft(xi)=0
但
l(Ht−1(xi)+ft(xi))≠0l(H_{t-1}(x_i) + f_t(x_i) )\ne 0l(Ht−1(xi)+ft(xi))=0
如果想要
l(Ht−1(xi)+ft(xi))=0l(H_{t-1}(x_i) + f_t(x_i) )= 0l(Ht−1(xi)+ft(xi))=0
则需要拟合 ft(xi)=−gtf_{t}(x_{i})=-g_{t}ft(xi)=−gt
感性的理解一下,也就是需要一步满足、
y=Ht−1(xi)+ft(xi)y=H_{t-1}(x_{i})+f_{t}(x_{i})y=Ht−1(xi)+ft(xi)
这样损失函数就能直接为 0,但此时模型的泛化能力会很弱,整体模型偏差小,方差很大,也就是决策树模型,所以我们要在保证减小损失函数的前提下保证模型的泛化能力,因此就会有 η\etaη 以及参数 max_depth 等来限制模型一次性达到损失函数的最小值