当前位置: 首页 > news >正文

《XGBoost算法的原理推导》12-7损失函数经验损失项二阶泰勒展开式 公式解析

本文是将文章《XGBoost算法的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。


我们可以将公式 (12-7) 的损失函数经验损失项部分对照标准的二阶泰勒展开式的形式。
f ( x ) ≈ f ( a ) + f ′ ( a ) ( x − a ) + f ′ ′ ( a ) 2 ( x − a ) 2 f(x) \approx f(a) + f'(a) (x - a) + \frac{f''(a)}{2} (x - a)^2 f(x)f(a)+f(a)(xa)+2f′′(a)(xa)2

回顾公式 (12-7) 的形式

在公式 (12-7) 中,我们的目标是对损失函数 l ( y i , y ^ i ( t − 1 ) + f t ( x i ) ) l(y_i, \hat{y}_i^{(t-1)} + f_t(x_i)) l(yi,y^i(t1)+ft(xi)) 进行二阶泰勒展开,在点 y ^ i ( t − 1 ) \hat{y}_i^{(t-1)} y^i(t1) 附近展开。公式 (12-7) 中的损失函数部分可以写为:

l ( y i , y ^ i ( t − 1 ) + f t ( x i ) ) ≈ l ( y i , y ^ i ( t − 1 ) ) + g i f t ( x i ) + 1 2 h i f t 2 ( x i ) l\left(y_i, \hat{y}_i^{(t-1)} + f_t(x_i)\right) \approx l\left(y_i, \hat{y}_i^{(t-1)}\right) + g_i f_t(x_i) + \frac{1}{2} h_i f_t^2(x_i) l(yi,y^i(t1)+ft(xi))l(yi,y^i(t1))+gift(xi)+21hift2(xi)

匹配二阶泰勒展开的标准形式

根据标准的二阶泰勒展开,我们可以逐项对应:

  1. f ( a ) f(a) f(a)

    • 在这里,相当于 l ( y i , y ^ i ( t − 1 ) ) l(y_i, \hat{y}_i^{(t-1)}) l(yi,y^i(t1)),即在点 y ^ i ( t − 1 ) \hat{y}_i^{(t-1)} y^i(t1) 处的损失函数值。
    • 这相当于泰勒展开中的常数项 f ( a ) f(a) f(a)
  2. 一阶导数项 f ′ ( a ) ( x − a ) f'(a)(x - a) f(a)(xa)

    • 这里的一阶导数项是 g i f t ( x i ) g_i f_t(x_i) gift(xi),其中 g i = ∂ l ( y i , y ^ i ( t − 1 ) ) ∂ y ^ i ( t − 1 ) g_i = \frac{\partial l(y_i, \hat{y}_i^{(t-1)})}{\partial \hat{y}_i^{(t-1)}} gi=y^i(t1)l(yi,y^i(t1)) 是损失函数在点 y ^ i ( t − 1 ) \hat{y}_i^{(t-1)} y^i(t1) 处的一阶导数。
    • 对应的增量 ( x − a ) (x - a) (xa) 相当于 f t ( x i ) f_t(x_i) ft(xi),表示第 t t t 轮新模型的预测值。
    • 因此,一阶项可以表示为 g i f t ( x i ) g_i f_t(x_i) gift(xi)
  3. 二阶导数项 f ′ ′ ( a ) 2 ( x − a ) 2 \frac{f''(a)}{2} (x - a)^2 2f′′(a)(xa)2

    • 这里的二阶导数项是 1 2 h i f t 2 ( x i ) \frac{1}{2} h_i f_t^2(x_i) 21hift2(xi),其中 h i = ∂ 2 l ( y i , y ^ i ( t − 1 ) ) ∂ ( y ^ i ( t − 1 ) ) 2 h_i = \frac{\partial^2 l(y_i, \hat{y}_i^{(t-1)})}{\partial (\hat{y}_i^{(t-1)})^2} hi=(y^i(t1))22l(yi,y^i(t1)) 是损失函数在点 y ^ i ( t − 1 ) \hat{y}_i^{(t-1)} y^i(t1) 处的二阶导数。
    • 二阶项的形式为 1 2 h i f t 2 ( x i ) \frac{1}{2} h_i f_t^2(x_i) 21hift2(xi),对应于二阶泰勒展开中的二阶导数项 f ′ ′ ( a ) 2 ( x − a ) 2 \frac{f''(a)}{2} (x - a)^2 2f′′(a)(xa)2

最终形式

将公式 (12-7) 的损失函数部分写成标准的二阶泰勒展开形式,我们得到:

l ( y i , y ^ i ( t − 1 ) + f t ( x i ) ) ≈ l ( y i , y ^ i ( t − 1 ) ) + g i f t ( x i ) + 1 2 h i f t 2 ( x i ) l\left(y_i, \hat{y}_i^{(t-1)} + f_t(x_i)\right) \approx l\left(y_i, \hat{y}_i^{(t-1)}\right) + g_i f_t(x_i) + \frac{1}{2} h_i f_t^2(x_i) l(yi,y^i(t1)+ft(xi))l(yi,y^i(t1))+gift(xi)+21hift2(xi)

其中:

  • l ( y i , y ^ i ( t − 1 ) ) l(y_i, \hat{y}_i^{(t-1)}) l(yi,y^i(t1)) 对应于常数项 f ( a ) f(a) f(a)
  • g i f t ( x i ) g_i f_t(x_i) gift(xi) 对应于一阶项 f ′ ( a ) ( x − a ) f'(a) (x - a) f(a)(xa)
  • 1 2 h i f t 2 ( x i ) \frac{1}{2} h_i f_t^2(x_i) 21hift2(xi) 对应于二阶项 f ′ ′ ( a ) 2 ( x − a ) 2 \frac{f''(a)}{2} (x - a)^2 2f′′(a)(xa)2

这个二阶泰勒展开的形式让我们可以用一阶和二阶导数的近似值来表达损失函数,使得优化过程更加简化。


http://www.mrgr.cn/news/67103.html

相关文章:

  • Python数据可视化seaborn
  • pyspark基础准备
  • 鸿蒙Next如何接入微信支付
  • 扩散模型的数学原理(基于分数)
  • 开源的flash浏览器 CelfFlashBrowser
  • 一招教你查看最真实的Facebook广告转化
  • 【你也能从零基础学会网站开发】 SQL Server结构化查询语言数据操作应用--DML篇 浅谈SQL JOIN多表查询之FULL JOIN 全连接查询
  • VBA06-组件
  • ThreadLocal从入门到精通
  • RPM Fusion 软件仓库简介
  • Java第十一天(实训学习整理资料(十)Java IO流)
  • Bridge(桥接)
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十七章 交叉编译QT工程
  • 架构评估的方法
  • 【PyTorch][chapter31][transformer-5] MQA,CQA, GQA
  • 7.2 设计模式
  • 零基础‘自外网到内网’渗透过程详细记录(cc123靶场)——下
  • java_继承
  • Oracle 第26章:Oracle Data Guard
  • 11.6 校内模拟赛总结