本文摘自:
http://blog.csdn.net/itplus/article/details/21896453
https://www.cnblogs.com/ljy2013/p/5129294.html?from=singlemessage&isappinstalled=0
優(yōu)化求解損失函數(shù)是機(jī)器學(xué)習(xí)最重要的步驟,往往求解函數(shù)沒有解析解,而是通過迭代優(yōu)化方法尋找全局最優(yōu)扫外。
介紹最常用的方法LBFGS金抡,不過要先看看GD狱庇、DFP和BFGS算法粉臊,然后再理解LBFGS會更清晰箫爷。
先看下最基礎(chǔ)的梯度下降法(Gradient Descent)
為了保證函數(shù)能夠一直沿著梯度下降舌稀,則
那么我們只需要保證
就有
所以有了我們最常用的梯度下降法公式(加上步長控制)
但是梯度下降是只用了一次導(dǎo)數(shù)场绿,所以對二次函數(shù)或者高階求解速度較慢剖效,下面我們介紹二次收斂性的方法
從這里我們可以看出:要想迭代出Xk+1,就只需要計(jì)算Dk+1即可焰盗。DFP算法是對Dk+1的一個(gè)近似計(jì)算的算法璧尸。BFGS算法是直接近似計(jì)算海森矩陣,用Bk+1表示熬拒。
這里D_k的假設(shè)可以從一個(gè)單位矩陣不斷優(yōu)化得到爷光,有點(diǎn)類似MCMC里面,從一個(gè)均勻分布可以得到任何一個(gè)分布澎粟。
這里公式sk=\lambda dk
dk=-H_k^{-1}g_k=-D_K*g_k