上次写了篇文章来阐述几何投影与傅里叶级数的联系,今天我想谈谈几何投影与最小二乘法的联系,这种联系的好处是不管多复杂的公式,又可以被瞬间记住了。本文的中心思想是:最小二乘法中的几何意义是高维空间中的一个向量在低维子空间的投影。这个思想在MIT教授Gilbert Strang的线性代数的公开课程上有讨论,这里我会把这个思想详细的阐述一遍。文章最后会把傅里叶级数和最小二乘法放在一起做个比较和总结,希望大家能体会到两个看起来风马牛不相及的概念其实是如此相似。

1. 三维空间的向量在二维平面的投影

首先我们需要先复习一下三维空间的向量在二维平面的投影。这是高维空间的向量到低维子空间投影的最简单的例子,理解了三维到二维的投影,更高维的情况大家是很容易扩展的,因为二维子空间(即二维平面)和更高维子空间都可以由矩阵来表示。这里我不用二维到一维的投影做例子是因为这个时候低维子空间只是由一个向量表示,并不具备矩阵的一般性。

如图片1所示,在三维空间中给定一个向量 u,以及由向量 v1,v2 构成的一个二维平面,向量 p 为 u 到这个平面的投影,它是 v1,v2 的线性组合:

(1)

我们要回答的问题是:如何求出 c1,c2 的表达式?相信看过我上篇日志的朋友都知道怎么求了,只要利用 u - P 这个向量分别与 v1,v2 垂直这两个条件,就能求出 c1,c2。用数学语言来表示,就是下面这两个式子。 (2)

为了方便之后扩展到更高维的情况,我们把它们合并成一个式子,令 V = [v1,v2],则 (2) 式等价于

(3)

把 (1) 式带入 (3) 式,然后矩阵转置(transpose)一下(这么做只是为了方便求解),得到以下这个式子

(4)

这里的 c = [c1,c2]T。所以系数 c 的表达式为

(5)

注意这个表达式明显适用于更高维的情况。如果我们用二维到一维的投影来举例,那么上式中的 VTV (这里的T是矩阵转置,本来在word里是上标的,传到人人格式就变了)将会出现在分母当中,就像上篇日志的 (3) 式那样,这个形式就太有局限性了。另外值得注意的是我们考虑的 v1,v2 不是正交的,所以 c1,c2 不能由 u 到 v1,v2 分别投影来求。

2. 最小二乘法

我们来回顾一下什么是最小二乘法。假设我们手上有n组成对的数据,{(xi,yi): i = 1, 2, ... , n},为了探究 y 变量和 x 变量的关系,我们希望用一个多项式来匹配它,可是多项式中的系数怎么确定呢?拿来拼凑肯定是不行的,最小二乘法告诉我们,这个多项式的系数应该让每个点的“误差”的平方之和最小。举个简单的例子,如下图所示,我可以用一个线性函数来匹配这些数据(也叫做线性回归),也就是

(6)

那么每个点的误差可以写成

(7)

我们想要最小化误差的平方和,也就是下面这个关于 a0,a1 的函数(注意,xi,yi都是已知的数据):

(8)

这是个函数求极值的问题,我们很快想到可以用微积分中的求导为零来列出两个方程,从而求得 a0,a1。这里我就不罗列整个过程了,只给出最后的答案,大家有兴趣可以自己演算一下。答案可以写成下面这个矩阵形式。

(9)

可以想象,如果是2次,3次, 甚至更高次多项式,系数的推导会变得更复杂。接下来我要做的事就是用几何投影的角度来看最小二乘法,而且不管多少次的多项式,系数的表达式都可以马上写出。

还是以上面这个线性函数为例,我们现在重新审视 (8) 式。各项的平方相加这件事情,其实我们不是陌生的,还记得怎么算向量的长度么?不就是各项平方相加,再开根号么?你现在应该看出来 (8) 式究竟是什么东西了,它就是下面这个向量的长度平方:

(10)

