title: 【线性代数】4-2:投影(Porjections)

categories:

  • Mathematic
  • Linear Algebra

    keywords:
  • Projections
  • Projection Onto a Subspace

    toc: true

    date: 2017-10-17 09:28:46

Abstract: 本篇主要介绍的就是向量的映射,以映射到直线为引导,重点在于映射到子空间。

Keywords: Projections,Projection Onto a Subspace

开篇废话

开篇废话,喜迎十九大,嚯嚯哈哈。

Projections

映射,投影,感觉怎么翻译都不太对,总能想到函数,不过好像在这部分,投影矩阵和函数的功能非常类似。在典型的三维正交基向量空间内,一个向量的投影到一个平面上一般是下面这种形式:

向量b投影到xy平面,和b投影到z轴的一种几何上的反应,当然超过三维,就没办法画出来的,但是原理都一样,通过垂直(正交),将不在子空间的向量转换到子空间内最接近原始向量 b⃗\vec{b}b 的投影向量 b⃗^\hat{\vec{b}}b^来近似原始向量,这种方法在最小二乘法中得到了完美的应用,以及后面将要做的一些分解,上一篇提到的split(分解到子空间的split),都可以利用projection的原理。

继续解读上图,向量被分级到了正交的两个子空间,xy平面,和z轴,这两个子空间互为orthogonal complements,并且满足下面两种关系:

p1⃗+p2⃗=b⃗P1+P2=I
\vec{p_1}+\vec{p_2}=\vec{b}\\
P_1+P_2=I
p1​​+p2​​=bP1​+P2​=I

第一个式子就是个典型的split,比如物理里面力的分解,速度分解,都是把向量分解到你想要的方向,然后我们把向量分解到orthogonal complements的子空间中,就得到了我们想要的projection

第二个式子是projection matrix之间的关系,这里可以轻易的看出来,映射到xy平面P1=[100010000]P_1=\begin{bmatrix}1&0&0\\0&1&0\\0&0&0\end{bmatrix}P1​=⎣⎡​100​010​000​⎦⎤​,同理到z轴的就是P2=[000000001]P_2=\begin{bmatrix}0&0&0\\0&0&0\\0&0&1\end{bmatrix}P2​=⎣⎡​000​000​001​⎦⎤​,可以看出P1+P2=IP_1+P_2=IP1​+P2​=I

Projection Onto a Line(映射到直线)

Dot product to Projections

把一个向量 b⃗\vec{b}b 映射到一条直线aaa,等价于问题类似于把一个向量projection到另一个向量上,这个和我们之前学习的dot product有点像,如果

when ∣i⃗∣=1b⃗⋅i⃗=∣b⃗∣∣i⃗∣cos(θ)=∣b⃗∣cos(θ)
when\,|\vec{i}|=1\\
\vec{b} \cdot \vec{i}=|\vec{b}||\vec{i}|cos(\theta)=|\vec{b}|cos(\theta)
when∣i∣=1b⋅i=∣b∣∣i∣cos(θ)=∣b∣cos(θ)

其中夹角就是下图中 θ\thetaθ

可以看到映射到向量a上等价于和a方向上的单位向量dot product,假设 p⃗\vec{p}p​ 是 b⃗\vec{b}b 的投影结果,那么 i⃗=a⃗∣a⃗∣\vec{i}=\frac{\vec{a}}{|\vec{a}|}i=∣a∣a​

∣p⃗∣=∣b⃗∣cos(θ)=b⃗⋅i⃗=b⃗⋅a⃗∣a⃗∣p⃗=∣p⃗∣i⃗=∣p⃗∣a⃗∣a⃗∣so:p⃗=b⃗⋅a⃗∣a⃗∣∣a⃗∣a⃗
|\vec{p}|=|\vec{b}|cos(\theta)=\vec{b} \cdot \vec{i}=\vec{b} \cdot \frac{\vec{a}}{|\vec{a}|}\\
\vec{p}=|\vec{p}|\vec{i}=|\vec{p}|\frac{\vec{a}}{|\vec{a}|}\\
so:\\
\vec{p}=\frac{\vec{b}\cdot\vec{a}}{|\vec{a}||\vec{a}|}\vec{a}
∣p​∣=∣b∣cos(θ)=b⋅i=b⋅∣a∣a​p​=∣p​∣i=∣p​∣∣a∣a​so:p​=∣a∣∣a∣b⋅a​a

把向量中的dot product都换成转置相乘的模式就得到了

