关于最小二乘解的问题

   最近在做CV,经常碰到最小二乘解优化的问题,貌似在机器学习中也有相关的研究,下面是转载的一些关于最小二乘解的问题。

    最小二乘解主要出现在构建最小化样本与其重构样本之间的误差和等一些问题。采用的公式我不用写出来大家都会明白,二者先取个差值,在来个平方,最后搞一个和号上去,这就是最小二乘问题的思想。该数学模型的目的十分直观,就是想要计算出一组参数,这组参数可以让计算出来的数据与观测数据最为接近。 进一步,最小二乘又可以分为线性和非线性两种,分别对应fi(x)的线性形式与非线性形式,线性最小二乘很好求解,可以将公式(1)变换为矩阵方程(公式2),最后直接求解矩阵方程即可,不需要迭代,这种解被称为“解析解”。非线性最小二乘问题则不然,它要复杂得多,没有办法变换为矩阵方程形式,以至于它必须将问题化简为每一步均为可以直接求解的子问题,整个求解过程是迭代的。

 

(1)

(2)

   

线性最小二乘问题与非线性最小二乘的关系,就是非线性最小二乘问题的求解过程,求解过程一讲完,关系自然也就明了!本来想写一篇很详细的博客,介绍非线性最小二乘问题的解法,一直打算把求解非线性最小二乘问题的每一步数学公式都进行解释,但是我发现,在CSDN中,大家往往对数学公式不大感冒,喜欢的往往就是通俗简单的文字说明,加上实用的代码。所以,我适应环境,下面就说说求解过程。

 

------------------------------------------------------------------------------------------------------------------------------------------------------------

1. 对原问题中的每一个函数fi(x)在x0处进行一阶泰勒展开,因为一阶泰勒展开属于线性函数(公式3),于是通过这种手段,就可以将非线性最小二乘问题简化为线性最小二乘问题来求解。

               (3)

2. 对得到的线性最小二乘问题,进行直接求解。这里面涉及到两个矩阵,一个是雅克比矩阵(公式4),一个是赫森矩阵(公式5)。

                        (4)

(5)

3. 得到子问题的解析解xk+1之后(公式2),xk+1与xk之间便自然地建立了等式关系(公式6)。

(6)

4. 更新参数xk(k=k+1, k=1....n),回到步骤1,直到满足收敛条件,得到最优解x*

-----------------------------------------------------------------------------------------------------------------------------------------------------------

 

说完了,非线性最小二乘问题的解决思路就是这样的,整个过程就是复杂问题简单化,线性最小二乘简单吧,那就想办法利用简单的来解决复杂的。一阶泰勒展开刚好能起到“桥梁”一样的角色,如此看来,大牛们还是很聪明的。

下面说说几个注意事项。

第一:步骤1中,一定要一阶泰勒展开,不能采用二阶以上,因为只有一阶泰勒展开才是线性函数,才能转换为线性最小二乘问题来直接求解。

第二:步骤2中,雅克比矩阵和赫森矩阵都是属于子问题的,不是原问题的。

第三:步骤3中,是为了得到新求解的参数xk+1与之前参数xk之间的关系,形成一种“链式反应”,也就是迭代了。

第四:步骤4中,收敛条件一般有1.梯度近乎为0。2.变量变化很小。3.目标函数值变化很小等。

第五:许多优化算法,都可以用于解决非线性最小二乘问题。例如我之前讲过的LM算法与信赖域算法(参考2与参考3),对应的matlab代码已给出。

第六:函数fi(x)往往都是如下形式(公式7),千万别以为fi(x)就是hi(x),我之前犯过类似的错误,调代码调的很惨。

 

(7)

 

希望我的理解对正在使用最小二乘模型的童鞋能够所有帮助。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值