0. 引言
在讲解最小二乘法之前,我想先引入一些数学优化问题的基本概念,然后讲解较为简单的线性最小二乘.
请注意矩阵、向量和数的区别,对于前两者在公式里我都用了粗体加以区分.
1. 数学优化问题
数学意义上的优化问题可以用公式简述如下[1]:
其中 是一个n维列向量.
约束函数(constraint function) 把一个n维向量映射成一个实数.
目标函数(objective function) 也被称为代价函数(cost function).
接下来我们通过两个具体的实例来帮助大家理解上述的数学定义.
1.1 投资组合优化问题
假设我们在要在一推指数基金中选择几个进行投资.用变量 代表在第 个基金中的投资金额.所以向量 代表了所有的资产配置.
至于约束函数,主要有两个.一个是我们投资总金额的限制,一个是投入资金不可以为负.目标函数则可能是对购买基金总体方案的风险评估.
在这种假设情况下,我们的优化问题就在于在约束条件下通过对不同基金购买方案的评估来实现最小的投资风险.当然,你可以通过添加更多的约束条件来使得结果更加准确.
1.2 机器人重量优化
在机器人的机械结构设计中,经常遇到性能和重量两者之间的取舍.在这个问题下,向量 可以是各个零部件的尺寸(长宽高),限制函数主要来自于结构强度和运动范围.目标函数则是我们的机器人的总体质量.
我们可以通过Ansys软件来对机器人的零部件进行受力分析,通过Adams来对机器人末端进行运动分析.这些都可以帮助我们来确定代价函数.最后通过不断地优化,使机器人地重量达到优.
事实上,数学优化在机械设计,电路设计,自动化等等领域都是重要的工具.在这里就不列举了.接下来我们就进入主题,讲讲特殊的数学优化:最小二乘法.
2. 线性最小二乘
最小二乘就是没有约束函数的优化问题,即 ,最小二乘的目标函数需满足式2.1的形式(有的资料里面会在前面加上一个系数1/2,由于最终目标都是要求最小值这里就没加)
其中 , 是 的行向量, 是待优化变量,可以用式2.2求解
同样的,我们列举一个优化参数的例子来帮助大家理解
2.1优化参数的例子
假设 ,其中为未知系数.
残差的定义如下,我们的目标是找到合适的 使得残差的平方和最小.
对于m个样本 进行观测得到观测m个测量结果 ,那么我们可以得到残差的矩阵形式:
得到的结果和式2.1中的矩阵一致,那么可以利用2.2式计算出最后结果.
3. 非线性最小二乘
3.1 高斯牛顿法
现在有m个残差组成一个m维向量 ,与线性最小二乘不同的地方在与这时侯的 和 不再满足线性关系(比如 ).我们的目标还是求向量 使得式3.1取最小值[2].
首先给定一个初始值 (实际应用中,初始值往往是根据经验给定,如果初始值给的不好很有可能会造成最后结果的不收敛).高斯牛顿法的推导较为复杂,这里直接给出状态转移公式:
其中, 的上角标k和k+1代表迭代次数 用3.3式计算.
经过不断的迭代之后满足精度要求之后则可以结束.
值得一提的是由于 ,将其带入式3.3后状态转移公式将变成3.4的形式.可以发现式3.4能和式2.2有很好的对应关系,可以说非线性最小二乘是对线性最小二乘的一种“泛化”.
挖个坑,有人看再填,嘻嘻(预计写高斯牛顿法和列文伯格-马夸尔特方法的推导及其代码实现)
4. 最小二乘的应用
同上最后一行✧(≖ ◡ ≖)
5.更新日志
- 19/11/30凸优化和线性最小二乘
- 19/12/01非线性最小二乘高斯牛顿法的结论部分,修改部分参数使上下文变量一致
- 20/05/22修改部分容易引起歧义的内容,添加了数学优化的应用优化了排版对齐问题
参考
- ^Convex Optimization
- ^维基百科 https://en.wikipedia.org/wiki/Gauss–Newton_algorithm
评论(0)
您还未登录,请登录后发表或查看评论