看不出来的同学再仔细看看 (10),它的长度平方就是 (8) 式!把误差的平方和看成这个向量的长度平方这件事情有什么好处呢?请容许我慢慢解释。首先我们知道要让这个向量长度平方最小,等同于让它的长度最小。我们仔细看下 (10) 这个向量的长度究竟代表了什么意思,先看小括号里是什么东西,它是两个向量 [1, ... , 1]T 和 [x1, ... , xn]T 的线性组合,换句话说,它是这两个向量构成的二维子空间(想成一个平面就可以)的任意一点。所以 (10) 这个向量的长度表示向量 [y1, ... , yn]T 到这个二维子空间任意一点的距离!把 (10)这个向量长度最小化的意思是:寻找在 [1, ... , 1]T 和 [x1, ... , xn]T 构成的二维子空间上的一个点,使得向量 [y1, ... , yn]T 到这个点的距离最小。怎么找这个点呢?根据第一部分的铺垫,相信你已经有答案了,只要做一个几何投影就好了。

我们只要把图片1中的 u 替换成 [y1, ... , yn]T ,把 v1,v2 分别替换成  [1, ... , 1]T 和 [x1, ... , xn]T, 系数 c1 和 c2 也就是我们要求的 a0,a1,可以马上由 (5) 式得出

(11)

这和之前求得的 (9) 式是完全一样的!令人感到惊喜的是,全程我们都没有用到微积分,我们需要的知识只是简单的几何投影!

如果你看懂了全过程,相信你也可以轻易的把这个方法应用到更高阶的多项式,我们只要在 (11) 式中相应的更改子空间就好了,推导是瞬间完成的。当然我假设你能用电脑来计算矩阵求逆。

最后我总结一下,最小二乘法的几何意义是高维空间的一个向量(由y数据决定)在低维子空间(由x数据以及多项式的次数决定)的投影。我们不妨回顾一下傅里叶级数的几何意义是:无穷维空间的一个函数在同一空间中按照一组正交基(也就是一系列新的坐标轴)展开,这里的展开可以看成是函数先在同一空间投影到其自身,然后这个函数在各个新坐标轴上分别投影决定了展开系数(也就是新坐标)。最小二乘法和傅里叶级数,两个看起来完全不同的概念,从几何的角度来看是极其相似的,前者是高维到低维的投影,后者是无穷维到无穷维的投影;它们的区别是,前者在投影的过程中维度变少了,这可以理解为信息变少了,因为我们用了简单的多项式来匹配一堆可能蕴含复杂关系的数据,后者是同一空间中的投影,只是换个坐标体系而已,维度不变,这可以理解为信息不增也不减,因为一个函数的傅里叶级数只是它的另一个表达方式,两者包含的信息完全是等价的。

我在写完这篇文章后的感悟是,数学中总是存在着许多看似不同,其实却很相似的概念。比如最小二乘法和傅里叶级数都可以看成是几何投影,对函数求导和对向量乘以矩阵都可以看成是线性变换,一个数有正负号而一个矩阵也有其正定性,矩阵和常微分方程都有特征值问题,一次线性常微分方程和一次线性常微分方程组的求解都可以用积分因子的方法(不知道大家知不知道这个,我第一次发现的时候感觉非常惊喜),线性时不变系统的反应和概率中多个独立随机变量之和都能写成卷积的形式,扩散方程中的极大原理(maximum principle)和复变函数中的最大模原(maximum modulus principle)有着极其相似的描述,光学和力学中也都有最小作用量原理,统计力学和信息论中的熵(entropy)这个概念都是不确定性的一种度量,信号处理和量子力学中存在着看起来截然不同但是本质却相同的不确定性原理。人们有时也会人为的创造相似的概念,从大自然当中去寻找灵感,比如算法中的遗传算法借鉴了达尔文进化论的思想,模拟退化算法借鉴了金属冷却的概念,机器学习借鉴了人类的学习过程,控制论由维纳最初提出,他把动物有目的的行为赋予机器从而促使了一门新学科的诞生。所有这些相似性,都能让学习的过程增添许多趣味,也使我们更好的去理解这个世界。在以后的日志中我会陆续对上面提到的这些相似概念做一些专题讨论,希望大家继续关注。

转载于:https://www.cnblogs.com/hxjbc/p/7443630.html

