在数据处理中,经常遇到寻求回归方程的问题,即根据一组实验数据,建立两个或多个物理量(舒称因素)之间的在统计意义上的依赖关系式。

引言

  最小二乘模型可以解决两类实际问题。

  第一类问题:在数据处理中经常遇到寻求回归方程的问题,即根据一组实验数据建立两个或多个物理量(俗称因素)之间的在统计意义上的依赖关系式。例如一个量yyy与另一个或几个量t1,⋅⋅⋅,tlt_{1},···,t_{l}t1​,⋅⋅⋅,tl​有关系。这类问题的一般性描述如下。假定要建立量yyy与lll个量t1,⋅⋅⋅,tlt_{1},···,t_{l}t1​,⋅⋅⋅,tl​之间的依赖关系式,设方程为:
y=F(t1,t2,⋅⋅⋅,tl;x1,x2,⋅⋅⋅,xn)y = F(t_{1},t_{2},···,t_{l};x_{1},x_{2},···,x_{n}) y=F(t1​,t2​,⋅⋅⋅,tl​;x1​,x2​,⋅⋅⋅,xn​)
  其中FFF的形式事先给定,x1,⋅⋅⋅,xnx_{1},···,x_{n}x1​,⋅⋅⋅,xn​是待定参数。有m(>n)m( > n)m(>n)组实验数据:
[t1(i),t2(i),⋯,tl(i);y(i)]T,i=1,2,⋯,m\left[t_{1}^{(i)}, t_{2}^{(i)}, \cdots, t_{l}^{(i)} ; y^{(i)}\right]^{T}, \quad i=1,2, \cdots, m [t1(i)​,t2(i)​,⋯,tl(i)​;y(i)]T,i=1,2,⋯,m
  其中t1,⋅⋅⋅,tlt_{1},···,t_{l}t1​,⋅⋅⋅,tl​是试验中的已知数据,而yyy是实验后得到的结果。 问题是,如何确定nnn个参数x1,x2,⋅⋅⋅,xnx_{1},x_{2},···,x_{n}x1​,x2​,⋅⋅⋅,xn​从而建立起回归方程。把第iii个实验点的自变量 t1(i),t2(i),⋯,tl(i)t_{1}^{(i)}, t_{2}^{(i)}, \cdots, t_{l}^{(i)}t1(i)​,t2(i)​,⋯,tl(i)​代入到其中就会得到相应的函数值。
y~(i)=F(t1(i),t2(i),⋯,tl(i);x1,x2,⋯,xn)\tilde{y}^{(i)}=F\left(t_{1}^{(i)}, t_{2}^{(i)}, \cdots, t_{l}^{(i)} ; x_{1}, x_{2}, \cdots, x_{n}\right) y~​(i)=F(t1(i)​,t2(i)​,⋯,tl(i)​;x1​,x2​,⋯,xn​)
  y~(i)\tilde{y}^{(i)}y~​(i)是真实值yiy^{i}yi的假设值。当然希望它们之差的绝对的假设值。当然希望它们之差的绝对
min⁡∑i=1m[F(t1(i),t2(i),⋯,tj(i);x1,x2,⋯,xn)−y(i)]2\min \sum_{i=1}^{m}\left[F\left(t_{1}^{(i)}, t_{2}^{(i)}, \cdots, t_{j}^{(i)} ; x_{1}, x_{2}, \cdots, x_{n}\right)-y^{(i)}\right]^{2} mini=1∑m​[F(t1(i)​,t2(i)​,⋯,tj(i)​;x1​,x2​,⋯,xn​)−y(i)]2
  是非常自然的事情。这就是最小二乘模型。令
fi(x1,⋯,xn)=F(t1(i),⋯,ti(i);x1,⋯,xn)−y(i)f_{i}\left(x_{1}, \cdots, x_{n}\right)=F\left(t_{1}^{(i)}, \cdots, t_{i}^{(i)} ; x_{1}, \cdots, x_{n}\right)-y^{(i)} fi​(x1​,⋯,xn​)=F(t1(i)​,⋯,ti(i)​;x1​,⋯,xn​)−y(i)
  则最小二乘模型变为
min⁡∑i=1mfi2(x1,⋯,xn)\min \sum_{i=1}^{m} f_{i}^{2}\left(x_{1}, \cdots, x_{n}\right) mini=1∑m​fi2​(x1​,⋯,xn​)
  令x=(x1,x2,⋅⋅⋅xn)Tx=(x_{1},x_{2},···x_{n})^{T}x=(x1​,x2​,⋅⋅⋅xn​)T,f(x)=(f1(x),⋯,fm(x))Tf(x)=\left(f_{1}(x), \cdots, f_{m}(x)\right)^{T}f(x)=(f1​(x),⋯,fm​(x))T则又变成
