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