国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

奇異值分解(SVD)和圖像壓縮

這篇具有很好參考價(jià)值的文章主要介紹了奇異值分解(SVD)和圖像壓縮。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在本文中,我將嘗試解釋 SVD 背后的數(shù)學(xué)及其幾何意義,還有它在數(shù)據(jù)科學(xué)中的最常見的用法,圖像壓縮。

奇異值分解(SVD)和圖像壓縮

奇異值分解是一種常見的線性代數(shù)技術(shù),可以將任意形狀的矩陣分解成三個(gè)部分的乘積:U、S、V。原矩陣A可以表示為:

奇異值分解(SVD)和圖像壓縮

具體來說,A矩陣中的奇異值就是\Sigma矩陣中的對(duì)角線元素,它們是矩陣A的特征值的平方根,表示A矩陣在各個(gè)主方向上的拉伸程度。U矩陣是AAT的特征向量構(gòu)成的正交矩陣,表示數(shù)據(jù)集在降維后的新的坐標(biāo)系中的投影。V矩陣是ATA的特征向量構(gòu)成的正交矩陣,表示每個(gè)數(shù)據(jù)點(diǎn)在降維后的新坐標(biāo)系中的坐標(biāo)。

一個(gè)矩陣的奇異值(singular values)是指其奇異值分解中的\Sigma矩陣的對(duì)角線上的元素,也就是特征值的平方根。換句話說,矩陣的奇異值是矩陣的奇異值分解中量度矩陣對(duì)輸入矩陣進(jìn)行的線性變換的尺度因子。

奇異值在很多應(yīng)用中都有廣泛的應(yīng)用,例如在圖像處理中,它可以用來對(duì)圖像進(jìn)行壓縮和降噪;在推薦系統(tǒng)中,它可以用來對(duì)用戶的偏好進(jìn)行建模和推薦相關(guān)的產(chǎn)品或服務(wù);在自然語言處理中,它可以用來對(duì)文本數(shù)據(jù)進(jìn)行降維和特征提取等。

數(shù)學(xué)原理

如果我們有一個(gè)矩陣A

要計(jì)算 SVD,首先需要通過找到 AA^{T} 的特征值來計(jì)算奇異值。

奇異值分解(SVD)和圖像壓縮

上述矩陣的特征方程為:

奇異值分解(SVD)和圖像壓縮

奇異值分解(SVD)和圖像壓縮

所以得到的奇異值是:

奇異向量就是 ATA 的正交特征向量集。ATA 的特征值是 25、9 和 0,由于 ATA 是對(duì)稱的,我們知道特征向量是正交的。

所以,先計(jì)算 λ=25

奇異值分解(SVD)和圖像壓縮

然后進(jìn)行化簡:

奇異值分解(SVD)和圖像壓縮

其方向的單位向量為:

奇異值分解(SVD)和圖像壓縮

同理 對(duì)于 λ = 9,特征向量為:

奇異值分解(SVD)和圖像壓縮

對(duì)于第三個(gè)特征向量 0,我們可以使用它垂直于 v1 和 v2 的屬性:

奇異值分解(SVD)和圖像壓縮

求解上述方程得到第三個(gè)特征向量

奇異值分解(SVD)和圖像壓縮

現(xiàn)在,我們計(jì)算 U,得到

奇異值分解(SVD)和圖像壓縮

這樣就得到了最終的 SVD 方程:

奇異值分解(SVD)和圖像壓縮

圖像壓縮

通過僅保留最重要的奇異值及其對(duì)應(yīng)的奇異向量,SVD 被用于圖像壓縮以減小圖像的大小。這可以從根本上減少在不丟失其最重要的視覺數(shù)據(jù)的情況下存儲(chǔ)圖像所需的額外存儲(chǔ)量。

我們將使用下面的圖像進(jìn)行圖像壓縮:

奇異值分解(SVD)和圖像壓縮

導(dǎo)入庫和讀取圖片十分簡單

 import requests
 import cv2
 import numpy as np
 import matplotlib.pyplot as plt
 
 img = cv2.imread('flower.bmp')
 gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
 gray_image = gray_image.astype(np.float64)

這里我們將圖像轉(zhuǎn)換成灰度圖,執(zhí)行奇異值分解

 U, s, V = np.linalg.svd(gray_image, full_matrices=False)

奇異值分解(SVD)和圖像壓縮

numpy中就包含了該方法,所有我們直接調(diào)用即可,我們看看前 10 個(gè)奇異值

 top_10_singular_values = s[:10]

奇異值分解(SVD)和圖像壓縮

