L-BFGS
L-BFGS###
先介绍下BFGS算法过程
BFGS ####
缺点:矩阵本身的存储大小
从易存储的初始矩阵出发,可以迭代求出。而且计算到一定步数之后,可以不用从第一步开始迭代,比如可以取从前m步开始迭代,找一个跟前m步迭代结果“差不多”就可以近似了。 所以递归公式为:
所求方向:
等一等,这个式子中有大量的重复计算:
右侧优化:
递推:
初始:
得到:$$
\begin{align}
q{k-1} &= V{k-1} \nabla f \
q{k-2} &= V{k-2} V_{k-1} \nabla f \
\ldots \
q{k-m} &= V{k-m} \ldots V{k-2} V{k-1} \nabla f
\end{align}
$$
然后左侧优化:
递推:
初始:
得到$$
r{k-1} = (V{k-1}^T \ldots V{k-m}^T) G_k^0 (V{k-m} \ldots V_{k-1}) \nabla f \
(V{k-1}^T \ldots V{k-m+1}^T) s{k-m} \alpha{k-m} \
(V{k-1}^T \ldots V{k-m+2}^T) s{k-m+1} \alpha{k-m+1} \
(V{k-1}^T \ldots V{k-m+3}^T) s{k-m+2} \alpha{k-m+2} \
\ldots \
V{k-1}^T s{k-2} \alpha_{k-2} \
s{k-1} \alpha{k-1}
$$
就是最后要求解的值。
L-BFGS算法过程:
的选择:
L-BFGS法计算方向更精美一点的排版####
看第6步,就直接计算出 了。之前看到有些代码是传入了 。
整个L-BFGS法下降过程####
待扩展###
百度有个shooting算法 ,比LBFGS更快,对hession矩阵分块,使得特征值差不多的靠的更近。
并行化###
参考佳文####
Last updated