首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【笔记】《计算机图形学》(6)——变换矩阵

不过在记笔记时多少也会参考一下中文版本 这一篇包含了原书中第六章的内容,也就是变换矩阵部分。这一章也是图形学的核心部分,关系到图形学中的图形如何进行变换,一定要牢记于心。...二维线性变换有几个常见的基本形式,这些基本形式的组合可以得到所有的二维线性变换,这里下面简单介绍一下: 缩放: 缩放是最简单的二维线性变换,缩放矩阵是一个对角矩阵,对角线上的元素分别是x轴缩放的倍率和y...变换的组合与分解: 可以通过连续的矩阵左乘来组合多个变换,由于矩阵乘法拥有结合性,我们可以提前让变换矩阵左乘起来得到一个复杂的矩阵,然后再把这个组合左乘应用到向量上 在应用变换时我们要记得,由于矩阵是依靠左乘组合在一起的...仿射变换的这个标记位还有其他的用处,这将会在下一章谈到透视变换时解释 三维空间中的仿射变换矩阵,格式也与二维空间中的版本相似,处理起来也是一样的道理 ?...这样就引出了坐标系变换的问题,前面我们讨论的都是如何在不动的坐标系中移动目标点,而如何得到物体在新的坐标系中的坐标这个问题就是坐标系变换,之前在2.4中稍微提到过一点点。

2.7K20

奇异值分解及几何意义「建议收藏」

: 从几何上讲,M 是将二维平面上的点(x,y)经过线性变换到另外一个点的变换矩阵,如下图所示 变换的效果如下图所示,变换后的平面仅仅是沿 X 水平方面进行了拉伸3倍,垂直方向是并没有发生变化。...现在看下矩阵 这个矩阵产生的变换效果如下图所示 这种变换效果看起来非常的奇怪,在实际环境下很难描述出来变换的规律 ( 这里应该是指无法清晰辨识出旋转的角度,拉伸的倍数之类的信息)。...还是基于上面的对称矩阵,假设我们把左边的平面旋转45度角,然后再进行矩阵M 的线性变换,效果如下图所示: 看起来是不是有点熟悉?...如何获得奇异值分解?( How do we find the singular decomposition? ) 事实上我们可以找到任何矩阵的奇异值分解,那么我们是如何做到的呢?...之前算是能够运用矩阵分解技术于个性化推荐系统中,但理解起来不够直观,阅读原文后醍醐灌顶,我想就从SVD能够发现数据中的主要信息的思路,就几个方面去思考下如何利用数据中所蕴含的潜在关系去探索个性化推荐系统

59220
您找到你想要的搜索结果了吗?
是的
没有找到

深度学习笔记之奇异值分解及几何意义

从几何上讲,M 是将二维平面上的点(x,y)经过线性变换到另外一个点的变换矩阵,如下图所示 ? 变换的效果如下图所示,变换后的平面仅仅是沿 X 水平方面进行了拉伸3倍,垂直方向是并没有发生变化。 ?...现在看下矩阵 ? 这个矩阵产生的变换效果如下图所示 ?    这种变换效果看起来非常的奇怪,在实际环境下很难描述出来变换的规律 ( 这里应该是指无法清晰辨识出旋转的角度,拉伸的倍数之类的信息)。...还是基于上面的对称矩阵,假设我们把左边的平面旋转45度角,然后再进行矩阵M 的线性变换,效果如下图所示: ?  看起来是不是有点熟悉?...) 事实上我们可以找到任何矩阵的奇异值分解,那么我们是如何做到的呢?假设在原始域中有一个单位圆,如下图所示。...之前算是能够运用矩阵分解技术于个性化推荐系统中,但理解起来不够直观,阅读原文后醍醐灌顶,我想就从SVD能够发现数据中的主要信息的思路,就几个方面去思考下如何利用数据中所蕴含的潜在关系去探索个性化推荐系统

1.5K21

PCA系列(一):降维基础知识及PCA原理总结

假设有如上图所示的一组二维空间上的data(蓝色点),我们想要将它们投影到一维空间上,如下所示: 对每一个样本来说,上标代表样本序号,下标代表每个样本的属性序号。...(方差越大,保留的信息越多) 每一个样本点投影后都会得到一个 ,那么所有 的方差为: 也就是在二维平面上,我们可选择无数个方向,然后让二维平面上的点都投影到这个方向上,并求出它们投影后的方差,而我们选择方差最大的一个方向作为...那假设我们要投影到二维空间上呢?(原本是三维甚至更高)那我们就需要找到一个 ,然后让所有点投影到这个平面上,我们同样使得所有三维空间上的样本点投影到二维平面后它们的方差最大即可。...通过拉格朗日乘数法我们知道了: 实际上就是协方差矩阵的一个特征向量。那么只要我们将协方差矩阵S进行特征值分解即可得到所有的变换矩阵w。...因此,假设降维到q维,则我们需要q个正交的单位向量(对S进行特征分解,取前q个),则变换坐标后 的表达式变为: 样本 的重构代价我们定义为: 上式表示要将 从p维降为q维的重构代价,那么所有样本的重构代价加起来就是总的重构代价

1.2K20

机器学习三人行(系列十)----机器学习降压神器(附代码)

幸运的是,有一种称为奇异值分解(SVD)的标准矩阵分解方法,可以将训练集矩阵X分解成三个矩阵U·Σ·VT的点积,其中VT包含我们正在寻找的所有主成分, 如下公式所示。 ?...因此,二维投影看起来非常像原始的三维数据集。...现在我们已经知道如何将任何数据集的维度降低到任意维数,同时尽可能保留最多的差异。...这是一个合理的压缩比,你可以看到这是如何加速分类算法(如SVM分类器)。 也可以通过应用PCA投影的逆变换将缩小的数据集解压缩回到784维。...下图显示了原始训练集(左侧)的几个数字,以及压缩和解压缩后的相应数字。 你可以看到有一个轻微的图像质量损失,但数字仍然大部分完好无损。 ? ? 如下等式,显示了逆变换的等式。 ?

1.1K90

PCA详解

:1 决定降维之后的特征数量:k 3 旋转,找出一个新的坐标系;本质上是找出2个新的特征向量,构成新平面新特征向量能够被压缩到较少的特征上,总信息量损失不多 通过某种变化,找出n个新的特征变量,以及它们构成的新...基变换矩阵表示 矩阵的两行表示两个基,乘以原来的向量,得到新基下的坐标。 ?...一般的,如果我们有M个N维向量,想将其变换为由R个N维向量表示的新空间中 首先将R个基按行组成矩阵A,就是整个P向量 然后将向量按列组成矩阵B,就是整个a向量 两矩阵的乘积AB就是变换结果,其中AB的第...;X_dr[y == 0, 1] 第2列特征的数据 如何取出每种鸢尾花的两个特征中的数据 ?...V;需要求解协方差矩阵\frac{1}{n}XX^T,将特征矩阵X分解成下面的3个矩阵,\sum是对角矩阵(对角线上有值,它们就是方差;其余为0) X \rightarrow Q\sum Q^{-1}

1.5K10

傅里叶变换有什么用?

我在上两篇文章「手把手教你编写傅里叶动画」、「傅里叶动画专辑欣赏」中介绍了傅里叶级数的本质以及编写了一些有趣的傅里叶动画,主要讲述了周期性函数究竟是如何一步步被分解成正余弦函数的和的。...但是,不幸的是我们在工程中使用的一些函数往往会有一些非周期性函数,那么我们该如何用三角函数来描述它们呢,这就是今天我要讲述的傅里叶变换。 那么傅里叶变化在实际工程中具体有哪些应用领域呢?...但是图像是二维的,二维傅里叶变换公式与一维稍有区别: 其中 是图像对应每个像素矩阵的亮度或者灰度值,这个公式实际几何意义就是将一个图像分解成若干个复平面波之和。...从公式我们可以看出,二维傅里叶变换就是将图像与每个不同频率的不同方向做内积运算,也就是逐行逐列的使用一维傅里叶变换。图像经过傅里叶变换后能将其空间域转化成频域,那么这样做有什么好处呢?...上图是两个手写字母A经过傅里叶变换后的频域图,我们就会发现它们两个非常“像”;而对于其它两个字母,例如H与M: ?

4.4K20

机器学习算法之PCA算法

矩阵是高维的情况下,那么这个矩阵就是高维空间下的一个线性变换,这个线性变换可能没法通过图片来表示,但是可以想象,这个变换也同样有很多的变化方向,我们通过特征值分解得到的前N个特征向量,就对应了这个矩阵最主要的...从上面的奇异值分解公式来看,我们是不知道如何拆分矩阵A的。但我们可以想办法把奇异值和特征值联系起来。...当样本是n维数据时,它们的协方差实际上是协方差矩阵(对称方阵)。例如,对于3维数据(x,y,z),计算它的协方差就是: ? 散度矩阵定义为: ? 对于数据的散度矩阵为。...协方差矩阵和散度矩阵关系密切,散度矩阵就是协方差矩阵乘以。因此它们的特征值和特征向量是一样的。这里值得注意的是散度矩阵就是上面讲的SVD分解的第一步,因此PCA和SVD也是有相关性的。...,将二维数据降到一维 print(result_eig) result_svd = pca_svd(data, 1) # 使用奇异值分解法将协方差矩阵分解,得到降维结果

