0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SVD的簡介和主要應(yīng)用領(lǐng)域以及原理與幾何意義

lviY_AI_shequ ? 來源:未知 ? 作者:易水寒 ? 2018-06-18 18:01 ? 次閱讀

1 簡介

SVD 全稱:Singular Value Decomposition。SVD 是一種提取信息的強(qiáng)大工具,它提供了一種非常便捷的矩陣分解方式,能夠發(fā)現(xiàn)數(shù)據(jù)中十分有意思的潛在模式。

主要應(yīng)用領(lǐng)域包括:

隱性語義分析 (Latent Semantic Analysis, LSA) 或隱性語義索引 (Latent Semantic Indexing, LSI);

推薦系統(tǒng) (Recommender system),可以說是最有價(jià)值的應(yīng)用點(diǎn);

矩陣形式數(shù)據(jù)(主要是圖像數(shù)據(jù))的壓縮。

2 線性變換

在做 SVD 推導(dǎo)之前,先了解一下線性變換,以 2*2 的線性變換矩陣為例,先看簡單的對(duì)角矩陣:

SVD的簡介和主要應(yīng)用領(lǐng)域以及原理與幾何意義

從集合上講, M 是將二維平面上的點(diǎn)(x,y) 經(jīng)過線性變換到另一個(gè)點(diǎn)的變換矩陣,如下所示:

SVD的簡介和主要應(yīng)用領(lǐng)域以及原理與幾何意義

該變換的幾何效果是,變換后的平面沿著x水平方向進(jìn)行了3倍拉伸,垂直方向沒有發(fā)生變化。

3 SVD 推導(dǎo)

該部分的推導(dǎo)從幾何層面上去理解二維的SVD,總體的思想是:借助 SVD 可以將一個(gè)相互垂直的網(wǎng)格 (orthogonal grid) 變換到另外一個(gè)互相垂直的網(wǎng)格。

可以通過二維空間中的向量來描述這件事情。

首先,選擇兩個(gè)互相正交的單位向量v1和v2(也可稱為一組正交基)。

M 是一個(gè)變換矩陣。

向量Mv1 , Mv2也是一組正交向量(也就是v1和v2經(jīng)過M變換得到的)。

u1, u2分別是Mv1, Mv2的單位向量(即另一組正交基),且有:

SVD的簡介和主要應(yīng)用領(lǐng)域以及原理與幾何意義

則,σ1,σ2分別為Mv1 , Mv2的模(也稱為M的奇異值)。

設(shè)任意向量x,有:

SVD的簡介和主要應(yīng)用領(lǐng)域以及原理與幾何意義

SVD的簡介和主要應(yīng)用領(lǐng)域以及原理與幾何意義

根據(jù)線代知識(shí),向量的內(nèi)積可用向量的轉(zhuǎn)置來表示:

SVD的簡介和主要應(yīng)用領(lǐng)域以及原理與幾何意義

至此,SVD 使用幾何意義的形式推導(dǎo)完畢,其中:

SVD的簡介和主要應(yīng)用領(lǐng)域以及原理與幾何意義

關(guān)于 SVD 的一些重要的結(jié)論性總結(jié):

任意的矩陣M是可以分解成三個(gè)矩陣;

V表示了原始域的標(biāo)準(zhǔn)正交基;

U表示經(jīng)過M變換后的新標(biāo)準(zhǔn)正交基;

∑表示了V中的向量與U中相對(duì)應(yīng)向量之間的比例(伸縮)關(guān)系;

∑中的每個(gè)σ會(huì)按從大到小排好順序,值越大代表該維度重要性越高;

在利用 SVD 做數(shù)據(jù)信息提取或壓縮時(shí),往往依據(jù)一些啟發(fā)式策略,如直接設(shè)定只提取∑ 中的前k項(xiàng),或者另一種較常用的做法是保留矩陣中一定百分比的能量信息,一般可設(shè)定為 90%,能量信息比例的計(jì)算可先求得所有奇異值平方總和,然后將奇異值的平方依次累加到總值的 90% 為止,形如:

SVD的簡介和主要應(yīng)用領(lǐng)域以及原理與幾何意義

# -*- 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)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • LSI
    LSI
    +關(guān)注

    關(guān)注

    0

    文章

    274

    瀏覽量

    28011
  • 矩陣
    +關(guān)注

    關(guān)注

    0

    文章

    423

    瀏覽量

    34548
  • SVD
    SVD
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    12173

原文標(biāo)題:SVD-矩陣奇異值分解 —— 原理與幾何意義

