机器学习:集成学习4(XGBoost前置知识泰勒展开式2)

泰勒多项式为什么要设计成那个样子?它到底在"匹配"什么?

泰勒公式要保证近似多项式在 x_0 处的二阶导数等于原函数的二阶导数。不懂,举个例子

一、先忘掉泰勒公式,想一个简单问题

假设你有一个函数 ( f ( x ) = e x (f(x) = e^x (f(x)=ex),你想在 ( x = 0 (x = 0 (x=0) 附近用一个二次多项式去近似它:

P ( x ) = a + b x + c x 2 P(x) = a + bx + cx^2 P(x)=a+bx+cx2

你希望这个 ( P ( x ) (P(x) (P(x)) 在 ( x = 0 (x = 0 (x=0) 附近尽量像 ( e x (e^x (ex)。

那怎么才算"像"?

最自然的想法是:

  1. 在 ( x = 0 (x = 0 (x=0) 处,函数值要一样: ( P ( 0 ) = f ( 0 ) (P(0) = f(0) (P(0)=f(0))
  2. 在 ( x = 0 (x = 0 (x=0) 处,斜率要一样: ( P ′ ( 0 ) = f ′ ( 0 ) (P'(0) = f'(0) (P′(0)=f′(0))
  3. 在 ( x = 0 (x = 0 (x=0) 处,弯曲程度要一样: ( P ′ ′ ( 0 ) = f ′ ′ ( 0 ) (P''(0) = f''(0) (P′′(0)=f′′(0))

这三条就是"匹配"的含义。

二、先看第一条:函数值一样

P ( x ) = a + b x + c x 2 P(x) = a + bx + cx^2 P(x)=a+bx+cx2

代入 (x = 0):

P ( 0 ) = a P(0) = a P(0)=a

而:

f ( 0 ) = e 0 = 1 f(0) = e^0 = 1 f(0)=e0=1

所以:

a = 1 a = 1 a=1

现在:

P ( x ) = 1 + b x + c x 2 P(x) = 1 + bx + cx^2 P(x)=1+bx+cx2

三、第二条:一阶导数一样

先求 (P'(x)):

P ′ ( x ) = b + 2 c x P'(x) = b + 2cx P′(x)=b+2cx

代入 (x = 0):

P ′ ( 0 ) = b P'(0) = b P′(0)=b

而:

f ′ ( x ) = e x ⇒ f ′ ( 0 ) = 1 f'(x) = e^x \Rightarrow f'(0) = 1 f′(x)=ex⇒f′(0)=1

所以:

b = 1 b = 1 b=1

现在:

P ( x ) = 1 + x + c x 2 P(x) = 1 + x + cx^2 P(x)=1+x+cx2

四、第三条:二阶导数一样

先求 (P''(x)):

P ′ ( x ) = 1 + 2 c x P'(x) = 1 + 2cx P′(x)=1+2cx

P ′ ′ ( x ) = 2 c P''(x) = 2c P′′(x)=2c

注意:(P''(x) = 2c) 是一个常数,代入 (x = 0) 还是:

P ′ ′ ( 0 ) = 2 c P''(0) = 2c P′′(0)=2c

而:

f ′ ′ ( x ) = e x ⇒ f ′ ′ ( 0 ) = 1 f''(x) = e^x \Rightarrow f''(0) = 1 f′′(x)=ex⇒f′′(0)=1

所以要求:

2 c = 1 2c = 1 2c=1

c = 1 2 c = \frac{1}{2} c=21

于是:

P ( x ) = 1 + x + 1 2 x 2 P(x) = 1 + x + \frac{1}{2}x^2 P(x)=1+x+21x2

这就是 (e^x) 在 (x = 0) 处的二阶泰勒展开。

五、现在回答你的核心疑问

你说:

因为泰勒公式要保证近似多项式在 ( x 0 (x_0 (x0) 处的二阶导数等于原函数的二阶导数。不懂。

现在我们也它拆开:

1. 什么是"近似多项式"?

就是我们构造的:

P ( x ) = a + b x + c x 2 P(x) = a + bx + cx^2 P(x)=a+bx+cx2

2. 什么是"在 ( x 0 (x_0 (x0) 处的二阶导数"?

就是 ( P ′ ′ ( 0 ) (P''(0) (P′′(0))。

对 ( P ( x ) = a + b x + c x 2 (P(x) = a + bx + cx^2 (P(x)=a+bx+cx2) 求两次导:

P ′ ( x ) = b + 2 c x P'(x) = b + 2cx P′(x)=b+2cx

P ′ ′ ( x ) = 2 c P''(x) = 2c P′′(x)=2c

所以:

P ′ ′ ( 0 ) = 2 c P''(0) = 2c P′′(0)=2c

3. 什么是"原函数的二阶导数"?

就是 ( f ′ ′ ( 0 ) (f''(0) (f′′(0))。

对 ( f ( x ) = e x (f(x) = e^x (f(x)=ex) 求两次导:

f ′ ′ ( x ) = e x f''(x) = e^x f′′(x)=ex

f ′ ′ ( 0 ) = 1 f''(0) = 1 f′′(0)=1

4. "保证相等"是什么意思?

就是让:

P ′ ′ ( 0 ) = f ′ ′ ( 0 ) P''(0) = f''(0) P′′(0)=f′′(0)

也就是:

2 c = 1 2c = 1 2c=1

所以:

c = 1 2 c = \frac{1}{2} c=21

这就是为什么二次项系数是 ( 1 2 (\frac{1}{2} (21),而不是随便一个数。

六、为什么非让二阶导数也相等?

因为如果只匹配函数值和一阶导数,你得到的是:

P ( x ) = 1 + x P(x) = 1 + x P(x)=1+x

这是一条直线,它和 ( e x (e^x (ex) 在 ( x = 0 (x = 0 (x=0) 处有相同的值和斜率,但弯曲方向不对。

比如 ( x = 0.5 (x = 0.5 (x=0.5):

  • 直线近似: ( 1 + 0.5 = 1.5 (1 + 0.5 = 1.5 (1+0.5=1.5)
  • 真实值: ( e 0.5 ≈ 1.6487 (e^{0.5} \approx 1.6487 (e0.5≈1.6487)
  • 误差:约 ( 0.1487 (0.1487 (0.1487)

而加上二阶项:

1 + 0.5 + 0.25 2 = 1.625 1 + 0.5 + \frac{0.25}{2} = 1.625 1+0.5+20.25=1.625

  • 误差:约 ( 0.0237 (0.0237 (0.0237)

明显更准。

所以让二阶导数也相等,就是为了让抛物线弯曲得和原函数一样,从而更贴近。

相关推荐
西部驯兽师1 小时前
制造企业的信息化选型课题(二)
大数据·人工智能·制造
怪奇云呼军1 小时前
从 ElevenLabs 看工具调用:闪电智能 Voice Agent 的企业集成验收设计
android·大数据·运维·服务器·网络·人工智能·kotlin
云杂项1 小时前
A Survey of Privacy Attacks in Machine Learning(个人笔记)
人工智能·安全·机器学习
Runwise创新社区1 小时前
开源大模型从本地跑通到生产上线:以千问为例的五级部署阶梯与六项选型检查
人工智能·系统架构·开源
云上先途1 小时前
对话智能体和普通聊天机器人有什么区别?能不能对接企业自有知识库?
大数据·人工智能·机器人
我是小白呀1 小时前
17-企业Workflow引擎怎么选:定时、队列、n8n、Temporal与Camunda
java·开发语言·人工智能·dubbo·workflow
IanSkunk1 小时前
长葛视光服务流程拆解:儿童视力建档与随访体系的数据模型设计
人工智能
海宇AI1 小时前
零信任架构实战:基于海宇车型识别精准构建自动化车队评估微服务
java·人工智能·架构·自动化
LabVIEW开发1 小时前
LabVIEW + FlexRIO:3 个月搭出质谱分析系统
人工智能·labview·labview知识·labview功能·labview程序