谈谈自己对线性最小二乘和非线性最小二乘之间关系的理解~

9 篇文章 2 订阅
9 篇文章 0 订阅

最小二乘问题,是最基本、最实用、最应用广泛的的数学模型,在机器学习中更是得到了极大的应用(公式1),比如说我们的PCA,最经典的解释就是:最小化样本与其重构样本之间的误差和。采用的公式我不用写出来大家都会明白,二者先取个差值,在来个平方,最后搞一个和号上去,这就是最小二乘问题的思想。该数学模型的目的十分直观,就是想要计算出一组参数,这组参数可以让计算出来的数据与观测数据最为接近。 进一步,最小二乘又可以分为线性和非线性两种,分别对应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:最优化理论与算法

参考2:利用Levenberg_Marquardt算法求解无约束的非线性最小二乘问题~

参考3:利用信赖域算法求解无约束的非线性最小二乘问题~


(转载请注明:http://blog.csdn.net/wsj998689aa/article/details/41558945, 作者:迷雾forest)


  • 21
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值