问题
迭代求解函数极值
每次迭代,找一个增量
Δx,是的
∣∣f(xk+Δx)∣∣2达到极小值,即比上一次的迭代的值要小
Δx足够小的时候停止,否则令
xk+1=xk+Δx
下面的推导过程与泰勒展开有关
梯度下降法
xk+1=xk−αGk
α为步长,(据说是可以求得的)
即
Δx=−αGk
牛顿法
xk+1=xk−Hk−1Gk
Hk为海森矩阵
即
Δx=−Hk−1Gk
牛顿法计算海森矩阵复杂,容易陷入局部最优
看这个https://blog.csdn.net/boksic/article/details/79130509
高斯牛顿法
xk+1=xk−Hk−1Gk
Hk=≈JTJ
J为雅克比矩阵
则
xk+1=xk−(JTJ)−1Gk
即
Δx=(JTJ)−1Gk
高斯牛顿法利用雅克比矩阵近似海森矩阵
(高斯牛顿方程也叫增量方程也叫正规方程)
看这个https://blog.csdn.net/boksic/article/details/79055298
LM算法
信赖域的概念https://www.codelast.com
xk+1=xk−Hk−1Gk
Hk=≈JTJ+μI
I为单位矩阵
则
xk+1=xk−(JTJ+μI)−1Gk
引入步长单位矩阵解决高斯牛顿的不可逆问题
μ小时相当于高斯牛顿,
μ大时相当于梯度下降
看这个https://blog.csdn.net/boksic/article/details/79177055