梯度下降演算法 梯度下降演算法為何叫梯度下降?

2021-10-12 09:45:26 字數 1973 閱讀 2200

首先,我們知道乙個演算法的名字可以很好地去解釋乙個演算法,那麼梯度下降演算法是什麼呢?

很明顯的,就是用梯度這個工具來解決問題的一種演算法。解決什麼問題呢?

如何在乙個函式曲面的某一點,找到乙個函式值變化最大的方向。

比如:

我們站在山上的某一點,我們想要以最快的速度上山,但是我們的步子大小是一定的,那麼最快上山的路徑就是去找最陡峭的方向,向上爬。

其中這個山就是函式曲面,我們想要找到最大值的話就需要去找函式變化最快的方向。

比如,我站在紅色的那個點上,我想找最快上山的路徑:

但是,我有無數個方向(乙個函式曲面在某點有無數條切線,這些切線都是代表函式的變化率),此時我必須找乙個變化最快的方向,即一條切向方向。根據我們已知,我們找的便是梯度。

等等,是不是有點不對勁,梯度是怎麼來的?

這裡有乙個函式,公式為:

,梯度就是乙個向量,分別是z對x的偏導和z對y的偏導

我們知道,偏導是把乙個引數看成是自變數,其他引數都看成是固定的值,比如就是把x看成是變數,把y看成是乙個固定的值,因為求偏導也必定是在乙個點上進行求解,所以可以用這個點的y值作為固定值。也就是以作為平面,切割整個三維空間,得到z與x的關係。

如圖,如果我們找(0,0)處的梯度,把此圖以

的平面截去,那麼就以z和x平面得到了乙個二次函式的乙個橫截面,我們就在x=0處求此處的偏導,這就是

。我們知道導數是函式在某點下降的速度,所以梯度就是這個函式在某點沿各個引數下降的速度

但是這個是函式變化最快的方向嗎?我們找的是乙個方向,函式變化最快的方向,這個能和梯度沿各個方向下降等價嗎?

也就是說,我們需要的是乙個w方向,但是梯度卻給我們兩個方向(x,y)合成的乙個方向,這兩個等價嗎?

其實,我們要尋找的那乙個方向有另乙個名字,方向導數

方向導數是函式

在一點

沿某一方向變化率的問題。

下面的定義可以不看,直接看定義下面的即可,如果想知道相關聯絡,可以看一些。

定義:

證明在:

由此我們可以知道,我們其實需要找的方向是方向導數變化最快的那個方向。

那麼隨著的不同,我們可以求出任意方向的方向導數。這也表明了方向導數的用處,是為了給我們考慮函式對任意方向的變化率。

那麼乙個平面上無數個方向,函式沿哪個方向變化率最大呢?

設 、

那麼我們可以得到:

為向量與向量之間的夾角)

那麼此時如果

要取得最大值,也就是當為0度的時候,也就是向量為0度的時候,也就是向量

(這個方向是一直在變,在尋找乙個函式變化最快的方向)與向量

(這個方向當點固定下來的時候,它就是固定的)

平行的時候,方向導數最大.方向導數最大,也就是單位步伐,函式值朝這個反向變化最快。

這個 的方向其實就是

的方向,是方向向量的方向,因為

的可由

來確定。由此,

我們要找的哪個變化最快的方向就和向量的方向平行,而向量就是梯度,所以這個方向就是梯度方向。因此,這個演算法其實應該叫做:求值點---方向向量-- 變化最快方向---下降演算法。

因為方向向量-- 變化最快方向即是梯度方向,所以就叫梯度下降演算法。

梯度下降演算法 梯度下降演算法公式推導

場景假設 梯度下降法的基本思想可以模擬為乙個下山的過程。假設這樣乙個場景 乙個人被困在山上,需要從山上下來 找到山的最低點 但此時山上的濃霧很大,導致可視度很低 因此,下山的路徑就無法確定,必須利用自己周圍的資訊一步一步地找到下山的路。這個時候,便可利用梯度下降演算法來幫助自己下山。怎麼做呢,首先以...

梯度下降演算法

機器學習在這幾年得到快速發展,乙個很重要的原因是 large dataset 大規模資料 這節課就來介紹用機器學習演算法處理大規模資料的問題。關於資料的重要性,有一句話是這麼說的 it s not who has the bestalgorithmthat wins.it s who has the...

梯度下降演算法

梯度下降演算法 最速下降演算法 其是解決引數無約束最優化的一類方法。無約束 對引數沒有任何限制,最多限制為實數,有的根本就沒有限定 在機器學習中,都會讓自己的乙個模型達到乙個最優值 最大或最小等等 這裡有乙個非常簡單的模型 f x wx b 這裡先假設x就是一維情況。如果我們知道f x 與x的對應點...