从XGBoost想开去:泰勒公式、梯度下降法、牛顿法、海森矩阵

写在前面:重温XGBoost的时候,发现很多基本的数学知识已经忘得差不多了。借温习XGBoost的机会,就重新走一遍与XGBoost沾边的那些年的高等数学与线性代数吧!

泰勒公式

  • 定义:泰勒公式是一个用函数在某点的信息描述其附近取值的公式。
  • 基本形式:f(x)=\sum_{n=0}^{\infty }\frac{f^{(n)}(x_{0})}{n!}(x-x_{0})^{n}
    • 一阶泰勒展开:f(x)\approx f(x_{0}) + f^{'}(x_{0})(x-x_{0})
    • 二阶泰勒展开:f(x)\approx f(x_{0}) + f^{'}(x_{0})(x-x_{0})+ f^{''}(x_{0})\frac{(x-x_{0})^2}{2}
  • 迭代形式:假设x^t=x^{t-1}+\Delta x,将f(x^t)x^{t-1}处进行泰勒展开:
    • f(x^t)=f(x^{t-1}+\Delta x) \approx f(x^{t-1}) + f^{'}(x^{t-1})\Delta x + f^{''}(x^{t-1})\frac{\Delta x^2}{2}

 

梯度下降法(Gradient Descend Method)

在机器学习任务中,需要最小化损失函数L(\theta ),其中\theta是要求解的模型参数。梯度下降法常用来求解这种无约束最优化问题,它是一直迭代方法:选取初值\theta ^{0},不断迭代,更新 \theta的值,进行损失函数的最小化。

  • 迭代公式:\theta ^{t} = \theta ^{t-1} + \delta\theta迭代公式:\theta^{t}=\theta^{t-1}+\Delta\theta
  • 将 L(\theta^{t})\theta^{t-1}处进行一阶泰勒展开:
    • L(\theta^{t})=L(\theta^{t}+\Delta\theta)\approx L(\theta^{t-1})+L^{'}}(\theta^{t-1})\Delta\theta
  • 要使得L(\theta^{t})<L(\theta^{t-1}),可取\Delta\theta=-\alpha L^{'}(\theta^{t-1}),则:\theta^{t}=\theta^{t-1}-\alpha L^{'}(\theta^{t-1})
  • 这里的\alpha是步长,可通过line search确定,但一般直接赋一个小的数。

 

牛顿法(Newton's Method)

  • L(\theta^{t})\theta^{t-1}处进行二阶泰勒展开:
    • L(\theta^{t})\approx L(\theta^{t-1})+L^{'}(\theta^{t-1})\Delta \theta + L^{''}(\theta^{t-1})\frac{\Delta \theta^{2}}{2}
  • 为了简化分析过程,假设参数是标量(即\theta只有一维),则可将一阶和二阶导数分布记为g和h:
    • L(\theta^{t})\approx L(\theta^{t-1})+g\Delta \theta + h\frac{\Delta \theta^{2}}{2}
  • 要使得L(\theta^t)极小,即让g\Delta \theta + h\frac{\Delta \theta^{2}}{2}极小,可令:\frac{\partial (g\Delta\theta + h\Delta \frac{\theta^2}{2})}{\partial \Delta \theta} = 0,求得\Delta \theta = -\frac{g}{h},故 \theta^{t}=\theta^{t-1}+\Delta\theta=\theta^{t-1}-\frac{g}{h}
  • 参数\theta推广到向量形式,则有:\theta^{t}=\theta^{t-1}-H^{-1}g,这里H是海森矩阵

 

海森矩阵

海森矩阵(hessian matrix)。是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。海森矩阵常用于牛顿法解决优化问题。在工程实际问题的优化设计中,所列的目标函数往往很复杂,为了使问题简化,常常将目标函数在某点邻域展开泰勒多项式来逼近原函数,此时函数在某点泰勒展开式的矩阵形式中会涉及到海森矩阵。

  • 一元函数
    • f(x)=f(x^{(0)})+f^{'}(x^{(0)})\Delta x + \frac{1}{2}f^{''}(x^{(0)})(\Delta x)^{2},其中\Delta x = x-x^{(0)},\Delta x^2 = (x-x^{(0)})^2
  • 二元函数
    • f(x_1,x_2)=f(x_1^{(0)},x_2^{(0)})+\frac{\partial f}{\partial x_1}|_{x^{(0)}}\Delta x_1 + \frac{\partial f}{\partial x_2}|_{x^{(0)}}\Delta x_2 +\frac{1}{2}\left [ \frac{\partial^2 f}{\partial x_1^2} |_{x^{(0)}} \Delta x_1^2 +2\frac{\partial^2 f}{\partial x_1 \partial x_2} |_{x^{(0)}} \Delta x_1x_2 +\frac{\partial^2 f}{\partial x_2^2} |_{x^{(0)}} \Delta x_2^2 \right ]
    • 其中\Delta x_1 = x_1 - x_1^{(0)},\Delta x_2 = x_2 - x_2^{(0)}
    • 将上式写成矩阵形式,则有:f(X)=f(X^{(0)})+(\frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2}) _{X^{(0)}}\begin{bmatrix} \Delta x_1 \\ \Delta x_2 \end{bmatrix}+\frac{1}{2}(\Delta x_1, \Delta x_2) \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2 }& \frac{\partial^2 f}{\partial x_1 \partial x_2} \\ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x_2^2 }\end{bmatrix}_{X^{(0)}}\begin{bmatrix} \Delta x_1 \\ \Delta x_2 \end{bmatrix}
    • 即:f(X)=f(X^{(0)})+\triangledown f(X^{(0)})^T\Delta X + \frac{1}{2} \Delta X^T G(x^{(0)}) \Delta X,
    • 其中:G(x^{(0)})=\begin{bmatrix} \frac{\partial^2 f} {\partial x_1^2}& \frac{\partial^2 f} {\partial x_1 \partial x_2}\\ \frac{\partial^2 f} {\partial x_2 \partial x_1}& \frac{\partial^2 f} {\partial x_2^2} \end{bmatrix}|_{x^{(0)}}, \Delta x=\binom{\Delta x_1}{\Delta x_2}
    • G(x^{(0)})f(x_1,x_2)x^{(0)}点处的海森矩阵,它是由函数f(x_1,x_2)x^{(0)}点处的二阶偏导数所组成的方阵。

参考资料:

[1]GBDT-wepon.pdf

[2]黑塞矩阵_百度百科

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值