机器学习算法中经常碰到非线性优化问题,如 Sparse Filtering 算法,其主要工作在于求解一个非线性极小化问题。在具体实现中,大多调用的是成熟的软件包做支撑,其中最常用的一个算法是 L-BFGS。为了解这个算法的数学机理,这几天做了一些调研,现把学习过程中理解的一些东西整理出来。
目录链接
(1) 牛顿法
(2) 拟牛顿条件
(3) DFP 算法
(4) BFGS 算法
(5) L-BFGS 算法
L-BFGS算法实现
一个Go语言的开源L-BFGS算法实现链接:https://github.com/huichen/lbfgs
C++的一个经典L-BFGS的开源库为:http://www.chokkan.org/software/liblbfgs/
源代码:https://github.com/chokkan/liblbfgs
最后介绍一个第三方库资源:http://blog.csdn.net/jakisou/article/details/38535353