新四季網

梯度下降和最小二乘(梯度下降和二階導數的最優學習率)

2023-10-13 15:07:00 1

在幾何上,函數的梯度是什麼?

為什麼我們需要知道這些?

坡度下降的簡要概述:如果你在山坡上,你想儘快到達谷底,你不遵循等高線,這會保持你的高度不變。迭代的過程是去到下一個較低的等高線,取最短和最陡的步驟,或者相等地,走到儘可能低的等高線,保持你的步長不變。現在你可以把輪廓想像成(局部)平行的曲線集合,見下圖。但是一步是一個方向和長度。直觀上,我們想要「垂直」的步驟到輪廓:到最近的點在較低的輪廓。我們如何展示這個,如何從一組幾乎平行的曲線中「數學地」得出函數的方向?

在很多關於機器學習的介紹性講座中,為了使一個變量的函數極端化,建議將學習率設置為二階導數的倒數。將其推廣到多個維度涉及「... Hessian ...」。

如果你對微分學很熟悉,你可以直接跳到最後。一般論點如下:

在函數f的任何谷值中,你要最小化,將函數展開成(多維)泰勒級數關於任意初始點x0。通過在位移(x x0)中只保留兩個項的條件來近似這個函數。通過把它的導數設為0來求極值。求出從x到最小二次逼近f的位移。這就產生了理想的步驟是Hessian乘以(負的)梯度的逆。

為了了解二階導數和Hessians,理解以下內容對我很有幫助。

(real)函數是空間到實數的映射。如果它是二維的函數,那麼在二維的任意點(x,y)函數會給你一個實數。這可以通過多種方式實現:

作為一組值(x,y, f(x,y)),一種數值計算方法在所謂的「封閉」函數形式中,例如f(x, y) = y*sin(3*x)(作為數值計算的簡寫)。

函數是什麼樣子的?你可以在三維空間中把它表示為z = f(x,y)的曲面,或者在二維空間中表示為地形圖:

用2D表示一個函數

它的梯度是什麼?函數的梯度是等高線圖!在這種情況下,它不是一個常數,就像流體流動可能在不同點上指向不同方向的矢量一樣。但梯度不是矢量,它是一個co-vector。

那麼什麼是covector?給定一個函數,它的梯度可以自然地構造出來,我們剛剛做到了!co-vector是梯度的總和(但它本身可能不是梯度)。

我們知道矢量v ^ a是什麼樣的:它是一個有方向和大小的箭頭。我們甚至知道如何添加矢量:將它們頭尾連接並將第一個尾部加入最後一個頭部:

矢量添加

矢量場在每個點都是箭頭,如果你有flow lines,那麼它就是線上每一點的切線矢量。

我們已經可視化上面的梯度場,等高線圖。什麼是 co-vector w _ a(在某一點上)的樣子?它看起來像兩個平行平面:在給定點上,該點處的切平面和下一個輪廓上的切平面。在2D中,它看起來像

為什麼叫co-vector和它是什麼?co-vector是一個從向量線性映射(在本例中)實數。這張地圖在R中寫成w _ a v ^ a = w(v)= 。我們如何計算它?它被定義為跨越矢量所需的w的數量:

Action of a co-vector on a vector

在這種情況下,w(v)= 2,因為你必須放置兩個w的「head-to-toe」來跨度v。這裡有兩點:首先,兩個w的「head-to-toe」不是2 * w,其次,w(v)取決於v和w的大小以及它們的相對方向。

加入Covector:

加入Covector

當covector變大時,線(或平面)就會越來越近!請注意,在等高線圖中,這也很直觀:最陡的部分是等高線之間的緊密間隔。

到目前為止,用梯度下降法最小化函數的要點如下:

我們想知道往哪個方向走,走多少步。這是一個位移,因此是一個帶有「Upper」索引的向量,或者一個(1,0)類型的張量,或者一個列矩陣我們知道函數的輪廓以及梯度但梯度是一個簡單的(局部)函數的下一個輪廓線的位置,因此它是一個具有「較低」索引或者類型(0,1)張量或行矩陣的co-vector。如何從行矩陣到列矩陣?我們需要一列或者一個類型為(2,0)的張量,即類似T ^ { ab }的東西,這樣v ^ a = T ^ { ab } w _ b。幾何上,我們需要把輪廓線轉換成箭頭。我們認為這是顯而易見的,因為我們進入了(一個很好的近似)歐幾裡得空間。但是在權值x的空間中,損失是我們要最小化的權值的函數,即使經過歸一化,也沒有自然度量。

在矩陣代數中,單位矩陣是一種類型的張量(1,1),一列或一行。允許我們從列向量到行向量的「轉置」操作隱式地假設並使用歐幾裡德類型(2,0)張量((1,0,0),(0,1,0),(0,0,1)),這是一排「行」。這不是單位矩陣,它是(1,1)張量。

讓我們先求出理想的步驟,或者說,學習率,在一維情況下。

1維二次方的理想學習率

考慮一個二次方程作為要在一維空間{ x }中被最小化的損失函數(在一個特定的谷中)的近似,並且假設我們已經知道它的函數形式。

要最小化的損失或函數是(注意,我們現在使用y作為目標函數而不是變量)

y = f(x)= a * x ** 2 b * x c

其在任何點x的梯度或導數都是

d y(x)= f '(x)= 2 * a * x b

其二階導數是

dd y = f ''(x)= 2 * a

這個函數的最小值是

X = arg(min(y))= argmin(y)

