1. 程式人生 > >機器學習的訓練演算法(優化方法)彙總——梯度下降法及其改進演算法

機器學習的訓練演算法(優化方法)彙總——梯度下降法及其改進演算法

Introduce

今天會說兩個問題,第一,建議大腳多看看大牛的部落格,可以漲姿勢。。。例如:

1、側重於語言程式設計和應用的廖雪峰

2、側重於高大上演算法和開源庫介紹的莫煩

第二,加深對機器學習演算法的理解。

個人理解:經典機器學習演算法,例如SVM,邏輯迴歸,決策樹,樸素貝葉斯,神經網路,adaboost等等,他們最本質的區別是分類思想(預測y的表示式)不同,有的是基於概率模型,有的是動態規劃。表象的區別是最後的損失函式不同,有的是合頁損失函式,有的是交叉熵損失函式,有的是平方損失函式,有的是指數損失函式。當然上述的損失函式是經驗風險,對於結構風險需要加入正則化(L0,L1(Lasso),L2(Ridge))。而所謂的訓練其實就是損失函式的優化過程,這裡可以有不同的優化方法,這些方法並不是機器學習演算法的一部分,這屬於凸優化或者啟發式優化演算法。而不同的優化(訓練、學習)演算法效果也不同,突出的表現為

1、不同的優化演算法適應於不同的場景(大規模資料、較深較複雜網路、稀疏資料、收斂速率高)等

2、不同優化演算法可以解決特定問題:學習率固定不變、在極值點附近收斂緩慢、收斂波動較大等。

3、啟發式優化演算法可以用於尋找全域性最優點,避免陷入區域性最優點和鞍點,但收斂太慢。

今天總結梯度下降法及其改進演算法

第一部分是以前的疑惑:在推導梯度性下降法時,推匯出類似牛頓法,可行性有待驗證。。。

本質就是:梯度下降法只說了下降的方向——最陡的方向,每一次下降多少並沒具體給出。而牛頓法或者我的推導中給出了具體下降多少,只是牛頓法是變數,即當前的函式值,而我的演算法是固定值。可以看看第二篇參考文章!


第二部分和第三部分是梯度下降法及其改進演算法的簡介:這裡只說一下適應的場景,具體推導建議看論文或者書,部落格講的不樂觀



第四部分是以線性迴歸為例,比較批量梯度下降和隨機梯度下降的區別:代價函式的區別


第五部分、直觀感受不同優化演算法的尋優過程



參考文章: