【线性代数】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,描述的,可以利用已得到 ...
随机推荐
- Redis 使用指南:深度解析 info 命令
Redis 是一个使用 ANSI C 编写的开源.基于内存.可选持久性的键值对存储数据库,被广泛应用于大型电商网站.视频网站和游戏应用等场景,能够有效减少数据库磁盘 IO, 提高数据查询效率,减轻管 ...
- Jersey 写restful接口时QueryParam ,FormParam 等的区别
今天用jersey写接口,发现有一个post方法中没有得到参数,查了半天发现自己一不小心将@formparam写成了@queryparam,真是一个悲伤的故事.在这里把几个参数类型整理了一下放出来. ...
- 按Excel的模板导出数据
思路:把Excel模板上传到服务器:然后读取文档,写入数据,另存为新的文件 然后就是导出的时候处理数据定义的字符串,按数据导出:注意读取的数据流要处理下,不然会报异常 public Stream Ge ...
- React中,input外边如果包一个div,可以把input的onChange事件绑定到div上面,并且也生效
最近第一次开始学习封装组件,遇到几个比较神奇的问题. 首先就是如果input外边包一个div,如果把input的onChange事件绑定到div上,也会生效 <div onChange={(e) ...
- window上mongoDB的安装及常用mongodb命令
前几天在学习node操作数据库时使用的mongoDB数据库,今天来对mongodb的安装过程及配置以及后面需要使用的一些常用命令做一下总结. 安装MongoDB (可参考菜鸟教程中的安装步骤) 首先, ...
- 学习前端第二天之css层叠样式
一.设置样式公式 选择器 {属性:值:} 二.font 设置四大操作 font-size:字体大小 (以像素为单位) font-weight:字体粗细 font-family:字体 ( 可直接跟 ...
- asp.net ListView控件的简单实用和配置
1 web窗体界面代码 ItemType:控件要绑定的实体模型 SelectMethod:控件获取实体集合的后台方法 DataKeyNames:实体的主键 UpdateProduct:设置跟新的方法 ...
- poi的基本导入
一.获取列的值 private String getCell(Cell cell){ if(null == cell){ return ""; } try{ cell.setCel ...
- Spring7大模块
Spring 框架是一个分层架构,由 7 个定义良好的模块组成.Spring 模块构建在核心容器之上,核心容器定义了创建.配置和管理 bean 的方式,组成 Spring 框架的每个模块(或组件)都可 ...
- 【python】Logging模块
1.日志记录级别 logging.debug<logging.info<logging.warning<logging.error<logging.critical 关键是最高 ...