自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談梯度下降法/Gradient descent

開發(fā) 開發(fā)工具 前端
梯度下降法(Gradient descent,又稱最速下降法/Steepest descent),是無約束最優(yōu)化領域中歷史最悠久、最簡單的算法,今天我們就再來回顧一下梯度下降法的基礎知識。

當今世界,深度學習應用已經(jīng)滲透到了我們生活的方方面面,深度學習技術背后的核心問題是最優(yōu)化(Optimization)。最優(yōu)化是應用數(shù)學的一個分支,它是研究在給定約束之下如何尋求某些因素(的量),以使某一(或某些)指標達到最優(yōu)的一些學科的總稱。

[[260700]]

梯度下降法(Gradient descent,又稱最速下降法/Steepest descent),是無約束最優(yōu)化領域中歷史最悠久、最簡單的算法,單獨就這種算法來看,屬于早就“過時”了的一種算法。但是,它的理念是其他某些算法的組成部分,或者說在其他某些算法中,也有梯度下降法的“影子”。例如,各種深度學習庫都會使用SGD(Stochastic Gradient Descent,隨機梯度下降)或變種作為其優(yōu)化算法。

今天我們就再來回顧一下梯度下降法的基礎知識。

1. 名字釋義

在很多機器學習算法中,我們通常會通過多輪的迭代計算,最小化一個損失函數(shù)(loss function)的值,這個損失函數(shù),對應到最優(yōu)化里就是所謂的“目標函數(shù)”。

在尋找最優(yōu)解的過程中,梯度下降法只使用目標函數(shù)的一階導數(shù)信息——從“梯度”這個名字也可見一斑。并且它的本意是取目標函數(shù)值“最快下降”的方向作為搜索方向,這也是“最速下降”這個名字的來源。

于是自然而然地,我們就想知道一個問題的答案:沿什么方向,目標函數(shù) f(x) 的值下降最快呢?

2. 函數(shù)值下降最快的方向是什么

先說結(jié)論:沿負梯度方向

沿負梯度方向

函數(shù)值下降最快。此處,我們用 d 表示方向(direction),用 g 表示梯度(gradient)。

下面就來推導一下。

將目標函數(shù) f(x) 在點處泰勒展開(在最優(yōu)化領域,這是一個常用的手段):

高階無窮小 o(α)可忽略,由于我們定義了步長α>0(在ML領域,步長就是平常所說的learning rate),

因此,當即函數(shù)值是下降的。

此時就是一個下降方向。

但是具體等于什么的時候,可使目標函數(shù)值下降最快呢?

數(shù)學上,有一個非常著名的不等式:Cauchy-Schwartz不等式(柯西-許瓦茲不等式)①,它是一個在很多場合都用得上的不等式:

當且僅當:

時等號成立。

由Cauchy-Schwartz不等式可知:

當且僅當時,等號成立,最大(>0)。

所以,最小(<0),f(x) 下降量最大。

所以,是最快速下降方向。

3. 缺點

它真的如它的名字所描述的,是“最快速”的嗎?從很多經(jīng)典的最優(yōu)化書籍你會了解到:并不是。

事實上,它只在局部范圍內(nèi)具有“最速”性質(zhì);對整體求最優(yōu)解的過程而言,它讓目標函數(shù)值下降非常緩慢。

4. 感受一下它是如何“慢”的

先來看一幅圖②

這幅圖表示的是對一個目標函數(shù)尋找最優(yōu)解的過程,圖中鋸齒狀的路線就是尋優(yōu)路線在二維平面上的投影。從這幅圖我們可以看到,鋸齒一開始比較大(跨越的距離比較大),后來越來越??;這就像一個人走路邁的步子,一開始大,后來步子越邁越小。

這個函數(shù)的表達式是這樣的:

它叫做Rosenbrock function(羅森布羅克函數(shù))③,是個非凸函數(shù),在最優(yōu)化領域,它可以用作一個最優(yōu)化算法的performance test函數(shù)。這個函數(shù)還有一個更好記也更滑稽的名字:banana function(香蕉函數(shù))。

