• 【机器学习之数学】01 导数、偏导数、方向导数、梯度


    最近学习《最优化导论》,遇到了“方向导数”这一概念,故对其及相关概念进行一遍梳理。并给出方向导数的推导过程。

    导数、偏导数和方向导数

      在一元可导函数 (y = f(x)) 中,导数 (f'(x_0)) 即是曲线上 (x = x_0) 处的斜率。按照定义求导数:

    [f'(x) = lim_{Delta x o 0}frac{f(x+ Delta x) - f(x)}{Delta x} ag{1} ]

    当然,我们也可以通过各种求导法则来计算导数。

      对一个 (R^m o R) 的多元可导函数,(y=f(m x),m x = [x_1, x_2, ..., x_m]^ op),我们能够求的导数就多,如偏导数、方向导数,但归根到底,这些导数都可以认为是曲面上一点在某个方向的斜率。对于 (mle 2) 的情况,我们还能够通过坐标系很直观地了解;当 (m > 2) 时,我们可以从向量空间的角度理解。

      偏导数是指 (y=f(m x))(m x = [x_1, x_2, ..., x_m]^ op) 中的某一维进行求导,如下式(2)所示,对第 (i) 维求偏导数:

    [egin{split} frac{partial f(m x)}{partial x_i} &= frac{partial f(x_1, x_2, ...,x_i,..., x_m)}{partial x_i} \ &= lim_{Delta x_i o 0}frac{f(x_1, x_2, ...,x_i + Delta x_i,..., x_m) - f(x_1, x_2, ...,x_i,..., x_m)}{Delta x_i} end{split} ag{2} ]

      方向导数就更好理解了,(y=f(m x))(m x = [x_1, x_2, ..., x_m]^ op) 构成的向量空间 (R^m) 中某一方向 (m d' = [Delta x_1, Delta x_2, ..., Delta x_m]^ op) 求导数,即得到该方向上的方向导数 (frac{partial f(m x)}{partial m d'}),如式(3)所示:

    [egin{split} frac{partial f(m x)}{partial m d'} &= frac{partial f(x_1, x_2,..., x_m)}{partial x_i} \ &= lim_{ ho o 0}frac{f(x_1 + Delta x_1, x_2 +Delta x_2, ..., x_m +Delta x_m) - f(x_1, x_2, ..., x_m)}{ ho} \ & ho = sqrt{Delta x_1^2 + Delta x_2^2 + cdots +Delta x_m^2} end{split} ag{3} ]

      方向导数和偏导数是什么关系?对于多元可导函数 (y=f(m x),m x = [x_1, x_2, ..., x_m]^ op),在其上任一点 (m x_i),我们都可以在向量空间 (R^m) 中的每一个方向都可以计算一个方向导数,也就是超平面上点 (m x_i) 在每一个方向切线的“斜率”。这里“每一个方向”自然包括各个偏导数的方向。即偏导数构成的集合 A 是方向导数构成集合 B 的子集。

    方向导数的推导过程

      (f(oldsymbol x)) 是一个 (R^m o R) 的函数,如果我们要求 (f(oldsymbol x)) 在任一点 (oldsymbol x_0 = [x_1^{0}, x_2^{0}, ..., x_m^{0}]^ op) 点方向为 (oldsymbol d) 的方向导数,那么按照定义,我们得到如下公式:

    [frac{partial f(oldsymbol x)}{partial oldsymbol d}mid_{oldsymbol x = oldsymbol x_0} = lim_{alpha o 0}frac{f(oldsymbol x_0 + alpha oldsymbol d) - f(oldsymbol x_0)}{alpha} ag{4} ]

    式(4)中,(oldsymbol d) 为单位向量。公式(4)其实是公式(3)的向量形式。(plus:公式(3)中 (d') 不是单位向量,故加上 (') 来区分)

      设 (g(alpha) = f(x_0+alpha oldsymbol d)),我们注意到,(g(0) = f(x_0)),所以,式(4)又可以写为:

    [egin{split} frac{partial f(oldsymbol x)}{partial oldsymbol d}mid_{oldsymbol x = oldsymbol x_0} & = lim_{alpha o 0}frac{g(alpha) - g(0)}{alpha} \ &= frac{d g(alpha)}{d alpha}mid_{alpha = 0} \ &= frac{d f(oldsymbol x_0+alpha oldsymbol d)}{d alpha}|_{alpha = 0} \ &= abla f(oldsymbol x_0)^ opoldsymbol d \ &= < abla f(oldsymbol x_0), oldsymbol d> \ &= oldsymbol d^ op abla f(oldsymbol x_0) end{split} ag{5} ]

    所以,

    [frac{partial f(oldsymbol x)}{partial oldsymbol d}= oldsymbol d^ op abla f(oldsymbol x) ag{6} ]

    方向导数和梯度

      首先明确,导数是一个值,代表切线的斜率,而梯度是一个向量最大方向导数的方向就是梯度代表的方向

      梯度(f(m x)) 对各个自变量(m x = [x_1, x_2, ..., x_m]^ op) 每一维分别求偏导数得到的向量。

      从式(5)和(6)中我们也可以知道,当 (m d = frac{ abla f(m x)}{| abla f(m x)|}),方向导数最大。 最大方向导数的方向就是梯度,最大的方向导数就是梯度的欧几里德范数

    References

    如何直观形象的理解方向导数与梯度以及它们之间的关系?-- 马同学
    方向导数与梯度——学习笔记 -- Reclusiveman
    [机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)-- WangBo_NLPR
    Edwin K. P. Chong, Stanislaw H. Zak-An Introduction to Optimization, 4th Edition

    相关博客

    【机器学习之数学】01 导数、偏导数、方向导数、梯度
    【机器学习之数学】02 梯度下降法、最速下降法、牛顿法、共轭方向法、拟牛顿法
    【机器学习之数学】03 有约束的非线性优化问题——拉格朗日乘子法、KKT条件、投影法

  • 相关阅读:
    生物信息学常用的在线网站及数据库汇总
    Python入门--6--今天抄袭人家一篇日志--numpy这个
    Perl语言--一些关于赋值、引用的东西
    Python入门--5--列表
    Idea下 调试Spring源代码
    Java OOM出现场景
    分布式事务解决方案
    mybatis generator 根据表生成对应的mapper文件
    签名工具类
    BPMN2.0
  • 原文地址:https://www.cnblogs.com/wuliytTaotao/p/10513371.html
Copyright © 2020-2023  润新知