天天看點

【機器學習之數學】01 導數、偏導數、方向導數、梯度

本文從方向導數的角度了解偏導數和梯度,厘清這幾者之間的關系,即“導數是一個值,代表切線的斜率,而梯度是一個向量。最大方向導數的方向就是梯度代表的方向,最大的方向導數就是梯度的歐幾裡德範數”。

最近學習《最優化導論》,遇到了“方向導數”這一概念,故對其及相關概念進行一遍梳理。并給出方向導數的推導過程。

目錄

  • 導數、偏導數和方向導數
  • 方向導數的推導過程
  • 方向導數和梯度
  • References
  • 相關部落格

  在一進制可導函數 \(y = f(x)\) 中,導數 \(f'(x_0)\) 即是曲線上 \(x = x_0\) 處的斜率。按照定義求導數:

\[f'(x) = \lim_{\Delta x \to 0}\frac{f(x+ \Delta x) - f(x)}{\Delta x}

\tag{1}

\]

當然,我們也可以通過各種求導法則來計算導數。

  對一個 \(R^m \to R\) 的多元可導函數,\(y=f(\bm x),\bm x = [x_1, x_2, ..., x_m]^\top\),我們能夠求的導數就多,如偏導數、方向導數,但歸根到底,這些導數都可以認為是曲面上一點在某個方向的斜率。對于 \(m\le 2\) 的情況,我們還能夠通過坐标系很直覺地了解;當 \(m > 2\) 時,我們可以從向量空間的角度了解。

  偏導數是指 \(y=f(\bm x)\) 對 \(\bm x = [x_1, x_2, ..., x_m]^\top\) 中的某一維進行求導,如下式(2)所示,對第 \(i\) 維求偏導數:

\[\begin{split}

\frac{\partial f(\bm x)}{\partial x_i} &= \frac{\partial f(x_1, x_2, ...,x_i,..., x_m)}{\partial x_i}

\\ &= \lim_{\Delta x_i \to 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}

\tag{2}

  方向導數就更好了解了,\(y=f(\bm x)\) 對 \(\bm x = [x_1, x_2, ..., x_m]^\top\) 構成的向量空間 \(R^m\) 中某一方向 \(\bm d' = [\Delta x_1, \Delta x_2, ..., \Delta x_m]^\top\) 求導數,即得到該方向上的方向導數 \(\frac{\partial f(\bm x)}{\partial \bm d'}\),如式(3)所示:

\frac{\partial f(\bm x)}{\partial \bm d'} &= \frac{\partial f(x_1, x_2,..., x_m)}{\partial x_i}

\\ &= \lim_{\rho \to 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)}{\rho}

\\ &\rho = \sqrt{\Delta x_1^2 + \Delta x_2^2 + \cdots +\Delta x_m^2}

\tag{3}

  方向導數和偏導數是什麼關系?對于多元可導函數 \(y=f(\bm x),\bm x = [x_1, x_2, ..., x_m]^\top\),在其上任一點 \(\bm x_i\),我們都可以在向量空間 \(R^m\) 中的每一個方向都可以計算一個方向導數,也就是超平面上點 \(\bm x_i\) 在每一個方向切線的“斜率”。這裡“每一個方向”自然包括各個偏導數的方向。即偏導數構成的集合 A 是方向導數構成集合 B 的子集。

  \(f(\boldsymbol x)\) 是一個 \(R^m \to R\) 的函數,如果我們要求 \(f(\boldsymbol x)\) 在任一點 \(\boldsymbol x_0 = [x_1^{0}, x_2^{0}, ..., x_m^{0}]^\top\) 點方向為 \(\boldsymbol d\) 的方向導數,那麼按照定義,我們得到如下公式:

\[\frac{\partial f(\boldsymbol x)}{\partial \boldsymbol d}\mid_{\boldsymbol x = \boldsymbol x_0} = \lim_{\alpha \to 0}\frac{f(\boldsymbol x_0 + \alpha \boldsymbol d) - f(\boldsymbol x_0)}{\alpha}

\tag{4}

式(4)中,\(\boldsymbol d\) 為機關向量。公式(4)其實是公式(3)的向量形式。(plus:公式(3)中 \(d'\) 不是機關向量,故加上 \('\) 來區分)

  設 \(g(\alpha) = f(x_0+\alpha \boldsymbol d)\),我們注意到,\(g(0) = f(x_0)\),是以,式(4)又可以寫為:

\frac{\partial f(\boldsymbol x)}{\partial \boldsymbol d}\mid_{\boldsymbol x = \boldsymbol x_0}

& = \lim_{\alpha \to 0}\frac{g(\alpha) - g(0)}{\alpha}

\\ &= \frac{d g(\alpha)}{d \alpha}\mid_{\alpha = 0}

\\ &= \frac{d f(\boldsymbol x_0+\alpha \boldsymbol d)}{d \alpha}|_{\alpha = 0}

\\ &= \nabla f(\boldsymbol x_0)^\top\boldsymbol d

\\ &= <\nabla f(\boldsymbol x_0), \boldsymbol d>

\\ &= \boldsymbol d^\top\nabla f(\boldsymbol x_0)

\tag{5}

是以,

\[\frac{\partial f(\boldsymbol x)}{\partial \boldsymbol d}= \boldsymbol d^\top\nabla f(\boldsymbol x)

\tag{6}

  首先明确,導數是一個值,代表切線的斜率,而梯度是一個向量。最大方向導數的方向就是梯度代表的方向。

  梯度是 \(f(\bm x)\) 對各個自變量\(\bm x = [x_1, x_2, ..., x_m]^\top\) 每一維分别求偏導數得到的向量。

  從式(5)和(6)中我們也可以知道,當 \(\bm d = \frac{\nabla f(\bm x)}{\|\nabla f(\bm x)\|}\),方向導數最大。 最大方向導數的方向就是梯度,最大的方向導數就是梯度的歐幾裡德範數。

如何直覺形象的了解方向導數與梯度以及它們之間的關系?-- 馬同學

方向導數與梯度——學習筆記 -- Reclusiveman

[機器學習] ML重要概念:梯度(Gradient)與梯度下降法(Gradient Descent)-- WangBo_NLPR

Edwin K. P. Chong, Stanislaw H. Zak-An Introduction to Optimization, 4th Edition

【機器學習之數學】01 導數、偏導數、方向導數、梯度

【機器學習之數學】02 梯度下降法、最速下降法、牛頓法、共轭方向法、拟牛頓法

【機器學習之數學】03 有限制的非線性優化問題——拉格朗日乘子法、KKT條件、投影法

作者:wuliytTaotao

出處:https://www.cnblogs.com/wuliytTaotao/

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協定進行許可,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接。

繼續閱讀