最優化方法與機器學習工具集

2022-01-10 08:23:48 字數 3380 閱讀 9034

摘要:

1.最小二乘法

2.梯度下降法

3.最大(對數)似然估計(mle)

4.最大後驗估計(map)

5.期望最大化演算法(em)

6.牛頓法

7.擬牛頓迭代(bfgs)

8.限制記憶體-擬牛頓迭代(l-bfgs)

9.深度學習中的梯度優化演算法(adam,adagrad,rmsprop,bp,bptt)

10.各種最優化方法比較

擬牛頓法和牛頓法區別,哪個收斂快?

11.ftrl

12.als

13.啟發式演算法(智慧型演算法)

1.最小二乘法

注:這裡假定你了解向量的求導公式,並且知道正態分佈和中心極限定律(不知道的可以去數學知識索引翻翻)

(線性)最小二乘回歸解法:

損失函式:平方損失

,這裡的誤差可能是多種獨立因素加和造成的,所以我們假定其符合均值為0的高斯分布,繼而可以推出平方損失。參考andrew ng機器學習公開課筆記 -- 線性回歸和梯度下降的probabilistic interpretation,概率解釋部分

適用場合:

優缺點:維數過高時,求逆效率過低

2.梯度下降法

這是一種迭代方法,先隨意選取初始θ,然後不斷的以梯度的方向修正θ,最終使j(θ)收斂到最小,當然梯度下降找到的最優是區域性最優,也就是說選取不同的初值,可能會找到不同的區域性最優點 

常見的3終梯度下降演算法:

1.批梯度下降(bgd)演算法:

bgd**實現

2.隨機梯度下降(sgd)演算法:

sgd**實現

3.mini-batch隨機梯度下降

msgd**實現

同樣可以參照andrew ng機器學習公開課筆記 -- 線性回歸和梯度下降的梯度下降(gradient descent)部分

3.最大(對數)似然估計(mle)

參照:數理統計與引數估計雜記

4.最大後驗估計(map)

引入了先驗分布對引數做規範化,其引數估計是對貝葉斯後驗概率求極值,而**過程和最大似然估計一樣

5.期望最大化演算法(em)

em**實現

k-means聚類和em演算法複習總結

6.牛頓法:

求駐點,並假設海森矩陣可逆,則得到如下迭代公式:

綜合以上,得到牛頓發的演算法流程如下:

7.擬牛頓迭代(bfgs) 

實際的優化問題中很難保證每一點的hessian矩陣(二階導數對應的矩陣)都正定(可逆),而擬牛頓法構造了乙個不太精確,但是可以保證正定的矩陣

hessian矩陣的逆的更新公式是:

當學習速率滿足wolfe條件時,可以保證找到比現有函式更優的乙個點;

wolfe條件:

8.限制記憶體-擬牛頓迭代(l-bfgs)

它對bfgs演算法進行了近似,其基本思想是:不在儲存完整的矩陣d,而是儲存計算過程中的向量s,y,需要矩陣d時,利用向量系列s,y的計算來代替。而且向量序列也不是所有的都存,

而是固定存最新的m個(引數m可由使用者根據自己機器的記憶體自行指定)。每次計算d時,只利用最新的m個s,y.顯然這樣一來,我們將儲存有原來的o(n*n)降到了o(mn)

9.深度學習中的梯度優化演算法

演算法介紹:梯度下降優化演算法綜述

adam:

adam**實現

rmsprop:

rmsprop**實現

adagrad:

其中,gt∈

ℜd×d

'>gt∈rd×d

是乙個對角矩陣,其中第i

'>i

i行的對角元素eii

'>eii

為過去到當前第i

'>i

i個引數θ

i'>θi

的梯度的平方和,eps

ilon

'>epsilon

是乙個平滑引數,為了使得分母不為0(通常ϵ=1

e−8'>ϵ=1e−8

),另外如果分母不開根號,演算法效能會很糟糕。 

為什麼adagrad適合處理稀疏梯度?它能夠對每個引數自適應不同的學習速率,對稀疏特徵,得到大的學習更新,對非稀疏特徵,得到較小的學習更新,因此該優化演算法適合處理稀疏特徵資料。

10.各種最優化方法比較

1.牛頓法和擬牛頓法區別,哪個收斂快?

牛頓法:若函式的二次性態較強,牛頓法的收斂速度是很快的。但是牛頓法由於迭代公式中沒有步長因子,而是定長迭代,對於非二次型目標函式,有時牛頓法不能保證函式值穩定地下降,在嚴重的情況下甚至不能收斂;

擬牛頓法:使用"偽逆"矩陣代替海森矩陣,所以無需計算二階偏導,而且可以保證矩陣正定。通過一維搜尋確定步長。參考鏈結

2.sgd,adagrad,adam的區別

sgd:使用負梯度更新權重

adadelta和adagrad:1.自適應,省去了人工設定學習率的過程;2.只用到一階資訊,計算開銷小;3.超引數不敏感性,其公式中額外增加的引數的選擇對求解結果沒有很大影響;4.魯棒性;5.按維度分開計算學習率;

adam:對於adagrad的泛化,其加入了:自適應時刻估計變數mt, μt

附:keras 優化工具集原始碼

11.ftrl

ftrl(follow the regularized leader)學習總結

12.als

als交替最小二乘法總結

13.啟發式演算法(智慧型演算法)

機器學習總結(四) 最優化方法

機器學習中所謂的訓練其實就是損失函式的優化過程,求損失函式的最優化解,主要是得靠一些常規套路,去一點一點地接近最優化目標。常用的有梯度下降法 牛頓法和擬牛頓法 共軛梯度法 啟發式優化方法 拉格朗日乘數法等。一 梯度下降法 gradient descent 梯度下降法實現的原理簡單,是最常用最簡單的最...

筆記 最優化方法 凸集

設s en,若對 x 1 x 2 s及 0,1 都有 x 1 1 x 2 s 則稱 s 為凸集。設s 1和s2 是兩個凸集,實數,則 s1 是凸集 s 1 s2 是凸集 s 1 s2 是凸集 s 1 s2 是凸集例 設s d 1,1 t,d 1,1 t 則d d 是s的極方向。解 對 forall ...

最優化理論 機器學習基礎

目錄常見演算法 演算法分類 比喻說明 最優化理論研究的問題是判定給定目標函式的最大值 最小值 是否存在,並找到令目標函式取到最大值 最小值 的數值。人工智慧問題最後都會歸結為乙個優化問題的求解 在複雜環境與多體互動中做出最優決策。最優化演算法可能找到全域性最小值,也可能找到區域性最小值,理想情況下,...