非线性优化
1、证明线性方程AX=b,当系数矩阵A超定时,最小二乘解为
证明这个公式答案:参考一下链接的证明,不想去证明一次,说一下思路,这个是最小化,||Ax-b||/2,通过矩阵的迹来确定,
TR{{AX-B}{AX-B}T}, 对这个迹进行对X求导,求出导数为零的点,可以解得上面这个公式。迹的求导可以这个链接:https://blog.csdn.net/acdreamers/article/details/44662633。
2、调研最速下降法、牛顿法、高斯牛顿法、列文伯格-马夸尔特方法各有什么优点,除了ceres库和g2o库还有什么优化库。
答:什么是最速下降法,解决了什么问题,基本的原理是什么?
参看一下大牛在文章,最速下降法是指选定一个初始点,在梯度负方向上进行搜索,得到一个局部驻点,这种方法不足是初始角,步长的选择过大或者过小都容易出现问题,当接近驻点时搜索过慢。https://zhuanlan.zhihu.com/p/32709034。
牛顿法是函数在某一点附近进行了二次展开,需要用来Hessen矩阵计算较为复杂,运算量较大,它的优点是,采用了二次拟合,下降速度更快。参考这篇文章,https://www.cnblogs.com/shixiangwan/p/7532830.html
高斯牛顿法是牛顿法专门用来解决最非线性最小二乘的问题。列文伯格-马夸尔特方法解决了高斯牛顿法在初始迭代不能保证收敛的缺点。
3、为什么高斯牛顿法的增量系数矩阵可能不正定,不正定有什么几何含义,为什么这种情况下解就不稳定了。
答:增量矩阵JT*J,假设J在方阵的情形下,正定矩阵的要求是所有特征值均为零,经过我的思考,如果雅克比矩阵是半正定的,也就是在某种情况下,J的行列式会等于零,这个时候增量方程出现零行某些变量将不会被优化到,所以得不到一个最优解。增量矩阵内在要求H就是要是正定的,如果出现0的情况,无法求解。这时代表在这个方向上,无变化,所有点都一样,无法在这个方向上优化。
如何查看内存在使用情况,ubuntu,gnome-system-monitor。
安装ceres库时遇到关于模板的问题,“” is not a template.所以,这时说的是eigen版本太低。重新安装
4、DogLeg是什么,与高斯牛顿和列文伯格-马夸尔特方法有何异同。
答:基于信赖域的优化问题,狗腿法,是基于依赖域的,更加灵活,与高斯牛顿和马夸尔特方法相比,不同点是采用了依赖域,相同点是都采用了非纯线性梯度的方法.