深度学习/机器学习入门基础数学知识整理(二):梯度与导数,矩阵求导,泰勒展开等

导数与梯度

导数:一个一元函数函数在某一点的导数描述了这个函数在这一点附近的变化率。

f(a)=limh0f(a+h)f(a)h

梯度:多元函数的导数就是梯度。

  • 一阶导数,即梯度(gradient):

f(X)=f(X)X=f(X)x1f(X)x2f(X)xn

  • 二阶导数,Hessian矩阵:
    H(x)=2f(X)=2f(X)x122f(X)x2x12f(X)xnx12f(X)x1x22f(X)x222f(X)xnx22f(X)x1xn2f(X)x2xn2f(X)xn2

一阶导数和二阶导数经常记为 f(x)f′′(x)

泰勒展开:一元函数的泰勒展开:

f(xk+δ)f(xk)+f(xk)δ+12f′′(xk)δ2++1n!f(n)(xk)δn

多元函数的泰勒展开(仅前三项):
f(xk+δ)f(xk)+Tf(xk)δ+12δTf′′(xk)δ

如果 Tf(xk)=0 ,则 xk 称为“平稳点”,如果是一元函数,那么这个点肯定是一个局部极值点,最大或者最小局部极值点,如果f是凸函数则是全局最小值,凸函数是在下一节会简单介绍一下。

如果是多元函数, 2f(xk)0 正定,即所有特征值都是正的,那么上式的第三项是正的,则 xk 为一严格局部极小值点(反之, 2f(xk)0 负定严格局部极小值点)。更复杂的,如果二阶导数特征值有正有负,那么就是不定的,这个时候 xk 为一个鞍点,即有些维度是局部极小值,有些是局部极大值,鞍点是当前神经网络训练面临的核心难点之一,后面在其他博文中有时间我会写到,这里还是回到基础先。

泰勒展开确实是很多数学问题的基础核心,这里再展开一点:
问题:为什么优化时选择梯度方向,梯度方向为什么是变化最快的方向?

扫描二维码关注公众号,回复: 2066429 查看本文章

由泰勒级数展开式的前两项 f(xk+δ)f(xk)+Tf(xk)δ 可知,当 δ 是一个模为定值但方向不确定的矢量时, f(xk+δ)f(xk)Tf(xk)δ ,此时 Tf(xk)δ=||Tf(xk)||||δ||cos(θ) ,最大在 cos(θ)=1 取到,即 δ 取梯度方向或者负梯度方向。如果是求极小值,那么就是梯度下降法, δ 取负梯度方向,使得 f(x) 下降最快。

矩阵求导总结

(1)对标量求导

  • 标量关于标量x的求导:
    yx
  • 向量关于标量x的求导:
    向量 y=y1y2yn 关于标量x 的求导就是 y 的每一个元素分别对x求导,可以表示为
    yx=y1xy2xynx
  • 矩阵·关于标量x的求导:
    矩阵对标量的求导类似于向量关于标量的求导,也就是矩阵的每个元素分别对标量x求导
    Yx=y11xy21xyn1xy12xy22xyn2xy1nxy2nxynnx

(2)对向量求导

  • 标量关于向量x的导数
    标量y 关于向量 x=x1x2xn 的求导可以表示为
    =[yx1 yx2  yxn]
  • 向量关于向量 x 的导数
    向量函数(即函数组成的向量) y=y1y2yn 关于 x=x1x2xn 的导数
    yx=y1x1y2x1ynx1y1x2y2x2ynx2y1xny2xnynxn

此时获得的矩阵 yx 叫做Jacobian 矩阵。

  • 矩阵关于向量的导数
    矩阵 Y=y11y21yn1y12y22yn2y1ny2nynn 关于 x=x1x2xn 的导数是推导中最复杂的一种,表示为

    Yx=y11x1y21x1yn1x1y1nx2y22x2yn2x2y1nxny2nxnynnxn

    (3)对矩阵求导

    一般只考虑标量关于矩阵的导数,即标量y 对矩阵 X 的导数,此时的导数是梯度矩阵,可以表示为下式:

    yX=yx11yx12yx1nyx21yx22yx2nyxn1yxn2yxnn

下图是机器学习中常见的矩阵求导形式,可供参考

这里写图片描述

下一篇是关于Hessian矩阵和凸函数的基本概念,待续。

[1] http://blog.csdn.net/u010976453/article/details/54342895
[2] http://blog.csdn.net/u010976453/article/details/78482502
[3] http://blog.csdn.net/u010976453/article/details/54381248
[4] Jacobian矩阵和Hessian矩阵 http://jacoxu.com/jacobian%e7%9f%a9%e9%98%b5%e5%92%8chessian%e7%9f%a9%e9%98%b5/
[5] https://en.wikipedia.org/wiki/Norm_(mathematics)
[6] https://en.wikipedia.org/wiki/Matrix_norm
[7] 机器学习中的线性代数之矩阵求导 http://blog.csdn.net/u010976453/article/details/54381248
[8] 牛顿法与Hessian矩阵http://blog.csdn.net/linolzhang/article/details/60151623

猜你喜欢

转载自blog.csdn.net/xbinworld/article/details/79110623