老伙計梯度下降算法在深度學(xué)習(xí)中扮演著舉足輕重的地位,今天我們來從另一個角度來看這個算法的推演。
我們知道,對于一個足夠光滑的函數(shù),大一時候?qū)W過的泰勒展開公式告訴我們,在已知該函數(shù)在某一點的各階導(dǎo)數(shù)值的情況之下,可以用這些導(dǎo)數(shù)值做系數(shù)構(gòu)建一個多項式來近似函數(shù)在這一點的鄰域中的值。于是,對于一個損失函數(shù)函數(shù)g(w),我們現(xiàn)在知道它在w0處的函數(shù)值以及各階導(dǎo)數(shù)值,如何從w0出發(fā)來找到g(w)的極小值呢?我們可以對g(w)在w0點處展開,只保留到一階導(dǎo)數(shù),得到如下公式(其中▽表示梯度):
需要注意的是,泰勒公式是一個近似表達(dá)式,若w距離w0越近,則近似效果越準(zhǔn)確;反過來,若w偏離w0較大,那么近似效果就會比較差。因此,我們在用上式來代表g(w)的時候,應(yīng)該遵守一個約束條件,這個約束是w距離w0的距離要足夠小。我們可以用距離公式,表示距離的公式有很多,使用最常見的歐幾里得距離公式,并且為了接下來求導(dǎo)方便,加上一個系數(shù)1/(2*lr)在前面,于是尋找g(w)的最小值就變成了對下面表達(dá)式求關(guān)于w的梯度:
求完梯度之后并設(shè)置其等于0,即可得到我們非常熟悉的梯度下降算法的原始公式:
這里的歐幾里得距離公式也可以換成其他距離公式(下文延伸分享其他距離公式)。這同樣也解釋了,我們?yōu)槭裁从袝r候在損失函數(shù)里面加上一個L2損失函數(shù)會更好,這樣可以防止梯度更新步幅過大,進(jìn)而引發(fā)損失值發(fā)生劇烈的抖動。
延伸:
距離表示的是一個集合中不同元素遠(yuǎn)近的度量,當(dāng)距離為0的時候表示這兩個元素是相同的。數(shù)學(xué)中,我們學(xué)過的距離主要有以下幾種:
上氏中,當(dāng)p取不同值得時候,又可以細(xì)分為不同的距離,當(dāng)p=1,稱為曼哈頓距離;當(dāng)p=2,稱為歐幾里得距離;當(dāng)p=∞,稱為切比雪夫距離。我們不禁要問,它們的區(qū)別是什么?為了更形象地展示它們,我畫了三幅圖來區(qū)分,每幅圖中箭頭表示的是從中心點到各個格子中心點的度量:
圖1,曼哈頓距離,它是所有坐標(biāo)軸差值的求和,可以想象一個城市的街道是完全網(wǎng)格狀的,那么你從一個地方走到另一個地方就必須得走成曼哈頓距離的形狀。
圖2,歐幾里得距離,這種距離是最常見的,勾股定理中用的就是這種距離。
圖3,切比雪夫距離,各個坐標(biāo)軸差值的最大值。
明可夫斯基距離,又稱明氏距離,是一個定義在賦范空間的距離,賦范空間是指一個由范數(shù)構(gòu)成的向量空間,明氏距離具有平移不變性和同質(zhì)性,它的公式如下:
除了明氏距離之外,我們在自然語言處理中還用過余弦距離,通常余弦距離是用來判斷兩個元素的相似度(例如文檔或段落),我們可以通過如下公式來得到余弦距離的計算:
由此可見我們只關(guān)心兩個向量的方向是否一致,而并不關(guān)心它們各自的幅度。當(dāng)余弦值為1的時候,代表兩個方向完全一致,即有相似性;當(dāng)余弦值為0的時候,代表兩個方向正交,可能只有少量相似性;當(dāng)余弦值為-1的時候,方向完全相反,沒有相似性。
還有一種距離也蠻常見,叫做馬氏距離,它是衡量一個點到一個分布之間的距離,或者說偏離程度。給定分布的均值μ和協(xié)方差S,從點x到該分布的馬氏距離的計算公式如下:
以上就是我們常見的距離及其表達(dá)式。
-
算法
+關(guān)注
關(guān)注
23文章
4587瀏覽量
92503 -
梯度
+關(guān)注
關(guān)注
0文章
30瀏覽量
10302 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5463瀏覽量
120891
原文標(biāo)題:從泰勒展開來看梯度下降算法
文章出處:【微信號:DeepLearningDigest,微信公眾號:深度學(xué)習(xí)每日摘要】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論