可視化

 plt.plot(range(1, len(s) + 1), s, 'r-')
 plt.xlabel("Rankings")
 plt.ylabel("Singular Values")
 plt.title("Singular Values versus their Rankings")
 plt.savefig("Singular_values_vs_rankings.png")
 plt.show()

奇異值分解(SVD)和圖像壓縮

從奇異值和排序圖中可以注意到圖像的大部分值都包含在少量奇異值中,所以可以得出到較高的奇異值包含的圖像信息水平非常低,這也說明使用奇異值分解進(jìn)行降維和圖像壓縮是可行的。

現(xiàn)在,讓我們嘗試重建和顯示圖像。

 k_values = [10, 50, 100]
 
 plt.figure(figsize=(12,6))
 
 for i in range(len(k_values)):
     low_rank = U[:, :k_values[i]] @ np.diag(s[:k_values[i]]) @ V[:k_values[i], :]
     plt.subplot(2,3,i+1),
     plt.imshow(low_rank, cmap='gray'),
     plt.title(f"For K value = {k_values[i]}")
     plt.savefig("Reconstruction_with_k_values.png")

奇異值分解(SVD)和圖像壓縮

可以注意到具有不同 K 值的所有圖像都有顯著差異。使用了前 10 個(gè)奇異值,結(jié)果圖像一點(diǎn)也不清晰。使用了前 50 個(gè)奇異值,生成的圖像比之前的圖像清晰多了,但是還有一些輕微的模糊。當(dāng)我們使用前 100 個(gè)奇異值時(shí),圖像比前兩張圖像越來越清晰,基本和原圖很接近了。隨著 K 值的增加,圖像的清晰度也會(huì)增加。

總結(jié)

本文介紹了奇異值分解 (SVD) 的數(shù)學(xué)原理和一個(gè)實(shí)際的應(yīng)用案例,可以看到SVD是一種強(qiáng)大的圖像壓縮方法,有助于在減小圖像尺寸的同時(shí)保留大部分重要的視覺信息。

https://avoid.overfit.cn/post/f0a675aad6994b61a2aa93fb647a0633

作者:Neokai文章來源地址http://www.zghlxwxcb.cn/news/detail-409081.html