min⁡∑i=1mf(x)Tf(x)\min \sum_{i=1}^{m} f(x)^{T}f(x) mini=1∑m​f(x)Tf(x)
  求它的最优解即称为求解最小二乘问题,将最优解x=(x1∗,x2∗,⋅⋅⋅xn∗)Tx=(x_{1}^{*},x_{2}^{*},···x_{n}^{*})^{T}x=(x1∗​,x2∗​,⋅⋅⋅xn∗​)T代入到y=F(t1,t2,⋅⋅⋅,tl;x1,x2,⋅⋅⋅,xn)y = F(t_{1},t_{2},···,t_{l};x_{1},x_{2},···,x_{n})y=F(t1​,t2​,⋅⋅⋅,tl​;x1​,x2​,⋅⋅⋅,xn​)中所得y=F(t1,t2,⋅⋅⋅,tl;x1∗,x2∗,⋅⋅⋅xn∗)y = F(t_{1},t_{2},···,t_{l};x_{1}^{*},x_{2}^{*},···x_{n}^{*})y=F(t1​,t2​,⋅⋅⋅,tl​;x1∗​,x2∗​,⋅⋅⋅xn∗​)即为回归方程。显然最小二乘问题是无约束规划,但由于其特殊结构,有其特殊的求解方法。

  当所有的fi(x1,⋯,xn)=F(t1(i),⋯,ti(i);x1,⋯,xn)−y(i)f_{i}\left(x_{1}, \cdots, x_{n}\right)=F\left(t_{1}^{(i)}, \cdots, t_{i}^{(i)} ; x_{1}, \cdots, x_{n}\right)-y^{(i)}fi​(x1​,⋯,xn​)=F(t1(i)​,⋯,ti(i)​;x1​,⋯,xn​)−y(i)均是x1,x2,⋅⋅⋅xnx_{1},x_{2},···x_{n}x1​,x2​,⋅⋅⋅xn​的线性函数时,称为线性最小二乘问题,否则,称为非线性最小二乘问题。

第二类问题:求解方程组(数学问题)
f1(x1,x2,⋯,xn)=0f2(x1,x2,⋯,xn)=0⋮fm(x1,x2,⋯,xn)=0}\left.\begin{array}{l}{f_{1}\left(x_{1}, x_{2}, \cdots, x_{n}\right)=0} \\ {f_{2}\left(x_{1}, x_{2}, \cdots, x_{n}\right)=0} \\ {\vdots} \\ {f_{m}\left(x_{1}, x_{2}, \cdots, x_{n}\right)=0}\end{array}\right\} f1​(x1​,x2​,⋯,xn​)=0f2​(x1​,x2​,⋯,xn​)=0⋮fm​(x1​,x2​,⋯,xn​)=0​⎭⎪⎪⎪⎬⎪⎪⎪⎫​
  如是线性方程组,则为Ax−b=0Ax-b=0Ax−b=0,当R(A)<R(A,b)R(A) < R(A,b)R(A)<R(A,b)时,无解,但确实需要求解它。《线性代数》无办法。如是非线性方程组,在数学上求迭代解也非常麻烦,为此求解
min⁡∑i=1mfi2(x1,⋯,xn)\min \sum_{i=1}^{m} f_{i}^{2}\left(x_{1}, \cdots, x_{n}\right) mini=1∑m​fi2​(x1​,⋯,xn​)
  是非常自然的事情。它也是一个最小二乘问题。

最小二乘问题的解法

(1) 线性最小二乘问题

  当f(x)f(x)f(x)取线性函数形式,即f(x)=Ax−bf(x)=Ax-bf(x)=Ax−b,Am×nA_{m \times n}Am×n​,则线性最小二乘问题为min(Ax−b)T(Ax−b)min(Ax-b)^{T}(Ax-b)min(Ax−b)T(Ax−b)。其极小点的解x∗x^{*}x∗有以下充要条件:ATAx∗=ATbA^{T} A x^{*}=A^{T} bATAx∗=ATb。

(2) 非线性最小二乘问题

  假定选定初始点 x0x_{0}x0​后,经过kkk 次迭代已求得 xkx_{k}xk​。现在考虑 xk+1x_{k+1}xk+1​的求法。与Newton法的基本思想相类似,把 f(x)f(x)f(x)线性化,用线性最小二乘问题的解去逼近非线性最小二乘问题的解。具体做法如下。

  把f(x)f(x)f(x)的第iii个分量在xkx_{k}xk​点处作Taylor级数展开,即
