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

2023-11-06

20201001 -

0. 引言

最近在看《异常点检测》的时候,其中在PCA部分(准确来说是前面一小节)在进行推导的时候,使用了最小二乘法。其实这个东西本质上并不难,但是让我比较尴尬的是,很多线性代数的东西有些遗忘了,好在最近直截了当的复习让大部分知识都回顾了。
前一篇文章中《异常检测:从异常检测到PCA再到特征向量》已经记录了马哈拉诺比斯距离的具体内容,本文将阐述最小二乘法的相关内容。

1. 问题

关于具体的推导过程就不说了,各种公式都有,直接的结论也都有。但是这里之前的时候,产生了一个问题。本来最小二乘法是利用垂直距离来定义的(也就是预测变量与相应的平面与坐标中平行的距离),但是有些书上都提到了投影距离。然后他们也用了最下二乘法来分析。这让我很疑惑,特别是直接在百度上搜索中的一些结果,最后都出现了一个投影距离的概念。

我的疑惑就是,本来这是一个垂直的直线距离,为什么后来变成了投影距离呢?如果他们两个仅仅是在结果上一样,也无可厚非,但是怕就怕在他们在讲解的时候就直接将这部分内容融合在了一起。

2. 异常检测中的线性模型

在《异常点检测》这本书中,第三小节针对线性进行展开讲解。最开始的模型就是通过选择一个变量作为因变量,然后其余维度的变量都是自变量来建立一个线性模型,当然这是建立在他们之间存在这种线性关系的基础上。
y j = ∑ i = 1 d w i x j i + w d + 1 + ϵ j ∀ j ∈ { 1 , 2 , . . . , N } y_j = \sum_{i=1}^dw_ix_{ji}+w_{d+_1}+\epsilon_j \quad \forall j \in \{1,2,...,N\} yj=i=1dwixji+wd+1+ϵjj{1,2,...,N}
上述公式的具体含义,不用具体展开,不管是什么书,如果他们写成这种方式的话,基本上都是这个样子。而最小二乘法在求解这个线性方程组的系数的时候,目标函数就是最小化 Σ j = 1 N ϵ j 2 \Sigma_{j=1}^N\epsilon_j^2 Σj=1Nϵj2误差 ϵ \epsilon ϵ在二维平面上,就是预测值与实际值平行于 y y y轴的直线距离,不是垂直距离,也不是水平距离。这里强调这个问题,暂时没有什么意义,这本来就是我们直观的感觉嘛,再往后看才能明白具体的对比。
将上述方程组写为具体的矩阵形式,这里就按照书上的习惯来写。
y ‾ ≈ D W ‾ T \overline{y}\approx D\overline{W}^T yDWT
这个公式好像看起来跟前面的方程不太一样,所以需要进行进行一些解释。 D D D N × ( d + 1 ) N \times(d+1) N×(d+1)大小的矩阵, W W W ( d + 1 ) (d+1) (d+1)维的横向量。而根据前面的说法,本质上要最小化的目标函数应该是 ∥ D W ‾ T − y ‾ ∥ 2 \|D\overline{W}^T-\overline{y}\|^2 DWTy2。采用平方的形式,是为了解决绝对值形式在原点不可导的问题。那么对上述目标函数进行求导,也就是对向量进行求导(具体原理这里不再赘述)得到:
2 D T D W ‾ T − 2 D T y ‾ = 0 2D^TD\overline{W}^T-2D^T\overline{y}=0 2DTDWT2DTy=0
求解可得,最优的 W W W的解应该是,
W ‾ T = ( D T D ) − 1 D T y ‾ \overline{W}^T=(D^TD)^{-1}D^T\overline{y} WT=(DTD)1DTy
公式中涉及矩阵求逆的过程,所以必然是要保证其是可逆的。从这个角度来看,利用矩阵形式对参数进行求解,到此也就结束了。这里是通过矩阵微分的方式,直接求解得到了相应的参数矩阵,文章[1]的推导过程更为详细,可以具体查看。

3. 问题的产生

