用泰勒公式推导梯度下降原理

什么是泰勒公式

百度百科中的解释

泰勒公式,应用于数学、物理领域,是一个用函数在某点的信息描述其附近取值的公式。如果函数足够平滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值。

说白了,泰勒公式就是:可以使用函数在某点的各阶导数组成高次多项式去逼近一个函数。
泰勒公式表示为:
h ( x ) = ∑ k = 0 ∞ h ( k ) ( x 0 ) k ! ( x − x 0 ) k \mathrm{h}(\mathrm{x})=\sum_{k=0}^{\infty} \frac{\mathrm{h}^{(k)}\left(x_{0}\right)}{k !}\left(x-x_{0}\right)^{k} h(x)=k=0k!h(k)(x0)(xx0)k将泰勒公式展开:
h ( x ) = ∑ k = 0 ∞ h ( k ) ( x 0 ) k ! ( x − x 0 ) k = h ( x 0 ) + h ′ ( x 0 ) ( x − x 0 ) + h ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + … \begin{aligned} \mathrm{h}(\mathrm{x}) &=\sum_{k=0}^{\infty} \frac{\mathrm{h}^{(k)}\left(x_{0}\right)}{k !}\left(x-x_{0}\right)^{k} \\ &=h\left(x_{0}\right)+h^{\prime}\left(x_{0}\right)\left(x-x_{0}\right)+\frac{h^{\prime \prime}\left(x_{0}\right)}{2 !}\left(x-x_{0}\right)^{2}+\ldots \end{aligned} h(x)=k=0k!h(k)(x0)(xx0)k=h(x0)+h(x0)(xx0)+2!h(x0)(xx0)2+同时,如果 x x x 很接近 x 0 x_0 x0,也就是逼近的范围足够小的话,上面的公式可以只取前两项:
h ( x ) ≈ h ( x 0 ) + h ′ ( x 0 ) ( x − x 0 ) h(x) \approx h\left(x_{0}\right)+h^{\prime}\left(x_{0}\right)\left(x-x_{0}\right) h(x)h(x0)+h(x0)(xx0)上面的公式是变量为一维的时候得出的,对于多维变量,只不过将求导改为分别求偏导即可。


泰勒公式和梯度下降的关系

想象一下在多维空间中有下面的图像(它的函数 L ( θ ) L(\boldsymbol \theta) L(θ)自变量为 θ 1 \theta_1 θ1 θ 2 \theta_2 θ2),从红色到紫色表示海拔越来越低,那么任取空间中一个点 θ 0 \theta_0 θ0 后,每次移动一步,如何才能更快的到达谷底。
在这里插入图片描述
为了方便用公式推导出最速下降的关系,可以设定每次在极小的范围内移动一步,因此就可以将 L ( θ ) L(\boldsymbol \theta) L(θ) 用泰勒展开来逼近。将走这一小步到达的点记为 ( a , b ) \left(a,b\right) (a,b),则有泰勒展开如下:
在这里插入图片描述
上面的式子即被简化成了:
L ( θ ) ≈ s + u ( θ 1 − a ) + v ( θ 2 − b ) \begin{array}{l}{\mathrm{L}(\theta)}{\approx s+u\left(\theta_{1}-a\right)+v\left(\theta_{2}-b\right)}\end{array} L(θ)s+u(θ1a)+v(θ2b)因为 s s s 是一个定值,只与输入有关,因此不去看它,只考虑 u ( θ 1 − a ) + v ( θ 2 − b ) u\left(\theta_{1}-a\right)+v\left(\theta_{2}-b\right) u(θ1a)+v(θ2b).

u u u v v v 合在一起作为一个向量 ∇ w f ( x ) \nabla_{w}f(x) wf(x)(这其实就是对所有变量分别求偏导的集合),将 ( θ 1 − a ) \left(\theta_{1}-a\right) (θ1a) ( θ 2 − b ) \left(\theta_{2}-b\right) (θ2b)作为另外一个向量 u \boldsymbol u u(距离尽可能小,可以视为单位向量),想让 L ( θ ) L(\boldsymbol \theta) L(θ)最小,也即让两个向量的点积最小,也就是:
min ⁡ u ⊤ ∇ x f ( x ) = min ⁡ ∥ u ∥ 2 ∥ ∇ x f ( x ) ∥ 2 cos ⁡ θ \min\boldsymbol{u}^{\top} \nabla_{\boldsymbol{x}} f(\boldsymbol{x}) \\ = \min \|\boldsymbol{u}\|_{2}\left\|\nabla_{\boldsymbol{x}} f(\boldsymbol{x})\right\|_{2} \cos \theta minuxf(x)=minu2xf(x)2cosθ想让上面的式子取最小值,很显然要令两个向量方向相反,也就是:下降的方向与梯度方向相反。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值