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

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

3天内不再提示

SVD的简介和主要应用领域以及原理与几何意义

lviY_AI_shequ 来源:未知 作者:易水寒 2018-06-18 18:01 次阅读

1 简介

SVD 全称:Singular Value Decomposition。SVD 是一种提取信息的强大工具,它提供了一种非常便捷的矩阵分解方式,能够发现数据中十分有意思的潜在模式。

主要应用领域包括:

隐性语义分析 (Latent Semantic Analysis, LSA) 或隐性语义索引 (Latent Semantic Indexing, LSI);

推荐系统 (Recommender system),可以说是最有价值的应用点;

矩阵形式数据(主要是图像数据)的压缩。

2 线性变换

在做 SVD 推导之前,先了解一下线性变换,以 2*2 的线性变换矩阵为例,先看简单的对角矩阵:

SVD的简介和主要应用领域以及原理与几何意义

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

SVD的简介和主要应用领域以及原理与几何意义

该变换的几何效果是,变换后的平面沿着x水平方向进行了3倍拉伸,垂直方向没有发生变化。

3 SVD 推导

该部分的推导从几何层面上去理解二维的SVD,总体的思想是:借助 SVD 可以将一个相互垂直的网格 (orthogonal grid) 变换到另外一个互相垂直的网格。

可以通过二维空间中的向量来描述这件事情。

首先,选择两个互相正交的单位向量v1和v2(也可称为一组正交基)。

M 是一个变换矩阵。

向量Mv1 , Mv2也是一组正交向量(也就是v1和v2经过M变换得到的)。

u1, u2分别是Mv1, Mv2的单位向量(即另一组正交基),且有:

SVD的简介和主要应用领域以及原理与几何意义

则,σ1,σ2分别为Mv1 , Mv2的模(也称为M的奇异值)。

设任意向量x,有:

SVD的简介和主要应用领域以及原理与几何意义

SVD的简介和主要应用领域以及原理与几何意义

根据线代知识,向量的内积可用向量的转置来表示:

SVD的简介和主要应用领域以及原理与几何意义

至此,SVD 使用几何意义的形式推导完毕,其中:

SVD的简介和主要应用领域以及原理与几何意义

关于 SVD 的一些重要的结论性总结:

任意的矩阵M是可以分解成三个矩阵;

V表示了原始域的标准正交基;

U表示经过M变换后的新标准正交基;

∑表示了V中的向量与U中相对应向量之间的比例(伸缩)关系;

∑中的每个σ会按从大到小排好顺序,值越大代表该维度重要性越高;

在利用 SVD 做数据信息提取或压缩时,往往依据一些启发式策略,如直接设定只提取∑ 中的前k项,或者另一种较常用的做法是保留矩阵中一定百分比的能量信息,一般可设定为 90%,能量信息比例的计算可先求得所有奇异值平方总和,然后将奇异值的平方依次累加到总值的 90% 为止,形如:

SVD的简介和主要应用领域以及原理与几何意义

# -*- coding: utf-8 -*-

import numpy as np

import numpy.linalg as la

import matplotlib.pyplot as plt

from sklearn import datasets

from skimage import io

def getImgAsMat(index):

ds = datasets.fetch_olivetti_faces()

return np.mat(ds.images[index])

def getImgAsMatFromFile(filename):

img = io.imread(filename, as_grey=True)

return np.mat(img)

def plotImg(imgMat):

plt.imshow(imgMat, cmap=plt.cm.gray)

plt.show()

def recoverBySVD(imgMat, k):

# singular value decomposition

U, s, V = la.svd(imgMat)

# choose top k important singular values (or eigens)

Uk = U[:, 0:k]

Sk = np.diag(s[0:k])

Vk = V[0:k, :]

# recover the image

imgMat_new = Uk * Sk * Vk

return imgMat_new

# -------------------- main --------------------- #

#A = getImgAsMat(0)

#plotImg(A)

#A_new = recoverBySVD(A, 20)

#plotImg(A_new)