fi(x)≈fi(xk)+∇fi(xk)T(x−xk),i=1,2,⋯mf_{i}(x) \approx f_{i}\left(x_{k}\right)+\nabla f_{i}\left(x_{k}\right)^{T}\left(x-x_{k}\right), \quad i=1,2, \cdots m fi​(x)≈fi​(xk​)+∇fi​(xk​)T(x−xk​),i=1,2,⋯m
  即有
{f1(x)≈f1(xk)+(∂f1(xk)∂x1,⋯,∂f1(xk)∂xn)(x−xk)⋮fm(x)≈fm(xk)+(∂fm(xk)∂x1,⋯,∂fm(xk)∂xn)(x−xk)\left\{\begin{array}{l}{f_{1}(x) \approx f_{1}\left(x_{k}\right)+\left(\frac{\partial f_{1}\left(x_{k}\right)}{\partial x_{1}}, \cdots, \frac{\partial f_{1}\left(x_{k}\right)}{\partial x_{n}}\right)\left(x-x_{k}\right)} \\ {\vdots} \\ {f_{m}(x) \approx f_{m}\left(x_{k}\right)+\left(\frac{\partial f_{m}\left(x_{k}\right)}{\partial x_{1}}, \cdots, \frac{\partial f_{m}\left(x_{k}\right)}{\partial x_{n}}\right)\left(x-x_{k}\right)}\end{array}\right. ⎩⎪⎪⎪⎨⎪⎪⎪⎧​f1​(x)≈f1​(xk​)+(∂x1​∂f1​(xk​)​,⋯,∂xn​∂f1​(xk​)​)(x−xk​)⋮fm​(x)≈fm​(xk​)+(∂x1​∂fm​(xk​)​,⋯,∂xn​∂fm​(xk​)​)(x−xk​)​
  令f(x)=(f1(x),⋯,fm(x))Tf(x)=\left(f_{1}(x), \cdots, f_{m}(x)\right)^{T}f(x)=(f1​(x),⋯,fm​(x))T,
Ak=A(xk)=[∂f1(xk)∂x1∂f1(xk)∂x2⋯∂f1(xk)∂xn∂f2∂f2(xk)∂x2⋯∂f2(xk)∂xn⋮⋮⋮⋮∂fm(xk)∂x1∂fm(xk)∂x2⋯∂fm(xk)∂xn]A_{k}=A\left(x_{k}\right)=\left[\begin{array}{cccc}{\frac{\partial f_{1}\left(x_{k}\right)}{\partial x_{1}}} & {\frac{\partial f_{1}\left(x_{k}\right)}{\partial x_{2}}} & {\cdots} & {\frac{\partial f_{1}\left(x_{k}\right)}{\partial x_{n}}} \\ {\partial f_{2}} & {\frac{\partial f_{2}\left(x_{k}\right)}{\partial x_{2}}} & {\cdots} & {\frac{\partial f_{2}\left(x_{k}\right)}{\partial x_{n}}} \\ {\vdots} & {\vdots} & {\vdots} & {\vdots} \\ {\frac{\partial f_{m}\left(x_{k}\right)}{\partial x_{1}}} & {\frac{\partial f_{m}\left(x_{k}\right)}{\partial x_{2}}} & {\cdots} & {\frac{\partial f_{m}\left(x_{k}\right)}{\partial x_{n}}}\end{array}\right] Ak​=A(xk​)=⎣⎢⎢⎢⎢⎡​∂x1​∂f1​(xk​)​∂f2​⋮∂x1​∂fm​(xk​)​​∂x2​∂f1​(xk​)​∂x2​∂f2​(xk​)​⋮∂x2​∂fm​(xk​)​​⋯⋯⋮⋯​∂xn​∂f1​(xk​)​∂xn​∂f2​(xk​)​⋮∂xn​∂fm​(xk​)​​⎦⎥⎥⎥⎥⎤​
  则上式可写成矩阵-向量形式
f(x)≈f(xk)+Ak(x−xk)f(x) \approx f(x_{k}) + A_{k}(x-x_{k}) f(x)≈f(xk​)+Ak​(x−xk​)
  称AkA_{k}Ak​是向量值函数f(x)=(f1(x),⋅⋅⋅,fm(x))Tf(x)=(f_{1}(x), ···, f_{m}(x))^{T}f(x)=(f1​(x),⋅⋅⋅,fm​(x))T在点xkx_{k}xk​处的Jacobi矩阵。从而求解:
min(fk+Ak(x−xk))T(fk+Ak(x−xk)min(f_{k}+A_{k}(x-x_{k}))^{T}(f_{k}+A_{k}(x-x_{k}) min(fk​+Ak​(x−xk​))T(fk​+Ak​(x−xk​)
  将它的最优解作为下一个迭代点xk+1x_{k+1}xk+1​。显然
min⁡(fk+Ak(x−xk))T(fk+Ak(x−xk))=min⁡(Akx−(Akxk−fk))T(Akx−(Akxk−fk))\begin{array}{l}{\min \left(f_{k}+A_{k}\left(x-x_{k}\right)\right)^{T}\left(f_{k}+A_{k}\left(x-x_{k}\right)\right)} \\ {=\min \left(A_{k} x-\left(A_{k} x_{k}-f_{k}\right)\right)^{T}\left(A_{k} x-\left(A_{k} x_{k}-f_{k}\right)\right)}\end{array} min(fk​+Ak​(x−xk​))T(fk​+Ak​(x−xk​))=min(Ak​x−(Ak​xk​−fk​))T(Ak​x−(Ak​xk​−fk​))​
  是线性最小二乘问题,可由上一段方法求解。因此xk+1x_{k+1}xk+1​必满足方程
AkTAkx=AkT(Akxk−fk)=AkTAkxk−AkTfkA_{k}^{T}A_{k}x=A_{k}^{T}(A_{k}x_{k}-f_{k})=A_{k}^{T}A_{k}x_{k}-A_{k}^{T}f_{k} AkT​Ak​x=AkT​(Ak​xk​−fk​)=AkT​Ak​xk​−AkT​fk​
  如果AkTAkA_{k}^{T}A_{k}AkT​Ak​是可逆的,则:
xk+1=(AkTAk)−1[AkTAkxk−AkTfk]=xk−(AkTAk)−1AkTfkx_{k+1}=\left(A_{k}^{T} A_{k}\right)^{-1}\left[A_{k}^{T} A_{k} x_{k}-A_{k}^{T} f_{k}\right]=x_{k}-\left(A_{k}^{T} A_{k}\right)^{-1} A_{k}^{T} f_{k} xk+1​=(AkT​Ak​)−1[AkT​Ak​xk​−AkT​fk​]=xk​−(AkT​Ak​)−1AkT​fk​
  这相当于xk+1=xk+pkx_{k+1}=x_{k}+p_{k}xk+1​=xk​+pk​搜索方向为pk=−(AkTAk)−1AkTfkp_{k}=-(A_{k}^{T}A_{k})^{-1}A_{k}^{T}f_{k}pk​=−(AkT​Ak​)−1AkT​fk​步长为1的过程。

  称它为非线性最小二乘问题的Gauss-Newton迭代公式,而由这个公式所产生的算法称为Gauss-Newton法。当f(x)f(x)f(x)满足一定的条件,并且x0x_{0}x0​充分靠近极小点x∗x^{*}x∗时,Gauss-Newton法是收敛的。

  需要指出的是,即使在每次迭代中AkTAkA_{k}^{T}A_{k}AkT​Ak​都是可逆的,也保证不了算法是下降算法。特别是当初始点x0x_{0}x0​远离极小点x∗x^{*}x∗时,算法很可能发散。但是,当AkTAkA_{k}^{T}A_{k}AkT​Ak​可逆时,所确定的pkp_{k}pk​是目标函数在点xkx_{k}xk​处的下降方向。

我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

无约束最优化(五) 最小二乘法问题的解法相关推荐

  1. 最优化方法笔记2:多维无约束最优化

    最优化方法笔记2:多维无约束最优化 1 多维无约束最优化问题(待更新) 1.1 随机搜索法 1.2 共轭方向法(鲍威尔(Powell方法) 1.3 梯度法 1.2.1 最速上升法 1.2.2 改进的梯 ...

  2. FLYMCU芯片超时无应答的另一种解法

    常规的,是那些设置,或者跳线帽没接好,会导致这个问题 然后还要一种懒人行为,懒得拆stlink就只拔了stlink和电脑的那根线,STLINK断电连在开发板上也会出现这个问题,拔了就好了

  3. matlab无约束最优化的一般算法流程图及代码(进退法,Fibonacci,黄金分割法,抛物线法)

    本实验中函数用单独function计算 %函数[fx]=f(x) function fx=f(x) fx=x.^4-4*x.^3-6*x.^2-16*x+4; 一,进退法,Fibonacci,黄金分割 ...

  4. 我爱自然语言处理网文章汇总

    斯坦福大学深度学习与自然语言处理第三讲:高级的词向量表示 斯坦福大学深度学习与自然语言处理第二讲:词向量 斯坦福大学深度学习与自然语言处理第一讲:引言 用MeCab打造一套实用的中文分词系统(三):M ...

  5. 累计销售突破百万是哪一天?SQLSQL累计问题之金额累加的五种解法

    累计/累加问题是数据分析师经常遇到需要处理的情况,比如根据二八法则,百分之二十的产品销售数占到总额的百分之八十,就需要先求数额累计.这个问题在Excel中实现很简单,但是如果要用SQL取数就没有那么容 ...

  6. 数值计算之 最小二乘法(3)最小二乘的矩阵解法

    数值计算之 最小二乘法(3)最小二乘的矩阵解法 前言 回顾最小二乘的线性解 列满秩矩阵的最小二乘解法 Cholesky分解求线性最小二乘解 QR分解求线性最小二乘解 亏秩矩阵的最小二乘解法 SVD分解 ...

  7. 五猴分桃题解析(C语言5种解法)

    五猴分桃题解析(C语言 5 种解法 ) 本人喜欢探索各种算法.80年代听闻五猴分桃题,颇感兴趣.曾尝试求解,得小学算术解法和迭代(递增,递减)算法.那时还没有PC是用算盘计算的,那"二弹一星 ...

  8. [数值计算-17]:最小二乘法的求解2 - 二元二次线性方程组求解

    作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址:https://blog.csdn.net/HiWangWenBing/article ...

  9. 抖音,才是阅后即焚的无压力社交!

    刷抖音,发抖音. 日常欢笑发抖音,重大节点发抖音.我们在抖音发布视频晒生活,在抖音嘻哈唱跳跟风娱乐.就好像,我们五年前用朋友圈一样. 现在提到朋友圈,第一反应往往是社交压力,是设置可见不可见三日半年的 ...

  10. 机器人中的数值优化(三)—— 无约束最优化方法基础、线搜索准则

       本系列文章主要是我在学习<数值优化>过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程<机器人中的数值优化>和高立编著的<数值最优化方法>等,本系列文 ...

最新文章

  1. ASP.NET禁用视图状态
  2. 微信小程序asp服务器架设,asp写的微信小程序支付demo-服务器端是asp+mdb的
  3. MultiProcess-MultiThread
  4. kaldi在java中运行_ubuntu下kaldi的安装以及实例的运行
  5. prometheus变量_Prometheus 数据可视化
  6. 前端学习(3176):react-hello-react之脚手架配置2
  7. ibatis mysql 同时删多个表报错_MySQL中Multiple primary key defined报错的解决办法
  8. 分布式共识算法 (Consensus Algorithm)
  9. l360清零软件无响应_爱普生l360清零软件官方版
  10. 第三章 PCB 封装库绘制
  11. Spring-cloud学习教程视频
  12. 使用微软官方方法制作纯净WinPE
  13. 远控免杀专题文章(4)-Evasion模块免杀(VT免杀率12/71)
  14. 多个同1div float left换行题
  15. jQuery选择器ID、CLASS、标签获取对象值、属性、设置css样式
  16. c语言将字符输出到屏幕中央,C语言printf“()”真的会将输出发送到屏幕吗?
  17. raptor的基本符号有_Raptor 基本符号有( )。
  18. 怎么从Chrome浏览器中导出扩展程序为crx文件?
  19. Windows 11配置WSL及Linux子系统安装
  20. 小伙利用VC++打造泡泡堂游戏,遭粉丝疯狂打call

热门文章

  1. 几种常用的视频接口(端子)
  2. 计算机的二进制,十六进制等的数值概念
  3. web安全day20:今天讲清楚漏洞和木马的区别,最后一个实验演示通过445端口控制服务器
  4. python自动登录百度_Python实现自动登录百度空间的方法
  5. 游戏开发之C++面向对象模型(C++类中成员变量和成员函数的存储原理及this指针)(C++基础)
  6. LAMP架构调优(七)——Apache Prefork模式调优
  7. DHCP中继原理和配置(含常见配置配置误区)
  8. 文件比较与同步工具——FreeFileSync
  9. C# 两个datatable中的数据快速比较返回交集或差集
  10. webpack多环境(dev stg prd qa)打包问题