0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SVD的数据压缩原理

lviY_AI_shequ 来源:lp 2019-04-02 15:16 次阅读

前言

奇异值分解(SVD)在降维,数据压缩,推荐系统等有广泛的应用,任何矩阵都可以进行奇异值分解,本文通过正交变换不改变基向量间的夹角循序渐进的推导SVD算法,以及用协方差含义去理解行降维和列降维,最后介绍了SVD的数据压缩原理 。

1. 正交变换

正交变换公式:

上式表示:X是Y的正交变换,其中U是正交矩阵,X和Y为列向量 。

下面用一个例子说明正交变换的含义:

假设有两个单位列向量a和b,两向量的夹角为θ,如下图:

现对向量a,b进行正交变换:

的模:

由上式可知的模都为1。

的内积:

由上式可知,正交变换前后的内积相等。

的夹角

比较(2)式和(3)式得:正交变换前后的夹角相等,即:

因此,正交变换的性质可用下图来表示:

正交变换的两个重要性质:

1)正交变换不改变向量的模。

2)正交变换不改变向量的夹角。

如果向量是基向量,那么正交变换的结果如下图:

上图可以得到重要结论:基向量正交变换后的结果仍是基向量。基向量是表示向量最简洁的方法,向量在基向量的投影就是所在基向量的坐标,我们通过这种思想去理解特征值分解和推导SVD分解。

2. 特征值分解的含义

对称方阵A的特征值分解为:

其中U是正交矩阵,是对角矩阵。

为了可视化特征值分解,假设A是2×2的对称矩阵,。(2.1)式展开为:

用图形表示为:

由上图可知,矩阵A没有旋转特征向量,它只是对特征向量进行了拉伸或缩短(取决于特征值的大小),因此,对称矩阵对其特征向量(基向量)的变换仍然是基向量(单位化)。

特征向量和特征值的几何意义:若向量经过矩阵变换后保持方向不变,只是进行长度上的伸缩,那么该向量是矩阵的特征向量,伸缩倍数是特征值。

3. SVD分解推导

我们考虑了当基向量是对称矩阵的特征向量时,矩阵变换后仍是基向量,但是,我们在实际项目中遇到的大都是行和列不相等的矩阵,如统计每个学生的科目乘积,行数为学生个数,列数为科目数,这种形成的矩阵很难是方阵,因此SVD分解是更普遍的矩阵分解方法。

先回顾一下正交变换的思想:基向量正交变换后的结果仍是基向量。

我们用正交变换的思想来推导SVD分解:

假设A是M*N的矩阵,秩为K,Rank(A)=k。

存在一组正交基V:

矩阵对其变换后仍是正交基,记为U:

由正交基定义,得:

上式展开:

∴ (3.2)式得:

即假设成立 。

图形表示如下:

正交向量的模:

单位化正交向量,得:

结论:当基向量是

用矩阵的形式表示(3.3)式:

V是N*K矩阵,U是M*K矩阵,是M*K的矩阵,需要扩展成方阵形式:

将正交基扩展空间的正交基,即U是M*M方阵 。

将正交基扩展成空间的正交基,其中是矩阵A的零空间,即:

对应的特征值=0,是M*N对角矩阵,V是N*N方阵

因此(3.4)式写成向量形式为:

得:

(3.5)式写成向量形式:

令:

则:

A = XY

因为X和Y分别是列满秩和行满秩,所以上式是A的满秩分解。

(3.5)式的奇异矩阵的值特征值的平方根,下面推导奇异值分解的U和V:

即V是的特征向量构成的矩阵,称为右奇异矩阵。

即U是的特征向量构成的矩阵,称为左奇异矩阵 。

小结:矩阵A的奇异值分解:

其中U是的特征向量构成的矩阵,V是的特征向量构成的矩阵,奇异值矩阵的值是特征值的平方根 。

3. 奇异值分解的例子

本节用一个简单的例子来说明矩阵是如何进行奇异值分解的。矩阵A定义为:

4. 行降维和列降维

本节通过协方差的角度去理解行降维和列降维,首先探讨下协方差的含义:

单个变量用方差描述,无偏方差公式:

两个变量用协方差描述,协方差公式:

多个变量(如三个变量)之间的关系可以用协方差矩阵描述:

相关系数公式:

由上式可知,协方差是描述变量间的相关关系程度:

1)协方差cov(x,y) > 0时,变量x与y正相关;

2)协方差cov(x,y)<0时,变量x与y负相关;

3)协方差cov(x,y)=0时,变量x与y不相关;

变量与协方差关系的定性分析图:

现在开始讨论的含义:

假设数据集是n维的,共有m个数据,每一行表示一例数据,即:

表示第i个样本,表示第i个样本的第j维特征 。

由上式可知,是描述各特征间相关关系的矩阵,所以的正交基V是以数据集的特征空间进行展开的。

数据集A在特征空间展开为:

由上一篇文章可知,特征值表示了在相应特征向量的信息分量。特征值越大,包含矩阵的信息分量亦越大。