A = getImgAsMatFromFile('D:/pic.jpg')

plotImg(A)

A_new = recoverBySVD(A, 30)

plotImg(A_new)

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

    关注

    0

    文章

    274

    浏览量

    27698
  • 矩阵
    +关注

    关注

    0

    文章

    404

    浏览量

    34231
  • SVD
    SVD
    +关注

    关注

    0

    文章

    21

    浏览量

    12065

原文标题:SVD-矩阵奇异值分解 —— 原理与几何意义

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

收藏 人收藏

    评论

    相关推荐

    FPGA典型应用领域以及解决方案

    FPGA典型应用领域以及解决方案
    发表于 08-20 13:36

    AD8221是什么?AD8221主要有哪些应用领域

    AD8221是什么?它有什么作用?AD8221主要有哪些特点?AD8221主要有哪些应用领域?基于AD8221的交流耦合仪用放大器该怎么去设计?
    发表于 04-14 06:05

    双层屏蔽有何意义

    双层屏蔽有何意义
    发表于 05-27 06:27

    什么是向量?向量的点乘与几何意义是什么?

    什么是向量?向量的点乘与几何意义是什么?什么是矩阵?什么是线性系统?什么是向量空间?
    发表于 06-18 07:28

    MCU主要有哪些应用领域?其优点是什么?

    MCU为何如此重要?MCU主要有哪些应用领域?其优点是什么?
    发表于 06-26 06:58

    惯量是什么意思?有何意义

    惯量是什么意思?惯量有什么作用?有何意义?伺服电机选型时,为什么要惯量匹配?
    发表于 06-28 09:11

    STM32F407看门狗有何意义

    STM32F407看门狗有何意义?STM32F407看门狗有何功能?
    发表于 09-24 06:55

    DCS集散控制系统时钟同步有何意义

    DCS集散控制系统时钟同步有何意义?DCS系统现场时钟同步有哪些应用?
    发表于 09-30 08:45

    AD7793简介及其应用领域

    低噪声可编程仪表放大器(PGA,Gain = 1、2、4、8、16、32、64、128可调)内置低噪声、低漂移带隙基准电压源内置可编程激励电流源、熔断电流源、偏置电压发生器(激励电流 10uA、210uA、1mA可调)四线串行SPI通信接口2. AD7793应用领域:热电偶温.
    发表于 01-14 06:06

    单片机主要有哪些应用领域

    单片机可以做什么?单片机主要有哪些应用领域呢?
    发表于 01-17 06:23

    湿敏元件的应用领域简介

    湿敏元件的应用领域简介 随着现代工业和科学技术的发展以及人们对环境要求的提高,对湿度的测量和控制显得日益重要。
    发表于 11-30 08:51 836次阅读

    晶振的主要应用领域有哪些?

    晶振的主要应用领域有哪些?
    的头像 发表于 07-20 17:47 4160次阅读
    晶振的<b class='flag-5'>主要</b><b class='flag-5'>应用领域</b>有哪些?

    氮化镓当前的主要应用领域

    从消费类、工业领域以及汽车领域介绍了氮化镓器件的应用技术情况,重点介绍了氮化镓当前的主要应用领域,消费类快充
    发表于 02-06 15:19 3744次阅读
    氮化镓当前的<b class='flag-5'>主要</b><b class='flag-5'>应用领域</b>

    什么是测量光幕?主要应用领域有哪些?

    什么是测量光幕?主要应用领域有哪些?
    的头像 发表于 06-24 10:15 635次阅读
    什么是测量光幕?<b class='flag-5'>主要</b><b class='flag-5'>应用领域</b>有哪些?

    傅里叶变换的目的和意义 傅里叶变换几何意义

    傅里叶变换的目的和意义 傅里叶变换几何意义  傅里叶变换是一种重要的数学工具和分析方法,它在信号处理、图像处理、音频处理等领域有着广泛的应用。它的目的是将一个时域信号转换为频域信号,从而更好地理
    的头像 发表于 09-07 16:14 1588次阅读