【线性代数】4-2:投影(Porjections)
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=⎣⎡100010000⎦⎤,同理到z轴的就是P2=[000000001]P_2=\begin{bmatrix}0&0&0\\0&0&0\\0&0&1\end{bmatrix}P2=⎣⎡000000001⎦⎤,可以看出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∣ap=∣p∣i=∣p∣∣a∣aso:p=∣a∣∣a∣b⋅aa
把向量中的dot product都换成转置相乘的模式就得到了
p⃗=b⃗Ta⃗a⃗Ta⃗a⃗
\vec{p}=\frac{\vec{b}^T\vec{a}}{\vec{a}^T \vec{a}}\vec{a}
p=aTabTaa
本文为节选,完整内容地址:https://www.face2ai.com/Math-Linear-Algebra-Chapter-4-2转载请标明出处
【线性代数】4-2:投影(Porjections)的更多相关文章
- MIT线性代数:16.投影矩阵和最小二乘
- Python爬取CSDN博客文章
0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...
- MIT线性代数:15.子空间的投影
- 斯坦福大学CS224d基础1:线性代数回顾
转自 http://blog.csdn.net/han_xiaoyang/article/details/51629242 斯坦福大学CS224d基础1:线性代数知识 作者:Zico Kolter ( ...
- [OpenGL ES 03]3D变换:模型,视图,投影与Viewport
[OpenGL ES 03]3D变换:模型,视图,投影与Viewport 罗朝辉 (http://blog.csdn.net/kesalin) 本文遵循“署名-非商业用途-保持一致”创作公用协议 系列 ...
- 线性代数导论 | Linear Algebra 课程
搞统计的线性代数和概率论必须精通,最好要能锻炼出直觉,再学机器学习才会事半功倍. 线性代数只推荐Prof. Gilbert Strang的MIT课程,有视频,有教材,有习题,有考试,一套学下来基本就入 ...
- 【脚下生根】之深度探索安卓OpenGL投影矩阵
世界变化真快,前段时间windows开发技术热还在如火如荼,web技术就开始来势汹汹,正当web呈现欣欣向荣之际,安卓小机器人,咬过一口的苹果,winPhone开发平台又如闪电般划破了混沌的web世界 ...
- PCA算法详解——本质上就是投影后使得数据尽可能分散(方差最大),PCA可以被定义为数据在低维线性空间上的正交投影,这个线性空间被称为主⼦空间(principal subspace),使得投影数据的⽅差被最⼤化(Hotelling, 1933),即最大方差理论。
PCA PCA(Principal Component Analysis,主成分分析)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量 ...
- 三维投影总结:数学原理、投影几何、OpenGL教程、我的方法
如果要得到pose视图,除非有精密的测量方法,否则进行大量的样本采集时很耗时耗力的.可以采取一些取巧的方法,正如A Survey on Partial of 3d shapes,描述的,可以利用已得到 ...
随机推荐
- Laravel三种中间件的作用
$middleware 属性: 这个属性称为全局中间件,为什么说是全局中间件呢?因为你的每一次请求,这里面的每个中间件都会执行. $routeMiddleware 属性: 这个属性称为路由中间件,为什 ...
- 【数据结构】P1310 表达式的值
[题目链接] https://www.luogu.org/problem/P1310 题目描述 对于1 位二进制变量定义两种运算: 运算的优先级是: 先计算括号内的,再计算括号外的. “× ”运算优先 ...
- Date及DateFormat用法
Date 与DateFormat之间的转化String <————>Date Date与Calendar 之间的转化Long<————>Date 日历小程序 Scanner i ...
- 怎样快捷获取网页的window对象
使用document.defaultView; document.defaultView === window 注意: 1. 如果当前文档不属于window对象, 则返回null; 2. docume ...
- MySQL 设置密码和允许远程登录
mysqladmin -u root password "newpass" GRANT ALL PRIVILEGES ON *.* TO root' WITH GRANT OPTI ...
- 【css】浅谈BFC
定义: 块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域. BFC的布 ...
- luogu题解 P3629 【[APIO2010]巡逻】树的直径变式
题目链接: https://www.luogu.org/problemnew/show/P3629 分析 最近被众多dalao暴虐,这道题傻逼地调了两天才知道错哪 不过这题比较良心给你一个容易发现性质 ...
- Java通过JDBC连接SQL Server
下载Microsoft JDBC Driver 4.0 for SQL Server 在这里下载:http://www.microsoft.com/zh-cn/download/details.asp ...
- ssh下known_hosts的作用
原文地址:http://blog.csdn.net/yasaken/article/details/7348441 在平时工作中,有时候需要SSH登陆到别的Linux主机上去,但有时候SSH登陆会被禁 ...
- c#调用存储过程实现批量增加和修改数据
1 例如当我在编辑表格数据,一次编辑了多行需要保存到数据库时,就需要判断数据库中是否已经存在,存在则修改,不存在则新增一条或多条数据,即所谓批量增加或者跟新数据. 首先需要构建数据包,把要添加或者跟新 ...