p⃗=b⃗Ta⃗a⃗Ta⃗a⃗
\vec{p}=\frac{\vec{b}^T\vec{a}}{\vec{a}^T \vec{a}}\vec{a}
p​=aTabTa​a

本文为节选,完整内容地址:https://www.face2ai.com/Math-Linear-Algebra-Chapter-4-2转载请标明出处

【线性代数】4-2:投影(Porjections)的更多相关文章

  1. MIT线性代数:16.投影矩阵和最小二乘

  2. Python爬取CSDN博客文章

    0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...

  3. MIT线性代数:15.子空间的投影

  4. 斯坦福大学CS224d基础1:线性代数回顾

    转自 http://blog.csdn.net/han_xiaoyang/article/details/51629242 斯坦福大学CS224d基础1:线性代数知识 作者:Zico Kolter ( ...

  5. [OpenGL ES 03]3D变换:模型,视图,投影与Viewport

    [OpenGL ES 03]3D变换:模型,视图,投影与Viewport 罗朝辉 (http://blog.csdn.net/kesalin) 本文遵循“署名-非商业用途-保持一致”创作公用协议 系列 ...

  6. 线性代数导论 | Linear Algebra 课程

    搞统计的线性代数和概率论必须精通,最好要能锻炼出直觉,再学机器学习才会事半功倍. 线性代数只推荐Prof. Gilbert Strang的MIT课程,有视频,有教材,有习题,有考试,一套学下来基本就入 ...

  7. 【脚下生根】之深度探索安卓OpenGL投影矩阵

    世界变化真快,前段时间windows开发技术热还在如火如荼,web技术就开始来势汹汹,正当web呈现欣欣向荣之际,安卓小机器人,咬过一口的苹果,winPhone开发平台又如闪电般划破了混沌的web世界 ...

  8. PCA算法详解——本质上就是投影后使得数据尽可能分散(方差最大),PCA可以被定义为数据在低维线性空间上的正交投影,这个线性空间被称为主⼦空间(principal subspace),使得投影数据的⽅差被最⼤化(Hotelling, 1933),即最大方差理论。

    PCA PCA(Principal Component Analysis,主成分分析)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量 ...

  9. 三维投影总结:数学原理、投影几何、OpenGL教程、我的方法

    如果要得到pose视图,除非有精密的测量方法,否则进行大量的样本采集时很耗时耗力的.可以采取一些取巧的方法,正如A Survey on Partial of 3d shapes,描述的,可以利用已得到 ...

随机推荐

  1. S02_CH01_Hello World实验

    S02_CH01_Hello World实验 ZYNQ是一款SOC芯片,在前面第一季的学习当中,我们只是粗略的学习了ZYNQ的PL部分,对于ZYNQ最突出的功能,其内部的双核Cortex-A9内核并未 ...

  2. oracle多表关联删除的两种方法

    oracle多表关联删除的两种方法 第一种使用exists方法 delete from tableA where exits ( select 1 from tableB Where tableA.i ...

  3. QAbstractItemModel使用样例与解析(Model::index使用了createIndex,它会被销毁吗?被销毁了,因为栈对象出了括号就会被销毁)

    参考:qt源码 qstandarditemmodel_p.h qstandarditemmodel.h qstandarditemmodel.cpp qabstractitemmodel.h qabs ...

  4. 牛客 133D 挑选队友 (分治FFT)

    大意: $n$个人, 分别属于$m$个组, 要求选出$k$个人, 使得每组至少有一人, 求方案数. 显然答案为$\prod((1+x)^{a_i}-1)$的第$k$项系数, 分治$FFT$即可. #i ...

  5. 怎样查看Nginx版本号

    方法一: 使用 nginx -v nginx -v 方法二: 使用 nginx -V nginx -V 注意: nginx -V 显示的是: 版本号 / 编译器版本 / 配置参数

  6. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by de

    MySQL在高版本需要指明是否进行SSL连接 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding ...

  7. C语言快速判断素数——不超时

    这属于算法上的问题,好好考虑一下算法,还要考虑一下素数的定义. 素数是只有1和本身能整除的整数.所以在求素数的时候,要将素数与1到素数本身中间的所有整数都相除,看是否有整除的数,如果有,那肯定不是素数 ...

  8. paramiko模块实现远程传输控制

    一.什么是paramiko呢? paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的parami ...

  9. CF336C-Vasily the Bear and Sequence题解--贪心

    题目链接 https://www.luogu.org/problemnew/show/CF336C 分析 一个比较妙的贪心 我们要让最后\(and\)起来的数被\(2^k\)整除且\(k\)最大,我们 ...

  10. VUE实现微博发布效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...