线性代数 --- 投影Projection 六(向量在子空间上的投影)

news2024/11/26 23:30:03

向量b在多维子空间上的投影

回顾:向量在向量上(直线上)的投影

在研究向量在子空间上的投影前,先回顾一下前面学习的一个任意向量b在另一个向量a上的投影,共三个部分。

1,求权重系数(A constant)

基于投影即分量的理论,一个向量b在另一个向量a上的投影p,是b在a方向上的分量。投影p与向量a的方向相同,但大小不同,而这个大小就是b在p(a)上分量的多少。因为,我们最先研究的是如何计算出向量a所乘的常数项权重系数。(这里我觉得叫英文中的scale也很贴切)

2, p (A vector)

有了前面的常数项系数/权重系数,我们就可以求出向量b在向量a上的投影p,其中a已知。

3, P (A matrix)

重新改变一下上式中的乘法顺序,就能找到可以把任何向量都投影到向量a上的投影矩阵P(下图中用红色方框框出的)。

从投影到列空间(向量在直线上的投影):

把一个向量b投影到另一个向量a上,他不仅仅是投影到了一个向量上,他更是投影到了向量a所在的一条直线上,而这条直线就是向量a通过线性组合所张成的。如果把列向量a看作是一个nx1矩阵A的一列,那么a所张成的这条直线(子空间)就是矩阵A的列空间。这样一来,b在a上的投影就不单单是在一个向量上的投影,更是在A的列空间上的投影。

例:在二维空间中,x轴和y轴分别是由列向量所张成的两条直线。

如果把列向量分别看成是两个2x1的矩阵,则x轴和y轴这两条过0点的直线,就是这两个2x1矩阵所张成的两个一维子空间(列空间)。在二维空间中的任意向量b,在x轴上的投影和在y轴上的投影,实际上就是投影在了在以为列的2x1矩阵的列空间上,和投影在了以为列的2x1矩阵的列空间上。

推广到多维:

设,列向量是多维空间中的某个基向量。

然后令列向量为nx1矩阵中的一列,得到矩阵An。则,任意向量b,在所张成的直线上的投影,实际上也是在nx1矩阵An的列空间上的投影,其中属于An的列空间。


从向量b在直线(向量)上的投影,到向量b在多维子空间上的投影:

前面说的b在直线(向量)上的投影,基本上可以看成是b在n维子空间(n=1)上的投影。当n>1时,我们所要投影的对象就不再是一条直线,而是一个平面,一个三维空间,或者是一个更高维度的子空间。

这时,我们应该牢牢把握住和投影有关的几个核心概念:

1,投影即分量

2,投影向量p在投影目标的子空间(列空间)内

3,什么是列空间

为了更好的展现如何计算向量b在多维子空间上的投影,我把研究过程分成了正向推导和逆向推导两部分:

正向推导:

我的正向推导过程,更多的是基于向量的几何关系和投影的意义通过作图,直接得到的。我们先从下面的这个例子开始。向量b=[1 2 3]'是中的一个向量,它不在x-y平面上。而x-y平面,是由向量a1=[1 0]'和向量a2=[0 1]'所张成的一个二维子空间,它属于。现在,我们要把这个不在x-y平面内的向量b投影到x-y平面上。

根据投影即分量的原则,b在x-y平面上的投影p等于[1 2]',这是根据几何关系直观得到的(向量b中的第三个元素,属于b在z轴上的分量)。这里,如果我们再进一步拆分,我们会发现,b在x-y二维子空间上的投影,又可以被进一步被拆分成了p在另外两个向量a1和a2上的投影p1=[1 0]'和p2=[0 2]'。也就是说,b在二维子空间x-y平面上的投影p,等于它在x轴上的二次投影p1=[1 0]'和它在y轴上的二次投影p2=[0 2]'的和