77430

干货 | 【深度学习】 在 【推荐算法】 上的应用研究进展

输入归纳起来可以分为用户(User)、物品(Item)和打分(Rating)三个方面,因此可以使用一个二维矩阵来刻画评分预测的输入,分别对应于一个矩阵中的行、列、值。...物品推荐 与评分预测相似,输入归纳起来可以分为用户(User)对应的物品(Item)二维矩阵来刻画输入,不同的是每个矩阵数值不是一个具体的打分,而是一个用户是否选择了某一物品。...例如,在一个电商平台,如何将推荐产品合理地展示在页面的各个部分,可能的策略如按照类别分类展示、重点区域突出个性化推荐结果。这种任务目前在研究中还很少被关注,主要原因是很难得到相关的科研数据。...在矩阵分解模型中,用户和物品能够得到隐含表示,在这三个工作中都是假设物品本身携带了其他附加内容信息,将深度神经网络模型当做特征变换模块,使之可以打通两部分信息的可用性:从附加内容信息到矩阵分解的隐含表示...目前推荐系统面临的数据附加信息不断增加,因此原始的用户物品二维矩阵不能刻画复杂的推荐场景,如基于session的推荐等。因此,如何在实践中充分挖掘结构化神经网络模型的实战效果将是一个很重要的研究方向。

1.7K60

理解单目相机3D几何特性

简介 激光雷达技术、以及立体视觉通常用于3D定位和场景理解研究中,那么单个摄像头是否也可以用于3D定位和场景理解中吗?...所以我们首先必须了解相机如何将3D场景转换为2D图像的基本知识,当我们认为相机坐标系中的物体场景是相机原点位置(0,0,0)以及在相机的坐标系的X、Y、Z轴时,摄像机将3D物体场景转换成由下面的图描述的方式的...相机坐标系中定义的一个点可以用K(摄像机矩阵)投影到图像平面上,K是一个内参矩阵,它采用fx和fy,将相机坐标系的x和y值缩放为图像平面的u和v值,此外,K还涉及sx和sy,它们将图像的原点从图像的中心转换到左上角的图像坐标系下...完整的相机矩阵P,它获取世界坐标点,并使用下图中的完整公式将其投影到图像平面,这种摄像机矩阵变换是一种投影变换,也可以用齐次坐标来描述,如下: 因为K是一个3x3矩阵,R | t是一个3x4矩阵,P是一个...逆透视变换 距离在透视视图中会发生扭曲,因为离相机较近的固定距离看起来较大,而离相机较远的固定距离看起来较小,然而,正交视图中的距离不会扭曲,并且无论它位于何处都是一致的。

1.6K10

奇异值分解(SVD)

奇异值分解的数学原理 前面说的关于奇异值分解是什么,其实是从应用角度上来说的,从数学的角度讲,它就是一种矩阵分解法。...什么是矩阵分解 顾名思义,矩阵分解就是把一个大矩阵分解成易于处理的形式,这种形式可能是两个或多个矩阵的乘积,就如同我们在代数中的因子分解,这种因子分解在数学里便于我们计算,赋予现实的含义,给一个真实的应用背景...SDV是如何分解矩阵的 SVD分解矩阵图 SVD将原始的数据集矩阵Data分解成三个矩阵:U、Sigma、V^T,如果原始矩阵是m行n列,那么U、Sigma和V^T分别就是m行m列、m行n列、n行n列。...如何选取呢?确定要保留的奇异值个数有很多启发式的策略,其中一个典型的做法就是保留矩阵90%的能量信息。为了计算能量信息,将所有的奇异值求平均和,直到累加到总值的90%为止。...,进行推荐,奇异值是我生活的经验映射在数学空间的一种体现,来自于数学角度的解释,是巧合也是必然),如何将原始数据变换到这二维呢?

1.5K60

奇异值分解