前面的内容非常顺其自然:一系列的过程并求导,得到了相应的结果,结果也理所当然。问题在于,在通过搜索了很多内容之后,都提到了投影矩阵的概念,然后就将投影矩阵和最小二乘法结合在了一起。最大的问题,他们通过着这种投影矩阵的概念,传达出来一个意思,这个距离实际上并不是与坐标轴平行的竖直距离,而是点到这个线的垂直距离。那么这跟实际我的理解,最小二乘法的概念就不对了。所以这里要解决的问题:正交矩阵和最小二乘法到底什么关系呢?
不过,我看了很多博客、看了很多知乎的内容之后,就感觉应该是我有什么地方理解错了,其实前面说的肯定是直线距离没错,但是投影的概念也没错,就差这么一个桥梁,怎么把这部分内容给衔接上。

我要找的东西,就是为什么说这个东西是投影距离,如果找到了这个,可能就把所有的问题解决,我本身没有建立好这个具体的映射关系,从线性代数到实际的几何形状的映射

4. 问题的解决

看了不少资料之后,感觉大致上找到了相应的答案。而且,我有一种强烈的感觉,我好像本科的时候就遇到过这个问题,但是肯定是解决了。但是这么多年过去了,自然也都忘了。

答案:垂直或者说正交到底是谁跟谁之间的垂直,这个很关键。从一开始的时候,我都觉得是 y y y点直接向直线作垂线。但实际上, ∣ A x − b ∣ 2 |Ax-b|^2 Axb2的最小化,在原始的坐标坐标系下,的确是平行于 y y y轴的竖直距离。既然已经确定了公式的确是没有错误的,那也就是说,前面不理解的垂直距离,是没有找到这个直线到底对应的是谁和谁的垂线。

那么也就是说,我知道搞清楚,到底这个东西是谁和谁的垂线。本来要求解的方程是: A x = b Ax=b Ax=b,假设 A A A n × s n\times s n×s的矩阵,而 x x x s × 1 s\times 1 s×1的向量, b b b n × 1 n\times 1 n×1的向量。本身这个方程肯定是无解的,求解的方法就是要找一个最近的点 b ‾ \overline{b} b,尽可能让这个部分误差最小,此时方程变为 A x ‾ = b ‾ A\overline{x}=\overline{b} Ax=b,其中 A A A b b b都是已知的,那么要求解的东西就是 x ‾ \overline{x} x,而这个最近的点 b ‾ \overline{b} b,就是 b b b A A A投影之后获得的最近的点。而通过投影矩阵的运算的话,投影矩阵就是
P = A ( A T A ) − 1 A T , x = ( A T A ) − 1 A T b P=A(A^TA)^{-1}A^T,x=(A^TA)^{-1}A^Tb P=A(ATA)1ATx=(ATA)1ATb
那么从这里来看,答应已经很明确了。也就是说,实际上求解的最小距离,应该是向量 b b b向矩阵 A A A进行投影,假设本身求解的是二维平面的线性方程,也就是要求二维情况的拟合曲线。方程可以化为如下形式:
A x = b , ( a 1 , a 2 ) ( x 1 , x 2 ) T = b Ax=b,(a_1,a_2)(x_1,x_2)^T=b Ax=b,(a1,a2)(x1,x2)T=b
x 1 a 1 + x 2 a 2 = b x_1a_1+x_2a_2=b x1a1+x2a2=b
其中 a 1 , a 2 a_1,a_2 a1,a2分别是 A A A的列向量,那么也就是说,实际上求的是向量 b b b a 1 , a 2 a_1,a_2 a1,a2展开的向量子空间的最小点,结合看了这么多的投影矩阵的概念,就是要找这个 x x x的具体系数。


虽然前面的内容上来看,似乎已经找到了答案,但是还是没办法把这个直线距离映射到其中所说的投影距离。我感觉应该很多人都应该有这种疑惑,但是网上却找不到相关的资料。
本质上,我的问题就是说:

为什么在二维平面上看到的与坐标轴平行的数值距离,会被解释为一个向量的投影距离。

我觉得,这部分内容如果还想深入了理解,还是需要把线性代数中的东西再具体复习一遍,这里还是留下了一个问题供后续研究。

4.1 参考内容记录

在学习这部分内容的时候,阅读了大量的文章,这里记录几篇比较有意义的。
文章[2-3]是一篇读书报告和一个PPT,读书报告中所解释的,从向量上的意义,求解他们相减之后的和,这个很容易理解;PPT中从定义上说明了,本质上是一个向量到子空间的距离。
文章[4-6]也是比较不错的文章,其中我觉得文章[5]中的说法很好,最小二乘法的几何意义是高维空间的一个向量(由y数据决定)在低维子空间(由x数据以及多项式的次数决定)的投影。他这里的耍哦发本身就是我前面进行推导的时候所采用的思想。但是我还是理解不了为什么在实际图上就不对呢?!

