最優化方法 梯度下降

2022-07-15 10:00:19 字數 1505 閱讀 6864

梯度下降:實現梯度下降、線性回歸中的梯度下降

隨機梯度下降:相關**即呼叫

**:一、概念

梯度下降(gradient descent, gd)不是乙個機器學習演算法,而是一種基於搜尋的最優化方法。梯度下降(gradient descent, gd)優化演算法,其作用是用來對原始模型的損失函式進行優化,以便尋找到最優的引數,使得損失函式的值最小。我麼需要從損失值出發,去更新引數,且要大幅降低計算次數

梯度下降演算法作為乙個聰明很多的演算法,抓住了引數與損失值之間的導數,也就是能夠計算梯度(gradient),通過導數告訴我們此時此刻某引數應該朝什麼方向,以怎樣的速度運動,能安全高效降低損失值,朝最小損失值靠攏。

1、步長(learning rate):步長又稱學習率,決定了在梯度下降迭代的過程中,每一步沿梯度負方向前進的長度。用上面下山的例子,步長就是在當前這一步所在位置沿著最陡峭最易下山的位置走的那一步的長度。

二、原理

就好比乙個蒙著眼睛的人下山,每次在負梯度最大的方向,向前走一步,走出一步後,比較前後的的落差,若落差小於一定閾值,則認為到達山谷,若落差大於閾值,則繼續向前走,直到到達山谷。

三、調優

步長、初始值、歸一化

1、步長:步長太小,收斂慢,步長太大,會遠離最優解。所以需要從小到大,分別測試,選出乙個最優解。

2、初始值:隨機選取初始值,當損失函式是非凸函式時,找到的解可能是區域性最優解,需要多測試幾次,從區域性最優解中選出最優解。當損失函式是凸函式時,得到的解就是最優解。

3、歸一化:如果不歸一化,會收斂的很慢,會形成之字的路線。

四、分類

1、批量梯度下降法(bgd)

計算梯度時使用所有的樣本,這樣每次算出來的梯度都是當前最優的方向。

迭代次數少

若損失函式為凸函式,能夠保證收斂到全域性最優解;若為非凸函式,能夠收斂到區域性最優值(結果的準確度)

訓練速度慢(時間,每一次訓練需要的時間)

需要記憶體大(空間)

2、隨機梯度下降法(sgd)

隨機梯度下降法,其實和批量梯度下降法原理類似,區別在與求梯度時沒有用所有的m個樣本的資料,而是僅僅選取乙個樣本j來求梯度

訓練速度快

有機率跳出區域性最優解

容易收斂到區域性最優,並且容易被困在鞍點

迭代次數多

3、小批量梯度下降法(mbgd)

小批量梯度下降法是批量梯度下降法和隨機梯度下降法的折衷,也就是對於m個樣本,我們採用x個樣子來迭代,1

<

x<

m'>110'>x=10

x=10。

待完善

最優化 梯度下降法

最優化問題就是求解函式極值的問題,包括極大值和極小值,幾乎所有機器學習演算法歸根到底都是在求解最優化問題。在高等數學 微積分中有求極值統一的思路 找函式導數等於0的點,只要函式可導我們就可以用這種方法。在機器學習中我們一般求函式的極小值,若求極大值我們只需要整體加負號。有些時候我們會對優化變數x有約...

最優化演算法 梯度下降

梯度下降演算法,參考edwin 最優化導論 8.2章節,演算法採用go語言實現。此處演算法仍然存在疑惑,主要是獲取梯度下降時如何確定步長,即使採用割線法獲取最優步長,那麼割線法的初始值又如何確定?下面程式中雖然採用了牛頓法獲取極值,但非常依賴初始取值範圍!filename grad.go autho...

ML05 最優化方法 梯度下降

梯度下降是目前機器學習 深度學習解決最優化問題的演算法中,最核心 應用最廣的方法。梯度下降是一種尋找函式極小值的方法。該方法最普遍的做法是 在已知引數當前值的情況下,按當前點對應的梯度向量的反方向,並按事先給定好的步長大小,對引數進行調整。按如上方法對引數做出多次調整後,函式就會逼近乙個極小值。為什...