奇异值分解的数学原理 前面说的关于奇异值分解是什么,其实是从应用角度上来说的,从数学的角度讲,它就是一种矩阵分解法。...什么是矩阵分解 顾名思义,矩阵分解就是把一个大矩阵分解成易于处理的形式,这种形式可能是两个或多个矩阵的乘积,就如同我们在代数中的因子分解,这种因子分解在数学里便于我们计算,赋予现实的含义,给一个真实的应用背景...SDV是如何分解矩阵的 SVD将原始的数据集矩阵Data分解成三个矩阵:U、Sigma、V^T,如果原始矩阵是m行n列,那么U、Sigma和V^T分别就是m行m列、m行n列、n行n列。...如何选取呢?确定要保留的奇异值个数有很多启发式的策略,其中一个典型的做法就是保留矩阵90%的能量信息。为了计算能量信息,将所有的奇异值求平均和,直到累加到总值的90%为止。...,进行推荐,奇异值是我生活的经验映射在数学空间的一种体现,来自于数学角度的解释,是巧合也是必然),如何将原始数据变换到这二维呢?

779100

原创 | 一文读懂主成分分析

(这里的核心问题是协方差矩阵的特征值分解) 例题:已知现在有一个二维矩阵,如下所示,请降至一维。 解: 1)原始数据是两行五列矩阵,其中n=2,m=5; 2)这是一个已经去掉均值的矩阵。...6)最后用Q的第一行乘以X矩阵,就得到了降维后的表示: 降维投影结果如下图所示: 图4 降维投影结果 2.4 选择主成分个数(即k的值) 那么该如何选择k,即保留多少个PCA主成分呢?...在上述简单的二维实验中,保留第一个成分看起来是自然的选择。...简而言之,SVD在矩阵分解中的过程比PCA简单快速,虽然两个算法都走一样的分解流程,但SVD可以直接算出 。但是SVD的信息量衡量指标比较复杂,“奇异值”理解起来也比“方差”来得困难。...未经许可的转载以及改编者,我们将依法追究其法律责任。 点击“阅读原文”加入组织~

82520

SVD奇异值分解的数学涵义及其应用实例

摘要 SVD(Singular Value Decomposition, 奇异值分解)是线性代数中既优雅又强大的工具, 它揭示了矩阵最本质的变换....这就好比一个合数能表示为若干质数之积, 分解合数能得到表示该合数的质因数; 复杂周期信号可以表示为若干简单的正弦波和余弦波之和, 使用傅里叶变换能得到表示该信号的简单波; 复杂矩阵所代表的线性变换可由若干个简单矩阵所代表的线性变换组合起来...这样的表述还是相当地晦涩, 我们不妨在二维平面中举一个例子. 设有矩阵A, 其对单位正交基 ? 进行线性变换, 得到的向量仍然是彼此正交的, 即 ? 仍然是正交的. 设 ? 方向上的单位向量是 ?...这些更简单的变换是怎么进行生效的呢? 我们还是在二维平面中举例说明. 当使用矩阵A对向量 ? 进行变化时, 我们可以先将向量 ? 在单位正交基 ? 上进行表示, 即(4)所表述. 我们不妨令 ? ?...SVD的求解过程 上述关于SVD在二维平面上的结论可以轻易地推广到多维情况. 那SVD具体如何求解呢?

1.2K40

嵌套for循环的九九乘法表——四个方向打印

二维矩阵是一个由行和列组成的数学对象,通常用一个大括号括起来的矩形阵列来表示。...以下是一些常见的算法: 矩阵乘法:给定两个矩阵A和B,我们可以计算它们的乘积C=A*B。这个过程涉及到对A的每一行和B的每一列进行点积运算,并将结果存储在C的相应位置中。...它通过对增广矩阵进行一系列的行变换,将其转化为上三角矩阵,并通过回带求解方程组。 LU分解:给定一个可逆矩阵A,我们可以将它分解为一个下三角矩阵L和一个上三角矩阵U的乘积。...这个过程涉及到求解特征多项式、计算行列式等操作,通常需要使用迭代算法或者分解算法来实现。 图像处理:在图像处理中,二维矩阵通常被用来表示图像的灰度值或者RGB颜色值。...通过对这些矩阵进行一系列的变换和处理,可以实现图像的滤波、增强、分割等操作。常见的算法包括卷积、形态学处理、边缘检测等。 动态规划:在动态规划中,二维矩阵通常被用来存储状态转移表。

26910

传统和深度学习进行结合,较大提高人脸伪造检测

