• 【Math for ML】向量微积分(Vector Calculus)


    I. 向量梯度

    假设有一个映射函数为(f:R^n→R^m)和一个向量(x=[x_1,...,x_n]^T∈R^n),那么对应的函数值的向量为(f(x)=[f_1(x),...,f_m(x)]^T∈R^m)

    现在考虑(f)(x_i)的梯度为:(frac{partial{f}}{partial{x_i}}=[frac{partial{f_1}}{partial{x_i}},...,frac{partial{f_m}}{partial{x_i}}]^T∈R^m)

    所以有

    [egin{align} frac{df(x)}{dx}&= left[ egin{matrix} frac{partial{f(x)}}{partial{x_1}} & cdots & frac{partial{f(x)}}{partial{x_n}} end{matrix} ight] \ &=left[ egin{matrix} frac{partial{f_1(x)}}{partial{x_1}} & cdots & frac{partial{f_1(x)}}{partial{x_n}} \ vdots & ddots & vdots \ frac{partial{f_m(x)}}{partial{x_1}} & cdots & frac{partial{f_m(x)}}{partial{x_n}} \ end{matrix} ight] ∈R^{m×n} \ end{align} ]

    接下来给出Jacobian定义:

    (f:R^n→R^m)的所有一阶偏导集合叫做Jacobian。Jacobian J 是一个(m×n)的矩阵,形式定义如下:

    [egin{align} J&= abla_xf=frac{df(x)}{dx} \ &=left[ egin{matrix} frac{partial{f(x)}}{partial{x_1}} & cdots & frac{partial{f(x)}}{partial{x_n}} end{matrix} ight] \ &=left[ egin{matrix} frac{partial{f_1(x)}}{partial{x_1}} & cdots & frac{partial{f_1(x)}}{partial{x_n}} \ vdots & ddots & vdots \ frac{partial{f_m(x)}}{partial{x_1}} & cdots & frac{partial{f_m(x)}}{partial{x_n}} \ end{matrix} ight] \ x &= left[ egin{matrix} x_1 \ vdots \ x_n end{matrix} ight],\,\,\, J(i,j)=frac{partial{f_i}}{partial{x_j}} end{align} ]

    II. 矩阵梯度

    其实和向量梯度类似,这里不再给出推导过程,直接给出一些重要的结果:

    • 如果(f(x)∈R^{m×n},x∈R^{p×q}),则(frac{partial{f(x)}}{partial{x}}∈R^{(m×n)×(p×q)})
    • 在机器学习中常用到的计算公式:

    III. 高阶梯度

    上面提到的都是一阶梯度,在实际应用中会涉及到高阶梯度。而常见的有二阶梯度

    海森矩阵(Hessian) 是一个多变量实值函数的二阶偏导数组成的方阵。其形式如下:

    以下内容参考海森矩阵

    1. 在映射 ({displaystyle f:mathbb {R} ^{2} o mathbb {R} }) 的应用

    给定二阶导数连续的映射 ({displaystyle f:mathbb {R} ^{2} o mathbb {R} }),海森矩阵的行列式,可用于分辨 ({displaystyle f})的临界点是属于鞍点还是极值点。

    对于 ({displaystyle f}) f的临界点 ({displaystyle (x_{0},y_{0})})一点,有 ({displaystyle {frac {partial f(x_{0},y_{0})}{partial x}}={frac {partial f(x_{0},y_{0})}{partial y}}=0}),然而凭一阶导数不能判断它是鞍点、局部极大点还是局部极小点。海森矩阵可能解答这个问题。

    [{displaystyle H={egin{vmatrix}{frac {partial ^{2}f}{partial x^{2}}}&{frac {partial ^{2}f}{partial x\,partial y}}\\{frac {partial ^{2}f}{partial y\,partial x}}&{frac {partial ^{2}f}{partial y^{2}}}end{vmatrix}}={frac {partial ^{2}f}{partial x^{2}}}{frac {partial ^{2}f}{partial y^{2}}}-({frac {partial ^{2}f}{partial y\,partial x}})^{2}} ]

    • H > 0:若 ({displaystyle {frac {partial ^{2}f}{partial x^{2}}}>0}),则 ({displaystyle (x_{0},y_{0})}))是局部极小点;若 ({displaystyle {frac {partial ^{2}f}{partial x^{2}}}<0}),则 ({displaystyle (x_{0},y_{0})})是局部极大点。
    • H < 0:({displaystyle (x_{0},y_{0})})是鞍点。
    • H = 0:二阶导数无法判断该临界点的性质,得从更高阶的导数以泰勒公式考虑。

    2. 在高维情况下的推广

    当函数 ({displaystyle f:mathbb {R} ^{n} o mathbb {R} }) 二阶连续可导时,Hessian矩阵H在临界点 ({displaystyle x_{0}}) 上是一个 ({displaystyle n imes n})阶的对称矩阵。

    • 当H是正定矩阵时,临界点 ({displaystyle x_{0}}) 是一个局部的极小值。
    • 当H是负定矩阵时,临界点 ({displaystyle x_{0}}) 是一个局部的极大值。
    • H=0,需要更高阶的导数来帮助判断。
    • 在其余情况下,临界点 ({displaystyle x_{0}}) 不是局部极值



    微信公众号:AutoML机器学习
    MARSGGBO原创
    如有意合作或学术讨论欢迎私戳联系~
    邮箱:marsggbo@foxmail.com

    2018-12-24



  • 相关阅读:
    Hive(二)CentOS7.5安装Hive2.3.3
    Hive(一)Hive初识
    CentOS7.5搭建ELK6.2.4集群及插件安装
    开发工具之Spark程序开发详解
    Java多线程编程
    数据迁移之Sqoop
    CentOS7.5之Sqoop1.4.7的安装使用
    Hadoop案例(十一)MapReduce的API使用
    Hadoop案例(十)WordCount
    BSScrollViewEdgePop
  • 原文地址:https://www.cnblogs.com/marsggbo/p/10168630.html
Copyright © 2020-2023  润新知