我們來看一看它在三維空間中的圖形:

它的全局最優(yōu)點位于一個長長的、狹窄的、拋物線形狀的、扁平的“山谷”中。

找到“山谷”并不難,難的是收斂到全局最優(yōu)解(在 (1,1) 處)。

正所謂:

世界上最遙遠的距離,不是你離我千山萬水,而是你就在我眼前,我卻要跨越千萬步,才能找到你。

我們再來看下面這個目標函數(shù)的尋優(yōu)過程④:

和前面的Rosenbrock function一樣,它的尋優(yōu)過程也是“鋸齒狀”的。

它在三維空間中的圖形是這樣的:

總而言之就是:當目標函數(shù)的等值線接近于圓(球)時,下降較快;等值線類似于扁長的橢球時,一開始快,后來很慢。

5. 為什么“慢”?

從上面花花綠綠的圖,我們看到了尋找最優(yōu)解的過程有多么“艱辛”,但不能光看熱鬧,還要分析一下原因。

在最優(yōu)化算法中,精確的line search滿足一個一階必要條件,即:梯度與方向的點積為零

(當前點在方向上移動到的那一點處的梯度,與當前點的搜索方向的點積為零)。

由此得知:

即:

故由梯度下降法的得:

即:相鄰兩次的搜索方向是相互直交的(投影到二維平面上,就是鋸齒形狀了)。

如果你非要問,為什么就表明這兩個向量是相互直交的?那是因為,由兩向量夾角的公式:

可知兩向量夾角為90度,因此它們直交。

6. 優(yōu)點

這個被我們說得一無是處的方法真的就那么糟糕嗎?

其實它還是有優(yōu)點的:程序簡單,計算量小;并且對初始點沒有特別的要求;此外,許多算法的初始/再開始方向都是最速下降方向(即負梯度方向)。

7. 收斂性及收斂速度

梯度下降法具有整體收斂性——對初始點沒有特殊要求。

采用精確的line search的梯度下降法的收斂速度:線性。

引用:

  • https://en.wikipedia.org/wiki/Cauchy%E2%80%93Schwarz_inequality
  • https://en.wikipedia.org/wiki/Gradient_descent
  • https://en.wikipedia.org/wiki/Rosenbrock_function
  • https://en.wikipedia.org/wiki/Gradient_descent

【本文是51CTO專欄機構(gòu)360技術的原創(chuàng)文章,微信公眾號“360技術( id: qihoo_tech)”】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-03-22 12:25:29

機器學習梯度下降法

2017-07-25 12:59:10

機器學習梯度下降算法

2023-05-17 11:33:45

梯度下降機器學習

2022-06-09 15:45:42

函數(shù)梯度下降

2018-07-20 14:58:16

深度學習梯度下降損失函數(shù)

2014-06-19 14:14:35

機器學習

2021-04-21 20:42:42

Nadam梯度優(yōu)化

2017-05-08 08:39:12

梯度算法Octave機器學習

2023-05-23 08:00:00

數(shù)據(jù)集ImageNet算法

2021-01-21 12:13:23

算法梯度下降網(wǎng)絡

2017-08-24 10:54:29

Andrew NG深度學習操作

2016-11-28 09:24:08

Python內(nèi)存技巧

2018-11-20 15:23:30

深度學習梯度神經(jīng)網(wǎng)絡

2017-08-28 18:41:34

PythonLogistic回歸隨機梯度下降

2019-04-10 09:23:10

梯度下降機器學習算法

2022-06-08 19:10:27

MarcusLeCun算法

2021-10-26 16:10:50

神經(jīng)網(wǎng)絡AI算法

2019-07-21 22:25:22

程序員技能開發(fā)者

2017-04-05 08:39:20

機器學習模型梯度下降法

2024-01-16 08:22:42

Gradient線性梯度
點贊
收藏

51CTO技術棧公眾號