然而,如何将频率感知线索纳入深度学习的CNN模型中?这个问题也随之而来。传统的频域,如FFT和DCT,与自然图像所具有的移位不变性和局部一致性不匹配,因此普通的CNN结构可能是不可行的。...为此,我们想介绍两种频率感知伪造线索,它们与深度卷积网络的知识挖掘相兼容。 从一个方面来看,可以通过分离图像的频率信号来分解图像,而每个分解的图像分量指示特定的频带。...这些频率统计信息重新组合回多通道空间图,其中通道的数量与频带的数量相同。如上图(b)的最后一列所示,伪造人脸与相应的真实人脸相比具有不同的局部频率统计,尽管它们在RGB图像中看起来几乎相同。...同时,由于分解后的图像分量和局部频率统计信息是互补的,但两者具有本质上相似的频率感知语义,因此它们可以在特征学习过程中逐步融合。...为此,我们提出了一种新的频率感知分解(FAD),根据一组可学习的频率滤波器在频域中自适应地分割输入图像。分解后的频率分量可以逆变换到空间域,从而产生一系列频率感知图像分量。

20030

【转】Flash:同志们,这些知识点你们知道多少?(一些必备的Flash开发知识点)

.理解帧跑道模型,知道timer和enterFrame的关联和区别                 5.理解RSL(runtime share lib)和loader的applactiondoamin以及多模块开发...                         6.理解反射,类定义,库链接定义 7.理解常用数学公式 8.理解图形图像和多媒体原理,会处理图形图像 9.理解动画原理和帧,刷新的概念 10.理解小数点坐标和整数坐标点区别,flash最小坐标区间以及各种坐标变换...理解地图和战斗机制和代码,会做高性能的多人同步地图 24.会控制操作界面 25.会平滑处理CPU避免峰值卡帧和优化实际运行性能,会内存换cpu,cpu换内存 26.理解UI制作和UI组件制作 27.理解如何使用...常用显示对象操作 32.理解ObsServer设计模式和事件模型原理 33.理解二维矩阵和三维矩阵变换 34.理解手机开发和部署AIR 35.会使用一个3D引擎/框架 36.理解3D原理,理解显卡基本原理...45.理解内存分析和性能分析以及优化 46.理解如何将一个大系统分解成多个子系统,子模块以及如何合并 47.会需求分析,程序逻辑分析,系统分析,项目组织 48.掌握敏捷开发和迭代开发,提高开发效率,适应功能需求变化

50020

基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法

例如可以将A和B分解为分块矩阵,使得GEMM可以递归实现。有关GEMM的详细信息可以参见[1][2][3]。如何对GEMM进行优化,是BLAS相关工作的研究热点。...基于 GEMM 的卷积算法及其缺点 卷积神经网络(CNN)在CV问题中的表现很出色,有多种在算法层面对齐进行实现的方法:直接卷积算法,采用7层循环,快速卷积算法,利用傅里叶变换来进行卷积,以及基于GEMM...,再将输入数据与kernel相乘,并与之前循环的结果拼接起来,从而间接的实现矩阵乘法,因此叫做indirection buffer。...实验测试结果 Efficient Deep Learning for Computer Vision主要聚焦于如何将深度学习部署到移动设备上,因此本文的工作主要在移动设备和移动芯片上进行测试,结果如下:...CVPR的这个workshop主要关注评估模型的计算开销和存储开销有关的指标,以及如何将其应用到移动设备上,相关团队隶属于谷歌研究院,详见[4]。

1.6K30

Python实现所有算法-矩阵的LU分解

实质上是将A通过初等行变换变成一个上三角矩阵,其变换矩阵就是一个单位下三角矩阵(有时是它们和一个置换矩阵的乘积)。...自己看图,以及下三角的对角元素都是1 矩阵是方阵(LU分解主要是针对方阵); 矩阵是可逆的,也就是该矩阵是满秩矩阵,每一行都是独立向量; 消元过程中没有0主元出现,也就是消元过程中不能出现行交换的初等变换...在线性代数中已经证明,如果方阵是非奇异的,即的行列式不为0,LU分解总是存在的。 我们知道一个算法使用起来是不是正确需要考虑矩阵本身的特性。上面就是满足LU分解矩阵的特点。...(2)分解按步进行,前边分解得到的信息为后边所用。 (3)[A]矩阵的存储空间可利用,节省存储。 所谓的节省空间是:L和U中的三角零元素都不必存储,这样只用一个n阶方阵就可以把L和U存储起来。...当系数矩阵A完成了LU分解后,方程组Ax = b就可以化为L(Ux) = b,等价于求解两个方程组Ly = b和Ux = y; 计算的公式 这个可能看起来不直观: 比如一个三阶的矩阵消元是这样的

76310
领券