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

《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.kler.cn/a/383397.html

相关文章:

  • 技术文档的语言表达:简洁、准确与易懂的艺术
  • golang连接jenkins构建build
  • JVM实战—2.JVM内存设置与对象分配流转
  • 每天40分玩转Django:Django静态文件
  • Python爬虫(入门+进阶)
  • 《计算机网络(第7版)-谢希仁》期末考试复习题和答案(总结整理)
  • 归并排序:高效算法的深度解析
  • 大模型LLama3!!!Ollama下载、部署和应用(保姆级详细教程)
  • K8s小白入门
  • 【C++笔记】模版的特化及其编译分离
  • 6.qsqlquerymodel源码分析
  • Java Agent使用、用途和优势
  • 第十九周机器学习笔记:GAN的数学理论知识与实际应用的操作
  • URL上的参数获取
  • C++之多态(3)
  • 鸿蒙next打包流程
  • 提升网站流量的有效网页优化方法指南
  • 力扣1 两数之和
  • 栈和队列相关题 , 用队列实现栈, 用栈实现队列 ,设计循环队列 C/C++双版本
  • C#字符串的不可变性:内存管理与线程安全的优势分析
  • 你要的增量更新来了:微软GraphRAG 0.4.0
  • DPDK(F-Stack) 实现UDP通信
  • 印刷质量检测笔记
  • TS(类 接口 泛型)
  • 【Python编程实例】-深入理解Python线程安全
  • 【机器学习】随机森林算法