文章出處:【微信號(hào):AI_shequ,微信公眾號(hào):人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA典型應(yīng)用領(lǐng)域以及解決方案

    FPGA典型應(yīng)用領(lǐng)域以及解決方案
    發(fā)表于 08-20 13:36

    集成運(yùn)放這種形式有何意義

    整個(gè)結(jié)構(gòu)只有上面的電阻和電容,該運(yùn)放不需要平衡電阻。最大的困惑是在2腳前沒有電阻形成固定增益,該電路輸出等于電源電壓,增益無窮大,這樣有何意義
    發(fā)表于 10-07 17:24

    AD8221是什么?AD8221主要有哪些應(yīng)用領(lǐng)域?

    AD8221是什么?它有什么作用?AD8221主要有哪些特點(diǎn)?AD8221主要有哪些應(yīng)用領(lǐng)域?基于AD8221的交流耦合儀用放大器該怎么去設(shè)計(jì)?
    發(fā)表于 04-14 06:05

    雙層屏蔽有何意義

    雙層屏蔽有何意義?
    發(fā)表于 05-27 06:27

    什么是向量?向量的點(diǎn)乘與幾何意義是什么?

    什么是向量?向量的點(diǎn)乘與幾何意義是什么?什么是矩陣?什么是線性系統(tǒng)?什么是向量空間?
    發(fā)表于 06-18 07:28

    MCU主要有哪些應(yīng)用領(lǐng)域?其優(yōu)點(diǎn)是什么?

    MCU為何如此重要?MCU主要有哪些應(yīng)用領(lǐng)域?其優(yōu)點(diǎn)是什么?
    發(fā)表于 06-26 06:58

    慣量是什么意思?有何意義

    慣量是什么意思?慣量有什么作用?有何意義?伺服電機(jī)選型時(shí),為什么要慣量匹配?
    發(fā)表于 06-28 09:11

    MMA9555有哪些核心優(yōu)勢以及應(yīng)用領(lǐng)域

    智能手環(huán)是什么?MMA9555的主要功能是什么?MMA9555有哪些核心優(yōu)勢?MMA9555有哪些應(yīng)用領(lǐng)域?
    發(fā)表于 08-06 07:04

    STM32F407看門狗有何意義

    STM32F407看門狗有何意義?STM32F407看門狗有何功能?
    發(fā)表于 09-24 06:55

    DCS集散控制系統(tǒng)時(shí)鐘同步有何意義

    DCS集散控制系統(tǒng)時(shí)鐘同步有何意義?DCS系統(tǒng)現(xiàn)場時(shí)鐘同步有哪些應(yīng)用?
    發(fā)表于 09-30 08:45

    AD7793簡介及其應(yīng)用領(lǐng)域

    低噪聲可編程儀表放大器(PGA,Gain = 1、2、4、8、16、32、64、128可調(diào))內(nèi)置低噪聲、低漂移帶隙基準(zhǔn)電壓源內(nèi)置可編程激勵(lì)電流源、熔斷電流源、偏置電壓發(fā)生器(激勵(lì)電流 10uA、210uA、1mA可調(diào))四線串行SPI通信接口2. AD7793應(yīng)用領(lǐng)域:熱電偶溫.
    發(fā)表于 01-14 06:06

    單片機(jī)主要有哪些應(yīng)用領(lǐng)域

    單片機(jī)可以做什么?單片機(jī)主要有哪些應(yīng)用領(lǐng)域呢?
    發(fā)表于 01-17 06:23

    濕敏元件的應(yīng)用領(lǐng)域簡介

    濕敏元件的應(yīng)用領(lǐng)域簡介 隨著現(xiàn)代工業(yè)和科學(xué)技術(shù)的發(fā)展以及人們對(duì)環(huán)境要求的提高,對(duì)濕度的測量和控制顯得日益重要。
    發(fā)表于 11-30 08:51 ?921次閱讀

    氮化鎵當(dāng)前的主要應(yīng)用領(lǐng)域

    從消費(fèi)類、工業(yè)領(lǐng)域以及汽車領(lǐng)域介紹了氮化鎵器件的應(yīng)用技術(shù)情況,重點(diǎn)介紹了氮化鎵當(dāng)前的主要應(yīng)用領(lǐng)域,消費(fèi)類快充
    發(fā)表于 02-06 15:19 ?4684次閱讀
    氮化鎵當(dāng)前的<b class='flag-5'>主要</b><b class='flag-5'>應(yīng)用領(lǐng)域</b>

    傅里葉變換的目的和意義 傅里葉變換幾何意義

    傅里葉變換的目的和意義 傅里葉變換幾何意義? 傅里葉變換是一種重要的數(shù)學(xué)工具和分析方法,它在信號(hào)處理、圖像處理、音頻處理等領(lǐng)域有著廣泛的應(yīng)用。它的目的是將一個(gè)時(shí)域信號(hào)轉(zhuǎn)換為頻域信號(hào),從而更好地理
    的頭像 發(fā)表于 09-07 16:14 ?3487次閱讀