(本人非专业人士,文中所采用的公式有些没有具体进行考究,可能不正确,谨慎使用)

参考

[1]矩阵形式下的最小二乘法推导
[2]矩阵投影与最小二乘方法
[3]最小二乘法向量到子空间的距离
[4]线性代数笔记18——投影矩阵和最小二乘
[5](数学)最小二乘的几何意义及投影矩阵
[6]投影矩阵与最小二乘法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性代数 - 矩阵形式下的最小二乘法 的相关文章

  • 2的31次方和3的21次方哪个大,123组成最大的数是多少?

    123这三个数字组成最大的数是什么数 面试官告诉小孙 123这三个数字组成最大的数是什么数 我希望你能够在5分钟之内回答出来 小孙当时连想都没有想 123组成的最大数字 当然就是123了 当小孙把这个答案告诉面试官的时候 面试官摇摇头 然后
  • 使用克拉默法则进行三点定圆(三维)

    目录 1 三维圆 2 python代码 3 计算结果 本文由CSDN点云侠原创 爬虫网站请自重 1 三维圆 已知不共线的三个点 设其坐标为 x 1 y 1
  • 树状数组理论与实现

    理论 http www cnblogs com zhangshu archive 2011 08 16 2141396 html 今天听了大神的讲课 了解了点东西 发现是之前学过的 于是试着再写一遍 include
  • 矩阵求导常用公式

    矩阵求导常用公式 1 引言 2 向量的导数 2 1 向量对标量求导 Vector by scalar 2 2 标量对向量求导 Scalar by vector 2 3 向量对向量求导 Vector by vector 3 矩阵的导数 3 1
  • 线性代数---之正交向量

    转载 百度百科 正交向量 编辑 本词条由 科普中国 百科科学词条编写与应用工作项目审核 正交向量 是一个数学术语 指点积为零的两个或多个向量 几何向量的概念在 线性代数中经由抽象化 得到更一般的向量概念 此处向量定义为 向量空间的元素 要注
  • 线性代数——二次型

    一 通过矩阵研究二次方程 二次型的定义 把含有n个变量的二次齐次函数或方程称为二次型 例如 二次型可以用矩阵来表示 可以表示为 更一般的情况 可以表示为 令 则上式表示为 这就是我们常见的二次型表示方式 在 Linear Algebra a
  • R语言绘图:实现数据点的线性拟合,进行显著性分析(R-squared、p-value)、添加公式到图像

    最近在做关于数据点线性拟合相关的研究 感觉R语言在这方面很方便 而且生成的图片很漂亮 所以在这里和大家分享一下代码 这是别人所绘制的拟合图像 很漂亮 自己也用iris鸢尾花数据集进行一个线性拟合看看 拟合线性模型最基本的函数就是lm 格式为
  • Phase Sensitive Filter

    复数转换 如下图复数 由于 所以 这个就是复数的三角形式 这里 是模 是辅角 在讨论音频频域 即stft变换后的复数时 分别称为幅值和相位 根据欧拉公式 其中i是虚数符号 可得 这个公式可以方便地把幅值和相位还原回复数 进而做istft 将
  • 完美数

    按照毕达哥拉斯的说法 数的完满取决于它的真因数 即除了自身以外的约数 例如 12的因数是 1 2 3 4 和 6 当一个数的各因数之和大于该数本身时 该数称为 盈 数 于是 12 是一个盈数 因为它的因数加起来等于 16 另一方面 当一个数
  • 我的百度经验目录

    百度经验目录 进一步了解基于Mathematica的图像特征检测方法 http jingyan baidu com article a501d80c44a372ec630f5eb4 html 怎么把python代码打包成exe文件 http
  • C++ 代码实现定义法计算行列式的值

    一 前言 最近在捣鼓C 学到线代的行列式之后就想着来捣鼓一下求行列式的值 主要原因是当时群里有人在捣鼓着用上下三角来求值 所以我最后就去玩定义法求值了 二 n阶行列式的定义 从定义中我们可以看出值计算公式由三个部分组成 分别是逆序数r 行列
  • 给定一个序列快速计算不同二叉树的个数

    给定一个序列求二叉树的个数 就相当于n个数进栈然后得到一个出栈序列种树 假设用f n 表示n个数的出栈序列数的种树 假设第一个出栈序数是k 则k将1 n的序列分为两个序列 其中一个是1 k 1 序列个数是k 1 另一个是 k 1 n 序列个
  • 线性代数-初等行变换与初等行矩阵

    定义 初等行变换 在矩阵的行上进行倍加 倍乘 对换变换 初等行矩阵 在单位矩阵上应用初等行变换得到的矩阵 初等行矩阵乘上矩阵 就相当于在矩阵上实施了对应的初等行变换 以矩阵为例 倍加 将第二行乘2加在第三行上 r3 2 r2 r3 所用的初
  • 模2除法——用非常直观的例子解释

    前言 差错检测中有名唤CRC之方法 但很多学习者难以理解其运行原理 特别是模2除法 故博主将其原理以示例方式记录下来 以便同道稍作借鉴 因博主水平有限 难免会出现错误 希各位能多多包涵和给予建议 注意 本博客假设各位已理解CRC原理但对模2
  • lyapunov直接法

    文章目录 定义6 6 Lyapunov第一定理 Lyapunov第二定理 用于刻画渐进稳定 内积分析 定义6 6 Lyapunov第一定理 假设 A C A subset C A C是闭的 如果存在A的邻域D和满足下面两条件的连续函数
  • 矩阵的分解——LU分解

    LU分解 LU分解是矩阵分解的一种 将一个矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积 有时需要再乘上一个置换矩阵 LU分解可以被视为高斯消元法的矩阵形式 在数值计算上 LU分解经常被用来解线性方程组 且在求逆矩阵和计算行列式中都是一个关
  • matlab 计算点云中值

    目录 一 概述 1 算法概述 2 主要函数 二 代码示例 三 结果展示 四 参数解析 输入参数 输出参数 五 参考链接 本文由CSDN点云侠原创 原文链接 如果你不是在点云侠的博客中看到该文章 那么此处便是不要脸的爬虫 一 概述
  • TechWiz LCD 2D应用:多畴IPS仿真

    1 建模任务 1 1 模拟条件 模拟区域 0 10 边界条件 Periodic 偏移角度 12 Domain A 12 Domain B 单位长度 0 5
  • 离散数学知识点-期末复习

    目录 一 利用真值表求主析取范式 主合取范式 1 例题 二 推理证明 1 推理规则 2 例题 三 符号化命题 四 有穷集的计数 1 包含互斥原理 2 例题 1 文氏图法 2 包含互斥原理法 五 关系的闭包 1 三种闭包 2 Warshall
  • MIT_线性代数笔记:第 23 讲 微分方程和 exp(At)

    目录 微分方程 Differential equations 矩阵指数函数 Matrix exponential e A t e At