最小二乘法的几何意义相关推荐

  1. 【白板推导系列笔记】线性回归-最小二乘法及其几何意义最小二乘法-概率视角-高斯噪声-MLE

    D={(x1,y1),(x2,y2),⋯,(xN,yN)}xi∈Rp,yi∈R,i=1,2,⋯,NX=(x1x2⋯xN)T=(x1Tx2T⋮xNT)=(x11x12⋯x1px21x22⋯x2p⋮⋮⋮x ...

  2. 最小二乘法及其几何意义

    对于一组给定的数据,我们需要通过机器学习算法去拟合得到一个模型,假定给定数据Xi为P维,一共N个数据,则数据集大小为N*P,Y为对应的标签,大小为N*1,如下图: 不想打字了,直接放图吧(频率): 概 ...

  3. (数学)最小二乘的几何意义及投影矩阵

    主要内容: 什么是最小二乘 最小二乘的几何意义 正交投影矩阵 什么是最小二乘? 假设我们手上有n组成对的数据,{(xi,yi):i=1-n},为了探究y变量与x变量的关系,我们希望用一个多项式来匹配它 ...

  4. python最小二乘法_最小二乘法(least sqaure method)

    文章结构如下: 1: 最小二乘法的原理与要解决的问题 2 :最小二乘法的矩阵法解法 3:最小二乘法的几何解释 4:最小二乘法的局限性和适用场景 5: 案例python实现 6:参考文献 1: 最小二乘 ...

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

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

  6. 线性代数 - 矩阵形式下的最小二乘法

    20201001 - 0. 引言 最近在看<异常点检测>的时候,其中在PCA部分(准确来说是前面一小节)在进行推导的时候,使用了最小二乘法.其实这个东西本质上并不难,但是让我比较尴尬的是, ...

  7. [数值计算-16]:最小二乘法的求解1 - 一元二次方程解析法求解

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

  8. 【sklearn】线性回归、最小二乘法、岭回归、Lasso回归

    文章目录 机器学习的sklearn库 一.回归分析 <1.1>线性回归 1.1.1.Python实现线性回归 <1.2>最小二乘法 1.2.1.MATLAB实现最小二乘法 1. ...

  9. 线性代数学习笔记5-2:正交投影、投影矩阵、最小二乘法LS、A^T A

    正交投影 二维空间的投影 将向量投影到已知子空间,用线性代数的语言就是:误差向量和该子空间正交 向量的正交,可简单理解为两个向量在几何上垂直,即点积为零:x⋅y=0\boldsymbol x\cdot ...

  10. 一文让你彻底搞懂最小二乘法(超详细推导)

    要解决的问题 在工程应用中,我们经常会用一组观测数据去估计模型的参数,模型是我们根据先验知识定下的.比如我们有一组观测数据(xi,yi)(x_i,y_i)(xi​,yi​)(一维),通过一些数据分析我 ...

最新文章

  1. php读取数组修改内容,php 数组如何修改值
  2. MQTT协议通俗讲解
  3. 《全民捕鱼》游戏分析
  4. greaterT()和lessT()
  5. Bash脚本教程之命令提示符
  6. int(a) 和 (int ) a 及 数据存储地址的探究
  7. python编程挑战——使用python实现恩格玛机(1)
  8. leetcode @python 120. Triangle
  9. java中的异常处理代码,java_深入剖析Java中的各种异常处理方式,1. 调试追踪代码:public s - phpStudy...
  10. 几何畸变图像恢复 openCV3 - 数字图像处理作业3
  11. 12306bycloud,免费开源抢票软件,无需安装,全平台可用
  12. android报警声音
  13. 【STM32F407的DSP教程】第1章 初学数字信号处理准备工作
  14. 优化网站提高打开速度
  15. java 根据指定链接生成二维码
  16. route命令添加永久路由
  17. IDM下载器 v6.38.20 最新中文版 免费的多线程下载工具
  18. 数据查询和业务流分开_滴滴实时数仓逐层剖解:实时与离线数据误差0.5%
  19. 用Matlab编程实现图像的傅立叶变换和逆变换并显示出来
  20. 第十三周项目一(4)——验证平衡二叉树相关算法

热门文章

  1. Android游戏破解练习-大圣降魔录
  2. Java中的求和公式_Sympy codegen:求和索引函数
  3. awesome-python(python集合框架)
  4. H5标签在页面被转译
  5. 小程序neverland test
  6. 小蚂蚁学cURL笔记(1)
  7. 实验室设备管理系统(C语言实现)
  8. Java表格Table冻结前几列或者前几行,其余行或列自由滑动。
  9. Debian安装和配置CA证书
  10. c++设计某小型公司的 employee(人员)类