一.LM最优化算法
最优化是寻找使得目标函数有最大或最小值的的参数向量。根据求导数的方法,可分为2大类。(1)若f具有解析函数形式,知道x后求导数速度快。(2)使用数值差分来求导数。根据使用模型不同,分为非约束最优化、约束最优化、最小二乘最优化。Levenberg-Marquardt算法是最优化算法中的一种。
LM算法属于一种“信赖域法”,所谓的信赖域法,就是从初始点开始,先假设一个可以信赖的最大位移σ,然后在以当前点为中心,以σ为半径的区域内,通过寻找目标函数的一个近似函数(二次的)的最优点,来求解得到真正的位移。在得到了位移之后,再计算目标函数值,如果其使目标函数值的下降满足了一定条件,那么就说明这个位移是可靠的,则继续按此规则迭代计算下去;如果其不能使目标函数值的下降满足一定的条件,则应减小信赖域的范围,再重新求解。
LM算法需要对每一个待估参数求偏导,所以,如果你的拟合函数 f 非常复杂,或者待估参数相当地多,那么可能不适合使用LM算法,而可以选择Powell算法(Powell算法不需要求导。LM收敛速度块。但是参数应该设定一个初值,其次对于多优化解的问题,也不是很适合。
英文文档lemar介绍比较简洁,还包括伪代码,请点击下载:
(1)Principle: An iterative tech. to locate the minimum of a multivariate function (sum of squares of non-linear real-valued function).Assuming measure vector x’=f(p) ,target vector x (such as training target in classification problem) ,error vector e=x-x’:
Optimization Object:arg(p) min(||x-f(p)||)
Linear approximation: in the neighborhood of p, assuming J is Jacobian Matrix(f(p) to p) ,for a smallσ,so f(p+σ)=f(p)+σJ (Taylor Expansion) ,and
min (||x-f(p+σ)||=min(||e-Jσ||) => JTJσ=JTe (derivation to σ)
Introducing the damping term u and set N=( JTJ+uI)=> Nσ= JTe => σ
For each iteration or updata of p(p:=p+σ), u is adjusted to assure a reduction in the error e(norm-2)
(2)Merits & Defects:LM is a standard tech. fornon-linear least-squares problems:When u is set to a large value, p updates as steepest descent, otherwise updates as Gauss-Newton method.
p shall be set toarelative reliable initial value (the work of RBM model).