梯度降低算法

 1、基本概念函數

梯度降低法,就是利用負梯度方向來決定每次迭代的新的搜索方向,使得每次迭代能使待優化的目標函數逐步減少。梯度降低法是2範數下的最速降低法。 最速降低法的一種簡單形式是:x(k+1)=x(k)-a*g(k),其中a稱爲學習速率,能夠是較小的常數。g(k)是x(k)的梯度。學習

2、導數優化

(1)定義.net

 

 

設有定義域和取值都在實數域中的函數 y=f(x)\;。若 f(x)\; 在點 \;x_0\; 的某個鄰域內有定義,則當自變量 \;x\; 在 \;x_0\; 處取得增量 \Delta x\;(點 \;x_0+\Delta x\; 仍在該鄰域內)時,相應地函數 \;y\; 取得增量 \Delta y=f(x_0+\Delta x)-f(x_0)\,\!;若是 \Delta \;y\; 與 \Delta \;x\; 之比當 \Delta x\to 0 時的極限存在,則稱函數 y=f(x)\,\! 在點 \;x_0\; 處可導,並稱這個極限爲函數 y=f(x)\,\! 在點 \;x_0\; 處的導數,記爲 f'(x_0)\;,即:3d

 

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

也可記做 y^\prime (x_0)\left.\frac{\mathrm{d}y}{\mathrm{d}x}\right|_{x=x_0}\frac{\mathrm{d}f}{\mathrm{d}x}(x_0)或 \left.\frac{\mathrm{d}f}{\mathrm{d}x}\right|_{x=x_0}table

對於通常的函數,若是不使用增量的概念,函數 f(x)\; 在點 x_0\; 處的導數也能夠定義爲:當定義域內的變量 x\; 趨近於 x_0\; 時,class

\frac{f(x)-f(x_0)}{x - x_0}

的極限。也就是說,變量

f'(x_0)=\lim_{x \to x_0}\frac{f(x)-f(x_0)}{x - x_0}

 

 

 

 

導數反應的變化率擴展

一個函數在某一點的導數描述了這個函數在這一點附近的變化率。導數的本質是經過極限的概念對函數進行局部的線性逼近。當函數f的自變量在一點x_0上產生一個增量h時,函數輸出值的增量與自變量增量h的比值在h趨於0時的極限若是存在,即爲fx_0處的導數,記做f'(x_0)\frac{\mathrm{d}f}{\mathrm{d}x}(x_0)\left.\frac{\mathrm{d}f}{\mathrm{d}x}\right|_{x=x_0}搜索

 

(2)幾何意義:

 

 

 

一個實值函數的圖像曲線。函數在一點的導數等於它的圖像上這一點處之切線的斜率,導數是函數的局部性質。不是全部的函數都有導數,一個函數也不必定在全部的點上都有導數。若某函數在某一點導數存在,則稱其在這一點可導,不然稱爲不可導。若是函數的自變量和取值都是實數的話,那麼函數在某一點的導數就是該函數所表明的曲線在這一點上的切線斜率。

具體來講:

當函數定義域和取值都在實數域中的時候,導數能夠表示函數的曲線上的切線斜率。以下圖所示,設P_0爲曲線上的一個定點,P爲曲線上的一個動點。當P沿曲線逐漸趨向於點P_0時,而且割線P P_0的極限位置P_0 T存在,則稱P_0 T爲曲線在P_0處的切線。

若曲線爲一函數y=f(x)的圖像,那麼割線P P_0(藍色)的斜率爲:

\tan \varphi=\frac{\Delta y}{\Delta x}=\frac{f(x_0 + \Delta x)-f(x_0)}{\Delta x}

P_0處的切線P_0 T(紅色),即P P_0的極限位置存在時,此時\Delta x \to 0\varphi \to \alpha,則P_0 T的斜率\tan \alpha爲:

\tan \alpha=\lim_{\Delta x \to 0} \tan \varphi=\lim_{\Delta x \to 0} \frac{f(x_0 + \Delta x)-f(x_0)}{\Delta x}

上式與通常定義中的導數定義徹底相同,也就是說f'(x_0)=\tan \alpha,所以,導數的幾何意義即曲線y=f(x)在點P_0 (x_0,f(x_0))處切線的斜率 

 

(3)導函數

 

 導數是一個數,是指函數 f(x)\; 在點 x_0\; 處導函數的函數值,若函數 \;f(x)\; 在其定義域包含的某區間 \;I\; 內每個點均可導,那麼也能夠說函數\;f(x)\; 在區間 \;I\; 內可導,這時對於 \;I\; 內每個肯定的\;x\; 值,都對應着 \;f\; 的一個肯定的導數值,如此一來就構成了一個新的函數x \mapsto f'(x),這個函數稱做原來函數 \;f(x)\; 的導函數,記做:\;y'\;f'(x)\; 或者 \frac{\mathrm{d}f}{\mathrm{d}x}(x),一般也能夠說導函數爲導數

 

梯度

一、相關概念

假如一個空間中的每一點的屬性均可以以一個標量來表明的話,那麼這個場就是一個標量場。

假如一個空間中的每一點的屬性均可以以一個向量來表明的話,那麼這個場就是一個向量場

標量場中某一點上的梯度指向標量場增加最快的方向,梯度的長度是這個最大的變化率。

梯度一詞有時用於斜度,也就是一個曲面沿着給定方向的傾斜程度。

二、計算

一個標量函數\varphi的梯度記爲:

\nabla \varphi 或 \rm grad \varphi

其中\nabla(nabla)表示矢量微分算子。

在三維狀況,該表達式在直角座標中擴展爲

\nabla \phi =\begin{pmatrix}{\frac{\partial \phi}{\partial x}},  {\frac{\partial \phi}{\partial y}}, {\frac{\partial \phi}{\partial z}}\end{pmatrix}

 

 

6、梯度降低法

梯度降低法,基於這樣的觀察:若是實值函數 F(\mathbf{x}) 在點 \mathbf{a} 處可微且有定義,那麼函數 F(\mathbf{x})在 \mathbf{a} 點沿着梯度相反的方向

 -\nabla F(\mathbf{a}) 降低最快。

於是,若是

\mathbf{b}=\mathbf{a}-\gamma\nabla F(\mathbf{a})

對於 \gamma>0 爲一個夠小數值時成立,那麼 F(\mathbf{a})\geq F(\mathbf{b})

考慮到這一點,咱們能夠從函數 F 的局部極小值的初始估計 \mathbf{x}_0 出發,並考慮以下序列 \mathbf{x}_0, \mathbf{x}_1, \mathbf{x}_2, \dots 使得

\mathbf{x}_{n+1}=\mathbf{x}_n-\gamma_n \nabla F(\mathbf{x}_n),\ n \ge 0.

所以可獲得

F(\mathbf{x}_0)\ge F(\mathbf{x}_1)\ge F(\mathbf{x}_2)\ge \cdots,

若是順利的話序列 (\mathbf{x}_n) 收斂到指望的極值。注意每次迭代步長 \gamma 能夠改變。

相關文章
相關標籤/搜索