随机推荐

  • 清华大模型人才遭哄抢!盘点5大学术重镇10大产业玩家

    衡宇 发自 凹非寺量子位 公众号 QbitAI 做类ChatGPT产品 组中国版OpenaAI恐怕是先当下最最人尽皆知的创投野心 有人官宣标榜放话 也有VC开始把视角投向产学研转换的大模型项目 或许能更有基础一些 其中 清华大学显然处于身负
  • 刷题之合并二叉树

    给定两个二叉树 想象当你将它们中的一个覆盖到另一个上时 两个二叉树的一些节点便会重叠 你需要将他们合并为一个新的二叉树 合并的规则是如果两个节点重叠 那么将他们的值相加作为节点合并后的新值 否则不为 NULL 的节点将直接作为新二叉树的节点
  • sedona error : java.lang.NoClassDefFoundError: org/opengis/referencing/FactoryException

    具体原因不详 但笔者增加了一个依赖解决了
  • Python 2.7 requests库POST请求体中有中文的处理方法

    Python 2 7 requests库发送POST请求 请求体是JSON格式 JSON字符串中包含中文 可以如此处理 Python 2 7 默认的源码文件编码是 ASCIl 如果你想在源代码中使用非 ASCII 字符 比如中文 你需要在文
  • 怎样更改Jupyter NoteBook默认的工作空间

    1 首先打开命令窗口 输入 jupyter notebook generate config 2 根据上面得到的路径 找到jupyter notebook config py这个配置文件 3 用记事本打开 查找directory 4 把前面
  • 内容安全综合实践-数字水印

    DCT实现数字水印功能模块 1 整体效果 功能 添加和提取字符水印 添加和提取图片水印 整体效果 2 数字水印的基本特点 1 不可见性 在宿主数字媒体中嵌入一定数量的附加信息后 不能引起明显的将质现象 隐藏的数据不易觉察 即无法人为的看见或
  • Java中的关键字

    Abstract 表明类或者成员方法具有抽象属性 Assert 用来进行程序调试 Boolean 基本数据类型之一 布尔类型 Break 提前跳出一个块 Byte 基本数据类型之一 字节类型 Case 用在switch语句之中 表示其中的一
  • 蓝桥杯算法模板

    模拟散列表 单链表 import java io import java util Scanner public class dlb private static int N 100010 private static int head p
  • STL之mismatch

    判断两个区间的第一个不匹配点 返回一个由两个迭代器组成的pair 其中第一个迭代器指向第一个区间的不匹配点 第二个迭代器指向第二个区间的不匹配点 如果都匹配 返回的是指向两个区间的last迭代器 quality 1 采用默认operator
  • VUE element-ui 之button按钮之间切换时单个按钮持续聚焦状态实现(点击按钮聚焦,仅当点击其他按钮时,之前的按钮会失焦,当前按钮聚焦)

    多个按钮切换时 页面切换 假设不做处理会出现点击按钮时聚焦 离开按钮点击任何地方 鼠标单击 按钮会失焦 我这里要求实现点击按钮聚焦 仅当点击其他按钮时 之前的按钮会失焦 当前按钮聚焦 也就是提醒用户当前处于哪个维度的页面 这里自己研究的方法
  • apt install报错E: Unmet dependencies. Try ‘apt --fix-broken install‘ with no packages的解决方案

    摘要 最近在一台Ubuntu 22 04系统中部署语音识别项目 不知道怎么 我使用apt install安装软件时报错 无论安装什么软件都是报同一个错误E Unmet dependencies Try apt fix broken inst
  • 柯美背包服务器系统,全能升级!全面合作!经纬科技与柯美中国正式签约

    经纬长期关注客户需求 现针对图文行业客户核心需求 加推卷材送料功能 该功能已在海外市场成熟应用1年多时间 可助力客户承接更多业务 但又不会因订单数量起伏导致设备闲置 真正实现一机多能 提升效率 创造价值 横向打通 睿思新科技 锐启新合作 真
  • .env.development(开发环境)、.env.prodction(正式环境)、自定义环境的使用

    1 配置文件 env development 开发环境下的配置文件 env production 生产环境下的配置文件 2 命名 属性必须以VUE APP 开头 案列 env development NODE ENV development
  • 《趣谈Linux》总结十:虚拟化

    37 虚拟化 Linux越来越强大了 例如 内存动不动就是百G内存 网络设备一个端口的带宽就能有几十G甚至上百G 存储在数据中心至少是PB级别的 一个P是1024个T 一个T是1024个G 这自然有了一些不灵活的地方 资源大小不灵活 有时候
  • python初阶---基础语法篇(二)

    文章目录 一 数据类型 二 列表 三 元组 四 集合 五 字典 六 序列 七 遍历函数map 八 筛选函数filter 九 累计函数reduce 一 数据类型 1 逻辑型 逻辑型又称布尔型 取值只有两种 0和1 或者真和假 False和Tr
  • 7.2

    include
  • Android自定义RecyclerView实现多级树

    Android自定义RecyclerView实现多级树 在Android开发中 RecyclerView是一个强大灵活的控件 常用于展示大量数据列表 而有时候我们需要实现多级树结构的列表 即每个节点下面可以包含子节点 这时候就需要对Recy
  • shell脚本启动jar包

    bin bash NAME spring admin echo NAME PID ps ef grep NAME grep java grep v grep awk print 2 echo 当前进程号为 PID echo for pid
  • iphone屏蔽系统更新_iphone如何实现永久屏蔽IOS系统更新?

    一直以来苹果的新系统更新覆盖率是全行业最快也是最高的 截止到ios13发布为止 ios12的全网覆盖率已经达到了惊人的90 iphone手机如何永久屏蔽IOS系统更新 对于ios13加入的诸多功能升级以及隐藏的一些不稳定因素 更多用户会选择
  • 线性代数 - 矩阵形式下的最小二乘法

    20201001 0 引言 最近在看 异常点检测 的时候 其中在PCA部分 准确来说是前面一小节 在进行推导的时候 使用了最小二乘法 其实这个东西本质上并不难 但是让我比较尴尬的是 很多线性代数的东西有些遗忘了 好在最近直截了当的复习让大部