到了這里,關(guān)于奇異值分解(SVD)和圖像壓縮的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【線性代數(shù)/機(jī)器學(xué)習(xí)】矩陣的奇異值與奇異值分解(SVD)

    我們知道,對(duì)于一個(gè) n × n ntimes n n × n 的矩陣 A A A ,如果 A A A 有 n n n 個(gè)線性無關(guān)的特征向量,則 A A A 可以相似對(duì)角化,即存在可逆矩陣 P P P 使得 A = P Λ P ? 1 A=PLambda P^{-1} A = P Λ P ? 1 ,其中 Λ Lambda Λ 是 A A A 的特征值組成的對(duì)角陣。 P P P 的列實(shí)際上就是 A A A 的特征向

    2024年02月10日
    瀏覽(18)
  • 矩陣篇(五)-- 特征值分解(EVD)和奇異值分解(SVD)

    矩陣篇(五)-- 特征值分解(EVD)和奇異值分解(SVD)

    ????????設(shè) A n × n A_{n times n} A n × n ? 有 n n n 個(gè)線性無關(guān)的特征向量 x 1 , … , x n boldsymbol{x}_{1}, ldots, boldsymbol{x}_{n} x 1 ? , … , x n ? ,對(duì)應(yīng)特征值分別為 λ 1 , … , λ n lambda_{1}, ldots, lambda_{n} λ 1 ? , … , λ n ? A [ x 1 ? x n ] = [ λ 1 x 1 ? λ n x n ] Aleft[begin{array}{lll

    2024年02月08日
    瀏覽(14)
  • 機(jī)器學(xué)習(xí)實(shí)戰(zhàn):Python基于SVD奇異值分解進(jìn)行矩陣分解(八)

    機(jī)器學(xué)習(xí)實(shí)戰(zhàn):Python基于SVD奇異值分解進(jìn)行矩陣分解(八)

    1.1 奇異值分解 奇異值分解( Singular Value Decomposition,SVD )是一種重要的矩陣分解技術(shù),它可以將一個(gè)矩陣分解為三個(gè)矩陣的乘積,分別為左奇異矩陣、奇異值矩陣和右奇異矩陣。SVD 的原理可以描述如下: 對(duì)于任意 m × n m times n m × n 的矩陣 A A A ,它的 SVD 分解為: A = U $

    2024年02月02日
    瀏覽(26)
  • SVD,奇異值分解的計(jì)算步驟以及實(shí)例講解

    SVD,奇異值分解的計(jì)算步驟以及實(shí)例講解

    ? ? ? ?奇異值分解 (singular value decomposition,SVD),已經(jīng)成為矩陣計(jì)算中最有用和最有效的工具之一,并且在最小二乘問題、最優(yōu)化、統(tǒng)計(jì)分析、信號(hào)與圖像處理、系統(tǒng)理論與控制等領(lǐng)域得到廣泛應(yīng)用。 ? ? ? ? 首先我們都知道方陣是可以特征值分解的,那么問題來了,如果矩

    2024年02月04日
    瀏覽(23)
  • 奇異值分解SVD(singular value decomposition)

    奇異值分解SVD(singular value decomposition)

    SVD是一個(gè)很有用的矩陣因子化方法。 SVD提出的目的:任何一個(gè) m × n mtimes n m × n 的矩陣都可以當(dāng)作一個(gè)超橢圓(高維空間的橢圓),可以把它們當(dāng)作單位球體S的像。 一個(gè)超橢圓可以通過將單位球型在正交方向 u 1 , u 2 , . . . , u m mathbf{u_1},mathbf{u_2},...,mathbf{u_m} u 1 ? , u 2 ?

    2024年02月03日
    瀏覽(28)
  • 時(shí)序分解 | MATLAB實(shí)現(xiàn)基于SVD奇異值分解的信號(hào)分解分量可視化

    時(shí)序分解 | MATLAB實(shí)現(xiàn)基于SVD奇異值分解的信號(hào)分解分量可視化

    效果一覽 基本介紹 SVD分解重構(gòu)算法,MATLAB程序,奇異值分解 (Singular Value Decomposition)是一種常見的矩陣分解方法,用于將矩陣分解成三個(gè)矩陣的乘積。在信號(hào)處理中,SVD 可以用于特征提取、信號(hào)降維、圖像壓縮等方面。SVD 的一個(gè)重要應(yīng)用是主成分分析 (PCA),可以用于提取數(shù)

    2024年02月11日
    瀏覽(31)
  • 【機(jī)器學(xué)習(xí)】 奇異值分解 (SVD) 和主成分分析 (PCA)

    【機(jī)器學(xué)習(xí)】 奇異值分解 (SVD) 和主成分分析 (PCA)

    ????????在機(jī)器學(xué)習(xí) (ML) 中,一些最重要的線性代數(shù)概念是奇異值分解 (SVD) 和主成分分析 (PCA)。收集到所有原始數(shù)據(jù)后,我們?nèi)绾伟l(fā)現(xiàn)結(jié)構(gòu)?例如,通過過去 6 天的利率,我們能否了解其構(gòu)成以發(fā)現(xiàn)趨勢(shì)? ????????對(duì)于高維原始數(shù)據(jù),這變得更加困難。這就像

    2024年02月15日
    瀏覽(23)
  • 奇異值分解(SVD)原理與在降維中的應(yīng)用

    奇異值分解(SVD)原理與在降維中的應(yīng)用

    奇異值分解(Singular Value Decomposition,以下簡稱SVD)是在機(jī)器學(xué)習(xí)領(lǐng)域廣泛應(yīng)用的算法,它不光可以用于降維算法中的特征分解,還可以用于推薦系統(tǒng),以及自然語言處理等領(lǐng)域。是很多機(jī)器學(xué)習(xí)算法的基石。本文就對(duì)SVD的原理做一個(gè)總結(jié),并討論在在PCA降維算法中是如何運(yùn)用運(yùn)

    2023年04月25日
    瀏覽(22)
  • ORB-SLAM之SVD奇異值分解——理論 (一)

    在學(xué)習(xí)《視覺SLAM十四講》過程中常遇到SVD奇異值分解,經(jīng)過一段時(shí)間的學(xué)習(xí),在此進(jìn)行記錄整理, 本篇主要整理SVD的數(shù)學(xué)理論基礎(chǔ), 下一篇 進(jìn)行整理 SVD 實(shí)際應(yīng)用 。 給定一大小為 m × m mtimes m m × m 的矩陣 A A A ( 方陣 ),其對(duì)角化分解可以寫成 A = U Λ U ? 1 A=ULambda U^{-1} A =

    2024年02月07日
    瀏覽(22)
  • 矩陣:采用奇異值分解(SVD)對(duì)n個(gè)點(diǎn)進(jìn)行平面擬合

    奇異值分解(Singular Value Decomposition, SVD),是線性代數(shù)中一種重要的矩陣分解,在信號(hào)處理、統(tǒng)計(jì)學(xué)等領(lǐng)域有重要應(yīng)用。奇異值分解在某些方面與對(duì)稱矩陣或厄米矩陣基于特征向量的對(duì)角化類似。對(duì)稱矩陣特征向量分解的基礎(chǔ)是譜分析,而奇異值分解則是譜分析理論在任意矩

    2023年04月08日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包