若我们选择前r个特征值来表示原始数据集,数据集A在特征空间展开为:

(4.2)式对列进行了降维,即右奇异矩阵V可以用于列数的压缩,与PCA降维算法一致。

行降维:

由上式可知:是描述样本数据间相关关系的矩阵,因此,左奇异矩阵U是以样本空间进行展开,原理与列降维一致,这里不详细介绍了 。

若我们选择前r个特征值来表示原始数据集,数据集A在样本空间展开为:

因此,上式实现了行降维,即左奇异矩阵可以用于行数的压缩。

5. 数据压缩

本节介绍两种数据压缩方法:满秩分解和近似分解

矩阵A的秩为k,A的满秩分解:

满秩分解图形如下:

由上图可知,存储X和Y的矩阵比存储A矩阵占用的空间小,因此满秩分解起到了数据压缩作用。

若对数据再次进行压缩,需要用到矩阵的近似分解。

矩阵A的奇异值分解:

若我们选择前r个特征值近似矩阵A,得:

如下图:

我们用灰色部分的三个小矩阵近似表示矩阵A,存储空间大大的降低了。

6. SVD总结

任何矩阵都能进行SVD分解,SVD可以用于行降维和列降维,SVD在数据压缩、推荐系统和语义分析有广泛的应用,SVD与PCA的缺点一样,分解出的矩阵解释性不强 。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 矩阵
    +关注

    关注

    0

    文章

    406

    浏览量

    34244
  • 向量
    +关注

    关注

    0

    文章

    55

    浏览量

    11585
  • SVD
    SVD
    +关注

    关注

    0

    文章

    21

    浏览量

    12065

原文标题:奇异值分解(SVD)原理总结

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【TL6748 DSP申请】井下数据压缩技术

    申请理由:我是中石油渤海钻探工程公司定向井分公司的仪器工程师,目前我在研发一项科研项目,主要是关于数据压缩算法以及数据编解码方面技术研究。需要利用数据处理芯片来实现井下数据压缩及编解码
    发表于 09-10 11:09

    请问有没有32可用的数据压缩算法?

    了40M大小,手贱用rar压缩了一下,3.2M!!!,为了传输这40M的数据更改了工具的波特率和buffer,这样就和公司老产品不兼容了,如果STM32上能实现类似rar的数据压缩算法,岂不爽哉?
    发表于 12-19 08:57

    基于FPGA的高性能无损数据压缩IP

    LZOAccel-CLZO Data Compression CoreLZOAccel-C是一个无损数据压缩引擎的FPGA硬件实现,兼容LZO 2.10标准。Core接收未压缩的输入数据块,产生
    发表于 12-21 23:10

    MapReduce数据压缩的基本原则

    黑猴子的家:MapReduce数据压缩
    发表于 05-24 12:45

    LZO Data Compression Core/无损数据压缩IP Core

    基于LZO的高性能无损数据压缩IP
    发表于 12-21 07:14

    数据压缩技术

    一、数据压缩的必要性二、多媒体数据压缩的可能性三、压缩方案应满足的要求四、编码方案分类五、数据压缩(编码)的主要步骤六、一些基本的压缩技术七
    发表于 03-25 13:19 35次下载

    高速数据压缩与缓存的FPGA实现

    本文设计了一种以 FPGA 为数据压缩数据缓存单元的高速数据采集系统,其主要特点是对高速采集的数据进行实时压缩,再将
    发表于 11-30 15:32 20次下载

    传真机的数据压缩系统

    传真机的数据压缩系统         
    发表于 12-29 16:51 595次阅读

    JPEG2000数据压缩的FPGA实现

    高性能的数据压缩可以有效的减少数据对存储空间和通信带宽的要求,降低通信成本。为解决图像数据的高压缩性能问题,本文提出了基于JPEG2000标准的数据
    发表于 04-16 10:39 47次下载
    JPEG2000<b class='flag-5'>数据压缩</b>的FPGA实现

    JAVA教程之数据压缩与传输

    JAVA教程之数据压缩与传输,很好的JAVA的资料,快来学习吧
    发表于 04-11 17:28 10次下载

    小波算法在监测数据压缩中的应用

    小波算法在监测数据压缩中的应用
    发表于 02-07 18:22 16次下载

    一种分段拟合的网络测量数据压缩方法_唐旭

    一种分段拟合的网络测量数据压缩方法_唐旭
    发表于 03-14 17:05 1次下载

    基于DCT的阵列声波测井数据压缩算法_林博

    基于DCT的阵列声波测井数据压缩算法_林博
    发表于 03-19 19:07 1次下载

    数据压缩的重要性

    数据压缩是指在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间的一种技术方法。
    的头像 发表于 02-28 10:45 1.4w次阅读

    有趣!史记:数据压缩算法列传

    简单地说,如果没有数据压缩技术,我们就没法用 WinRAR 为 Email 中的附件瘦身;如果没有数据压缩技术,市场上的数码录音笔就只能记录不到20 分钟的语音;如果没有数据压缩技术
    的头像 发表于 11-11 15:21 529次阅读