奇异值分解(SVD) — 线性变换几何意义

PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义。能在有限的篇幅把这个问题讲解的如此清晰,实属不易。原文举了一个简单的图像处理问题,简单形象,真心希望路过的各路朋友能从不同的角度阐述下自己对SVD实际意义的理解,比如 个性化推荐中应用了SVD,文本以及Web挖掘的时候也经常会用到SVD。

原文:We recommend a singular value decomposition

简介

SVD实际上是数学专业内容,但它现在已经渗入到不同的领域中。SVD的过程不是很好理解,因为它不够直观,但它对矩阵分解的效果却非常好。比如,Netflix(一个提供在线电影租赁的公司)曾经就悬赏100万美金,如果谁能提高它的电影推荐系统评分预测准确率提高10%的话。令人惊讶的是,这个目标充满了挑战,来自世界各地的团队运用了各种不同的技术。最终的获胜队伍”BellKor’s Pragmatic Chaos”采用的核心算法就是基于SVD。

SVD提供了一种非常便捷的矩阵分解方式,能够发现数据中十分有意思的潜在模式。在这篇文章中,我们将会提供对SVD几何上的理解和一些简单的应用实例。

线性变换的几何意义(The geometry of linear transformations)

让我们来看一些简单的线性变换例子,以 2 X 2 的线性变换矩阵为例,首先来看一个较为特殊的,对角矩阵:

从几何上讲,M 是将二维平面上的点(x,y)经过线性变换到另外一个点的变换矩阵,如下图所示

变换的效果如下图所示,变换后的平面仅仅是沿 X 水平方面进行了拉伸3倍,垂直方向是并没有发生变化。

现在看下矩阵

这个矩阵产生的变换效果如下图所示

这种变换效果看起来非常的奇怪,在实际环境下很难描述出来变换的规律 ( 这里应该是指无法清晰辨识出旋转的角度,拉伸的倍数之类的信息)。还是基于上面的对称矩阵,假设我们把左边的平面旋转45度角,然后再进行矩阵 M 的线性变换,效果如下图所示:

看起来是不是有点熟悉? 对的,经过 M 线性变换后,跟前面的对角矩阵的功能是相同的,都是将网格沿着一个方向拉伸了3倍。

这里的 M 是一个特例,因为它是对称的。非特殊的就是我们在实际应用中经常遇见一些 非对称的,非方阵的矩阵。如上图所示,如果我们有一个 2 X 2 的对称矩阵 M 的话,我们先将网格平面旋转一定的角度,M 的变换效果就是在两个维度上进行拉伸变换了。

用更加数学的方式进行表示的话,给定一个对称矩阵 M ,我们可以找到一些相互正交 Vi ,满足 MVi 就是沿着 Vi 方向的拉伸变换,公式如下:

Mvi = λivi

这里的 λi 是拉伸尺度(scalar)。从几何上看,M 对向量 Vi 进行了拉伸,映射变换。Vi 称作矩阵 M 的特征向量(eigenvector), λi 称作为矩阵 M 特征值(eigenvalue)。这里有一个非常重要的定理,对称矩阵 M 的特征向量是相互正交的。

如果我们用这些特征向量对网格平面进行线性变换的话,再通过 M 矩阵对网格平面进行线性换的效果跟对 M 矩阵的特征向量进行线性变换的效果是一样的。

对于更为普通的矩阵而言,我们该怎么做才能让一个原来就是相互垂直的网格平面(orthogonal grid), 线性变换成另外一个网格平面同样垂直呢?PS:这里的垂直如图所示,就是两根交错的线条是垂直的。

经过上述矩阵变换以后的效果如图

从图中可以看出,并没有达到我们想要的效果。我们把网格平面旋转 30 度角的话,然后再进行同样的线性变换以后的效果,如下图所示

让我们来看下网格平面旋转60度角的时候的效果。

嗯嗯,这个看起来挺不错的样子。如果在精确一点的话,应该把网格平面旋转 58.28 度才能达到理想的效果。

本文引用地址:http://blog.sciencenet.cn/blog-696950-699380.html

时间: 2024-11-03 13:21:04

奇异值分解(SVD) — 线性变换几何意义的相关文章

奇异值分解(SVD) — 几何意义

PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把 这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理问题,简单形象,真心希望路过的各路朋友能从不同的角度阐述下自己对SVD实际意义的理 解,比如 个性化推荐中应用了SVD,文本以及Web挖掘的时候也经常会用到SVD. 原文:We recommend a singular value decomposition 关于线性变换部分的一些知识可以猛戳这里  奇异值分解(S

特征值分解与奇异值分解含义

一.特征值分解 1. 矩阵乘法 在介绍特征值与特征向量的几何意义之前,先介绍矩阵乘法的几何意义. 矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度的新向量.在这个变化过程中,原向量主要发生旋转.伸缩的变化.如果矩阵对某些向量只发生伸缩变换,不产生旋转效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值. 比如:,它对应的线性变换是下面的形式形式: 由于矩阵M是对称的,所以这个变换是一个对 x , y 轴的一个拉伸变换.[当M中元素值大于1时,是拉伸:当值小于1时,是缩短]

特征值分解、奇异值分解、PCA概念整理

本文将分别介绍特征值分解.奇异值分解.及PCA的相关理论概念. 文章末尾将给出Householder矩阵变换.QR算法求解特征值.特征向量的代码 其中,特征值分解.奇异值分解的相关内容,转载自: http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html 考虑到本文50%以上的部分不是那个哥们的博客原文,所以我搞成原创标题了.... 一.特征值与特征向量的几何意义 1.     矩阵乘法 在介绍特

机器学习之旅---奇异值分解

     本次的讲解主要内容如下: 1.什么是奇异值分解?为什么任意实矩阵都存在奇异值分解? 2.怎么用C语言代码实现SVD分解? 3.实际应用: 基于SVD的图像压缩 基于SVD的协同过滤推荐系统 一.SVD奇异值分解概念     在多数情况下,数据中的一小段携带了数据集中的大部分信息,其他信息要么是噪声,要么就是毫不相干的信息.在线性代数中有很多矩阵分解技术,通过它们可以将原始矩阵表示成新的易于处理的形式.不同的矩阵分解技术具有不同的性质,有各自特定的应用场景.     奇异值分解SVD作为

Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

网易公开课,第14, 15课  notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Components Analysis (PCA), 比Factor Analysis更为直接,计算也简单些 参考,A Tutorial on Principal Component Analysis, Jonathon Shlens   主成分分析基于, 在现实中,对于高维的数据,其中有很多维都是扰动噪音

MLlib1.6指南笔记

MLlib1.6指南笔记 http://spark.apache.org/docs/latest/mllib-guide.html spark.mllib RDD之上的原始API spark.ml ML管道结构 DataFrames之上的高级API 1. spark.mllib:数据类型.算法及工具 cd /Users/erichan/garden/spark-1.6.0-bin-hadoop2.6/bin ./spark-shell --master local --driver-memory

Quora:一天就能Get的计算机技能

有哪些实用的计算机相关技能,可以在一天内学会? 这个问题来自 Quora 网友,题主还补充说: 注:这个问题特指和计算机打交道的技能. 寒假我有一个月的时间,我想学习很多大约一天就能学会的实用技能.我不期望(一天)精通,但有了良好理解后,我能做些基本操作.比如,我想学习如何使用 Eclipse 的调试器,如何创建 makefile,学习一些重要的 Linux 终端命令. 以下的列表是来自Quora网友回复的归纳总结.译者在有些技能下面添加了简明教程与技巧的文章,另外也推荐了一些相关联的简明课程.

想了解机器学习?你需要知道的十个基础算法

关于机器学习,你需要知道的十个基础算法 毫无疑问,作为人工智能的子领域-机器学习在过去的几年中越来越受欢迎.由于大数据是目前科技行业最热门的趋势,基于大量的数据机器学习在提前预测和做出建议方面有巨大的潜力.一些有关机器学习常见的例子有:Netflix基于你以前看过的电影再给你做出影片的推荐,或者亚马逊根据你以前买过的书籍再给你进行图书推荐. 如果想了解更多有关机器学习的知识,要从哪里开始呢?作者第一次入门是在哥本哈根海外交流时选了一门有关人工智能的课程.这门课程的讲师是丹麦科技大学(Techni

矩阵论 第二章 矩阵的分解

1. QR分解(UR分解): 这是最基础的分解. 定理1: 设满秩方程A∈R(n x n), 则存在正交矩阵Q及正线(主对角线上元为正)上三角阵R,满足 A = QR, 且分解唯一. 构造性证明: 将A的n个列向量正交化(斯密特正交化)为y1,y2-yn, 然后标准化为z1,z2-zn, 则Q即为{z1,z2-zn}, R为: rii = ||yi|| , rij = (xj, zi) (i≥j). 有效性代入计算即可证明. 唯一性证明思路: 设A=Q1R1 = Q2R2, 右乘R1的逆, 然后