通過設置y的一階導數找到,d y(X)= 0。

所以我們得到X = - b /(2 * a)

現在想像一下,我們已經開始在一些任意的初始點X 0,我們希望得到X。梯度下降:

在x 0 處評估導數:d y(x 0)步驟在相反的方向,以X 1 = X 0 δ X,其中,δ X =-α* d ý(X 0)但是多少?這是學習率 α

我們如何優化α,讓我們以最少的步數達到最低點?你可以說,我們從x 0 開始,我們想要到達X,如果我們選擇x 1 = X,我們可以一步完成

δx = x1 — x0 = X — x0 = -(x0 b/(2*a)).

問題是,當我們在某個任意點x 0 開始時,我們只有一種計算任何點的損失函數值的方法,我們不知道什麼是a,b,c,甚至不是X = - b /(2 * a)。這類似於在山坡上漫步,在濃霧中,只有一個高度計,並面臨到達谷底的問題。

我們所知道的是如何為任何x計算y(x)。所以我們可以計算y(x 0)。我們也可以計算它的導數。怎麼樣?我們可以計算y(x 0 ε)並選擇ε「足夠小」:

dy(x0) ~= (y(x0 ε) — y(x0))/ ε

這足以讓我們弄清楚如何到達底部?不,因為如果我們只知道一階導數,我們將損失近似為一條直線,而切線沒有關於最小值位置的信息:

兩個二次曲線在一點相切

藍色和紅色曲線在x = 1時具有相同的導數,但它們分別在-0.5和 0.25處具有最小值。顯然,為了得到最小值,我們需要知道曲線是怎樣的。

所以回到損失函數的二次近似。我們知道這一步與梯度有關:

δx = — α * dy(x0)

我們也知道梯度:

dy(x0) = f』(x) = 2*a*x0 b

我們已經想出了理想的一步

δx = x1 — x0 = X — x0 = -(x0 b/(2*a))

把它們放在一起,我們發現學習率

α = — δx/dy(x0) = 1/(2*a) = 1/ddy(x0) =二階導數的逆。

所以理想的一步是由

δx = — dy(x0) / ddy(x0)

1維近似理想步驟

在前面的章節中,我們表明如果我們想使用「機器學習」在一維中找到二次最小值,特別是使用梯度下降,理想學習率是當前點的二階導數的倒數。在這篇文章中,讓我們嘗試並將其推廣到找出一維中幾乎任何曲線y = y(x)的局部最小值。

在初始點x 0 附近以泰勒級數展開y(x):

y(x) ~= y(x0) (x — x0) * dy(x0) (x — x0)**2 * ddy(x0) / 2 …

X = argmin(y(x)) 由一階導數= 0給出:

dy(x0) (X — x0)*ddy(x0) ~= 0

=> δx = — dy(x0) / ddy(x0).

該步驟與梯度(一階導數)的方向相反,並且學習率 - 或梯度乘以找到理想步長的因數 - 是二階導數的倒數。

該結果與坐標無關,但非線性坐標變換將導致不同的步驟,因為y(x)中「谷」的二次近似在不同的坐標中將有所不同。

推廣到多個維度

在前面的章節中,我們展示了二階導數的倒數是對使用梯度下降找到幾乎任何一維函數的最小值的理想學習率的近似值。在這篇文章中,我們將這個結果推廣到多維,並展示如何通過類型(0,2)的神秘和缺失張量從梯度co-vector 到矢量步進。

我們有多個權重,我們試圖使用最小化某些損失函數。所以權重空間{ x }是多維的,一個點由向量x 或x ^ a給出。損失函數y(x)可以用泰勒級數展開:

y(x) ~= y(x0) δx dy(x0) δx δx ddy(x0) / 2 …

其中dy = (∂y/∂x^i) d x^i,梯度,是co-vector,δ X 是在權重的增量變化。就組件或指數而言:

y(x) ~= y(x0) δx^i d_i y(x0) δx^i δx^j H_{ij}(x0) / 2 …

其中 H_{ij} = (∂/∂x^i) (∂/∂x^j) y

是Hessian矩陣或y的混合偏導數矩陣。

為了找到極值,我們設置= 0 梯度 y(x) w.r.t. x,並牢記 δx = x — x0:

0 = d_i y(x) = d_i y(x0) δx^j H_{ij}(x0)

這可以解決在x 0 點的增量:

δx^i = — H^{ij}(x0) d_j y(x0)

其中具有較高索引的H ^ { ij }是 (a (0,2) tensor) Hessian的逆:

H^{ik} H_{kj} = I^i_j

換句話說,理想的增量是Hessian乘以(負的)梯度的倒數。

「學習率」實際上是一個張量。

當然,在每一步中計算O(D 2)Hessian和O(D 3)的倒數在計算上是一種痛苦,但一種方法可能是每隔幾個epochs做一次,並假定相同的二次近似在該持續時間內保持良好。

有沒有可以簡化的情況?是否有某種意義上的變量可以被認為是相互「正交」和「normalized」的?是的,但唯一的衡量標準來自Hessian本身!如果我們知道Hessian至少近似對角線並且其特徵值近似相等,那麼我們可以計算其行列式的D- th根,並且我們得到Hessian

H^{ij} = (detH)^{-D} diag(1,1,1 …)

這是使用Hessian行列式的逆D- th根作為標量學習率的理由。

然而,計算行列式仍然幾乎是O(D 3),所以我們沒有獲得任何計算簡單性。

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了