(注:[x x x x]' 表示列向量)

p1和p2是什么?那不就是向量b在向量a1所在直线x轴和向量a2所在直线y轴上的直接投影吗?!换句话说,通过对向量b进行多次投影/分解后得到的子投影p1和p2和把向量b直接投影到a1,a2上所得到的投影是一样的。

那就是说,要想找到b在x-y平面上的投影p,只需直接计算b在x轴(a1)和y轴(a2)上的投影p1,p2即可,因为他们二者之和正好等于我们要找的b在x-y平面上的投影p。

这样一来,我们就把求解向量b在二维子空间上的投影的问题,变成了求解向量b在向量a1,a2上投影的问题,而这是我们之前已经掌握了的知识。只需要分别求出a1前面的常数项系数=1和a2所乘的常数项系数=2即可。

如需求解b在更高维度子空间上的投影,只需要找到b在子空间每一个基底向量上的投影,然后再把他们加起来就行了。即:

逆向推导:

前面的正向推导过程,我其实更多的是根据以往经验,利用三维空间中的几何关系逐步分解b向量的过程,它说明了b在子空间上的投影(分量)p等于多个子投影(子分量)p1,p2的和,如果b所要投影的目标子空间的维度足够大,需要不断的对子投影分解,直到不能再分解为止。

而逆向推导的这个过程和前面不同的是,前面的三维空间是现成的(已知的),是一个分解的过程。这里我要用已知向量构造子空间,更像是一个合成的过程。最终,不仅会得到和前面相同的结论,更重要的是我会推导出投影p的快速/通用的计算方法。(这也是教科书上推荐的方法)

现有两个线性无关的向量a1,a2,他们共同张成了一个二维子空间W。由于b在W上的投影p必在W内,因而,p一定可以通过向量a1和a2的线性组合得到,即以p=a1+a2的方式进行线性组合,其中,都是常数,是向量a1,a2在进行线性组合时的权重系数。用线性代数的语言表示就是:

(注意,这里我只是暂时用表示权重系数,但并没有在这里证明线性组合时的权重系数,正好等于子投影p1,p2的权重系数。也就是说,我还没有证明这里线性组合投影向量p的两个分量正好也是P在另外两个方向上的子投影p1和p2。所以,这里的,只能看成是一个普通的常数项权重系数)

如果我们再对上式进行改写,我们就能得到如下公式:

其中,矩阵A是向量a1,a2组成的矩阵,矩阵的第一列为列向量a1,矩阵的第二列为列向量a2。向量是由权重系数组成的列向量。

这样一来,就赋予了投影p另一层含义。子空间W不再只是a1,a2所张成的子空间,更是矩阵A的列空间。投影p不再只是a1和a2的线性组合,更是属于矩阵A的列空间。

A的列空间是什么?A的列空间就是矩阵A中各列所有可能的线性组合。我所要找的投影p只是这众多组合中的一种,这种组合各列所对应的权重就是

现在,我们把线性无关的向量从a1,a2,...一直增加到an个(假设每个列向量都包含m个元素)。对于他们共同所张成的m维子空间而言,投影p一定可以通过a1,a2,...an的线性组合得到,对应的权重系数也从之前的两个变成了n个,,...

改变乘法的顺序然后再展开有:

这样一来,向量b在m维子空间上的投影p就不单单是几个向量的线性组合,而是属于mxn矩阵A的列空间,其中A等于:

等于:

这样一来,我们要想求出向量b在m维度子空间上的投影,只需求出向量即可。(注意:和前面的说明一样,不论是我们这里的p1,p2...pn,还是,...都不能看成是投影,也不能看成是一维投影中的投影系数,只能看作普通的数学符号,因为我们暂时还没从数学上证明线性组合出投影p的所使用的权重,正好就是b在每个列向量上的投影所对应的权重系数,...


误差向量e正交于所要投影的子空间:

求解向量的秘诀就在于巧妙的利用几何上的正交。

如图,n个线性无关的列向量a1,a2...an所构成的mxn矩阵A的列空间col(A)为W。向量b在W上的投影为p,p在W内。p到b之间的误差向量为:

由于我们所求的投影p是b在某个多维子空间上的投影,故而,从几何关系上说,误差向量e不仅是垂直于投影向量p, 更是垂直于整个子空间,即垂直于整个A的列空间W。又因为,A的列空间是由n个线性无关的列向量a1,a2...an所张成。

故此,误差向量e垂直于每一个列向量。根据两个相互垂直的列向量,他们的内积为0,所以有:

正好得到一个关于权重向量的方程(踏破铁鞋无觅处,得来全不费工夫!),是这个方程组的系数矩阵,A已知。

这样一来,我们就找到了一次性直接求出对应于a1,a2,....an的n个权重系数,...的快速算法,那就是:

继而我们就能直接求出向量b在子空间(A的列空间)上的投影p(mx1),以及能把任意向量都投影到子空间(A的列空间)上的投影矩阵P(mxm):

我们把他和之前学习的一维投影,即,一个向量b在另一个向量a上的投影的结论进行一个比较:

这两个结果极为相似,一维投影中的1/(一个常数的倒数),在多维子空间的投影中变成了(一个逆矩阵)。

1,对而言,一维投影是一个常数,而在多维中是包含n个权重系数一个向量。

2,对于投影向量p而言,一维投影表示的是一个对单个向量a的缩放(Scale)后的结果。而在多维矩阵中,表示的是多个对多个向量a的缩放后的综合结果。

A的左零空间的妙用:

上文提到,在求解向量时,我们基于误差向量e垂直于整个所要投影的子空间,因而也垂直于张成这个子空间的每一个列向量,这一几何关系求出了向量

可如果我们再仔细看看上面我用红色方框框出来的方程,它其实还包含了另一层意思,那就是正因为误差向量e垂直于A的列空间,所以e属于A的左零空间。因为,根据线性代数基本定理,A的列空间正交与A的左零空间,且,A的列空间与左零空间互为正交补,即:

也就是说,利用垂直于A的列空间的任意向量必然属于A的左零空间这一定理,我们同样可以推导出计算向量的公式,得到和前面一样的结果。

总结:

(全文完)

作者 --- 松下J27

参考文献(鸣谢):

1,线性代数及其应用,侯自新,南开大学出版社,1990.

2,Linear Algebra and Its Applications(Fourth Edition) - Gilbert Strang

3,Introduction to Linear Algebra,Fifth Edition - Gilbert Strang

格言摘抄:

传统观念的死结就在一个“靠”字上,在家靠父母,出门靠朋友,靠上帝、靠菩萨、靠上天……总之靠什么都行,就是别靠自己,所以就只能在精神上跪着。 —— 丁元英《天道》

(配图与本文无关)

版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022 general purpose in-context learning by meta-learning transformers

wps: option left 回到上一个视图 Kirsch L, Harrison J, Sohl-Dickstein J, et al. General-purpose in-context learning by meta-learning transformers[J]. arXiv preprint arXiv:2212.04458, 2022. 目录Kirsch L, Harrison J, Sohl-Dickstein J, et al. General-purpose…

【高校节能】高校电力能源智能管理系统设计目标与原则

摘 要:高校构建电力能源智能管理系统,可以实现对高校电力能源消耗的实时监测、分析预警和辅助决策。系统通过能效管理技术监测各个设备的用电情况,并通过数据的取得、整合、汇总来实现能源的绩效管理。系统从全局出发,整体调控电…

CCF BDCI | 算能赛题决赛选手说明论文-03

基于TPU平台实现人群密度估计∗ ChaMd5-AI 唐晶机械工程&博士二年级 华中科技大学 中国-武汉 j_tanghust.edu.cn 团队简介 唐晶,2001年生,本科毕业于华中科技大学机械卓越工程师班,现为华中科技大学机械科学与工程学院陶波教授课题组博…

视频实时自然美颜, 无惧素颜上镜

华为HMS Core 视频编辑服务依托自身AI技术的核心优势,在最新版本HMS Core 6.8.0中上线了全新的视频美颜功能,能对指定图片或视频中的人脸实现磨皮、美白、大眼、瘦脸的美颜效果,适用于直播、相机、视频剪辑、图片处理等场景中,打造…

cubeIDE开发, stm32的GPIO原理、cubeMX配置及底层源码实现分析

一、GPIO介绍 1.1 GPIO 简述 GPIO(General purpose input/output,通用型输入输出),一个引脚可以用于输入、输出或其他特殊功能,PIN脚依现实需要可作为通用输入(GPI)或通用输出(GPO)或通用输入与…

鑫磊股份开启申购:资产负债率较高,实控人控制企业借款高企

1月10日,鑫磊压缩机股份有限公司(下称“鑫磊股份”,SZ:301317)开启申购,发行价格20.67元/股,市盈率58.65倍。据贝多财经了解,鑫磊股份将在深圳证券交易所创业板上市。 本次上市,鑫磊…

LinuxC—进程

进程 1 进程标识符pid 基本概念 类型pid_t,是一个有符号16位整数,进程号是顺次向下使用(fd是优先使用当前可用最小的) shell中的ps命令能够查看当前系统的进程信息快照 相关函数 getpid(2)获取当前进程的进程号 /* Get the process ID of the calling…

中断处理程序

文章目录前言前置知识中断概念中断分类实验操作实验一实验二实验三前言 博客记录《操作系统真象还原》第七章实验的操作~ 实验环境:ubuntu18.04VMware , Bochs下载安装 实验内容: 编写中断处理程序( 操作 8259A 打开中断&…

2023年浙江食品安全管理员考试真题题库及答案

百分百题库提供食品安全管理员考试试题、食品安全管理员考试预测题、食品安全管理员考试真题、食品安全管理员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 一、多选题 1.餐具清洗消毒水池与以下哪些水池应分开&#xff…

机器学习— —导入数据

DAY1集成开发环境原始数据展示主要函数介绍data.iloc()函数dataset.iloc[0]dataset.iloc[:,:-1]dataset.iloc[:,3]dataset.iloc[1:3,1]可执行代码导入结果展示我的写在最后集成开发环境 Spyder (前身是 Pydee) 是一个强大的交互式 Python 语言开发环境,提供高级的代…

如何搭建Python环境和安装Pycharm

1、 搭建Python的基础环境 Anaconda简介 Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些…

【Kotlin】标准库函数 ② ( run 标准库函数 | run 函数传入 Lambda 表达式作为参数 | run 函数传入函数引用作为参数 )

文章目录一、run 标准库函数1、run 函数传入 Lambda 表达式作为参数2、run 函数传入函数引用作为参数Kotlin 语言中 , 在 Standard.kt 源码中 , 为所有类型定义了一批标准库函数 , 所有的 Kotlin 类型都可以调用这些函数 ; 一、run 标准库函数 1、run 函数传入 Lambda 表达式作…

Odoo丨5步轻松实现在Odoo中打开企微会话框

文章目录一、前言二、实现方案三、接口调用步骤一、前言 企业微信作为一个很好的企业级应用发布平台,尤其是提供的数据和接口,极大地为很多企业级应用提供便利,在日常中应用广泛! 最近在项目中就遇到一个与企业微信相关的场景开…

商标异议解读

商标异议解读《商标法》第三十五条规定,对初步审定公告的商标提出异议的,商标局应当听取异议人和被异议人陈述事实和理由,经调查核实后,自公告期满之日起十二个月内做出是否准予注册的决定,并书面通知异议人和被异议人…

Python初次实现MapReduce——WordCount

前言 Hadoop 本身是用 Java 开发的,所以之前的MapReduce代码小练都是由Java代码编写,但是通过Hadoop Streaming,我们可以使用任意语言来编写程序,让Hadoop 运行。 本文用Python语言实现了词频统计功能,最后通过Hadoo…

Redis从青铜到王者,从环境搭建到熟练使用

一、常见的非关系型数据库NOSQL分类NOSQL类型主要数据库产品类型特色K-V键值对存储类型Redis、Memcached使用key可以快速的查询到value,Memcached可以支持String类型的值value,Redis支持的值的数据类型很多如:String\set\hash\sortset\list等…

1月重磅福利——Softing在线培训课程上线

尽管有标准化和界面友好的工具,但车辆诊断的复杂性仍需要或多或少的专业知识支持,其具体取决于应用领域和要求。无论是初学者还是高级工程师,我们都很乐意为您日常遇到的问题提供相关支持,并就车辆诊断、ODX和OTX标准以及工具的使…

LeetCode 179. 最大数

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 179. 最大数,做好准备了么,那么开始吧。 🌲🌲🐴🐴 一、题目名称 LeetCode 179. …

01Hashmap并发问题-ConcurrentHashMap-线程安全集合类-并发编程(Java)

1 概述 线程安全类可以分为3个大类: 遗留的的线程安全集合Hashtable,Vector使用Collections装饰的线程安全集合,如: Collections.syncronizedCollectionCollections.syncronizedListCollections.syncronizedMapCollections.sync…

Linux系列文章 —— vim的基本操作(误入vim退出请先按「ESC」再按:q不保存退出,相关操作请阅读本文)

系列文章目录 文章目录系列文章目录前言一、vim的基本概念二、vim的基本操作1.退出vim编辑器2.进入vim编辑器3.模式功能及切换三、vim命令模式命令集1.光标移动2.查找字符3.复制粘贴删除4.撤销、重做与重复做5.插入模式6.保存与退出7.环境修改四、总结1.vim的三种基本模式2.vim…