機器學習 梯度下降

2021-07-24 06:43:51 字數 1306 閱讀 8552

參照《機器學習》這本書的第4.4.3節。

一.解決目標及情景假設:

當給定一些資料,輸入x向量已知,輸出y也已知,設計乙個線性函式y=h(x)去擬合這些資料。

既然是線性函式,在此不妨設為h(x)=w0*x0+w1*x1。

此時我們遇到的問題就是如何確定w0和w1這兩個引數,即w=(w0,w1)這個向量。

既然是擬合,則擬合效果可以用誤差函式:e(w)=∑ [ h(x)- y ] ^2 / 2 來衡量。

其中w是權重二維向量,x是輸入二維向量,x和y都是訓練集的資料,即已知。

至於後面除於2只是為了之後的推導過程中對e求導時候可以消除係數,暫時可以不管。

因為我們解決的目標是找出乙個向量w=(w0,w1)使得e(w)值最小,即誤差最小。

其實這個問題本質上也是搜尋最優解的問題,如果用暴力搜尋的話,隨機取每個可能的值去讓機器每天每夜地跑,顯然這是不可能的。

所以此時有一種搜尋策略:梯度下降。

二. 梯度下降方法:

梯度其實就是高數求導方法,對e這個公式針對每個維數(w0,w1)求偏導後的向量▽e(w)=(∂e/∂w0,∂e/∂w1)

梯度為最陡峭上公升的方向,對應的梯度下降的訓練法則為:

w=w-η▽e(w)

這裡的η代表學習速率,決定梯度下降搜尋中的步長 。

上式的w是向量,即可用將該式寫成分量形式為:wi=wi-η*∂e/∂wi

現在關鍵就使計算∂e/∂wi:

推導過程很簡單,書上寫的很詳細,這裡只記錄結論:

∂e/∂wi=∑(h(x)-y)*(xi)

這裡的∑是對樣本空間,即訓練集進行一次遍歷,耗費時間較大,可以使用梯度下降的隨機近似:

隨機梯度下降策略來改進時間。

三.隨機梯度下降的隨機近似:

既然是隨機近似,則顧名思義,肯定是用近似方法來改善梯度下降時候的時間複雜度問題。

正如上所說,在∂e/∂wi=∑(h(x)-y)*(xi)

的時候∑耗費了大量的時間,特別是在訓練集龐大的時候。

所以肯定有人會猜想,如果把求和去掉如何,即變為∂e/∂wi=(h(x)-y)*(xi)。

幸運的是,猜想成立了。

只是要注意一下標準的梯度下降和隨機梯度下降的區別:

1.標準下降時在權值更新前彙總所有樣例得到的標準梯度,隨機下降則是通過考察每次訓練例項來更新。

2.對於步長 η的取值,標準梯度下降的η比隨機梯度下降的大。

因為標準梯度下降的是使用準確的梯度,理直氣壯地走,隨機梯度下降使用的是近似的梯度,就得小心翼翼地走,怕一不小心誤入歧途南轅北轍了。

3.當e(w)有多個區域性極小值時,隨機梯度反而更可能避免進入區域性極小值中。

機器學習 梯度下降

梯度下降法 如果讀者對方向導數和梯度的定義不太了解,請先閱讀上篇文章 方向導數與梯度 前些時間接觸了機器學習,發現梯度下降法是機器學習裡比較基礎又比較重要的乙個求最小值的演算法。梯度下降演算法過程如下 1 隨機初始值 2 迭代 在這裡,簡單談一下自己對梯度下降法的理解。首先,要明確梯度是乙個向量,是...

機器學習 梯度下降

1.引數要同時更新 2.初始化不同,獲得的最小值也不同,即得到的引數也不同,演算法收斂到不同的區域性最優解。凸函式只有全域性最優解,無論如何初始化,不必擔心陷入區域性最優解 3.越接近最小值時,收斂的速度最逐漸減慢,在學習率不變的情況下,越接近最小值 最優解 偏導數的絕對值會越來越小,所以演算法收斂...

機器學習 梯度下降

作者 renu khandelwal 編譯 vk medium 什麼是梯度下降?梯度下降法是一種減少成本函式的迭代機器學習優化演算法,使我們的模型能夠做出準確的 成本函式 c 或損失函式度量模型的實際輸出和 輸出之間的差異。成本函式是乙個凸函式。為什麼我們需要梯度下降?在神經網路中,我們的目標是訓練...