奇异值分解——SVD

奇异值分解(Singular Value Decomposition)

一、可以将一个矩阵A分解为三个矩阵的乘积

一个正交矩阵U(orthogonal matrix)
一个对角矩阵S(diagonal matrix)
一个正交矩阵V的转置。

在这里插入图片描述
(1)正交矩阵:方阵,列(行)向量是标准正交向量(正交的单位向量,内积为0)
在这里插入图片描述

(2)对角矩阵:除主对角线外的值都是0。可以是方阵、长矩阵
在这里插入图片描述
在这里插入图片描述
(3)实对称矩阵
实对称矩阵的特征值为实数;
实对称矩阵的特征向量相互垂直,可通过正交化将这些特征向量变成正交矩阵。
在这里插入图片描述
实对称矩阵B可以通过正交化变为正交矩阵Q

对称矩阵可以分解为正交矩阵 X 对角矩阵 X 正交矩阵的转置

二、推导——看SVD分解

在这里插入图片描述
U、V是正交矩阵,矩阵A可以分解为三个的乘积,那么怎么求U V?

A是m * n 矩阵,AAT ATA 都是对称矩阵,上面(3)证明了对称矩阵可以拆分为三个乘积
在这里插入图片描述
在这里插入图片描述
所以:
U中的列向量是AAT的标准正交特征向量
V中的列向量是ATA的标准正交特征向量
S对角线上是U/V中特征向量所对应的特征值的平方根,沿着对角线递减

三、举例说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、应用

(一)求解齐次线性方程组

 A V = U S
也就是说V中的列向量经过矩阵A的变换之后,得到的列向量少了一维,同时V中的最后一列经过变换之后变成了0这最后一列0恰恰是特征值0对应的特征向量变换后的结果

因此通过SVD分解找到特征值为0所对应V中的列向量,这个向量恰恰是Ax=0的解(可以应用SVD求解《单应矩阵》)。

也许会遇到特征值不为0的情况,那么可以找最小特征值所对应V中的特征向量作为解。

(二)数据的压缩

SVD分解可以将一个矩阵进行分解,对角矩阵对角线上的特征值递减存放。
在这里插入图片描述
矩阵A 的近似:

矩阵A 的近似
综上,当仅保留对角矩阵S上所有非零特征值时,不会改变矩阵的样子;
但是当去掉非零特征值时,相乘得到的矩阵就和原矩阵不同了
去掉的特征值越大,相乘得到的矩阵与原矩阵差距越大。

(1)举一个图片压缩的例子

图片也是一个矩阵,下面我们举一个图片压缩的例子。以lena图像为例,图3包含一张原始图像和一张处理后的图像,本例中共保留了150个特征值,图像处理前后相差很小。图4是在MATLAB上运行后的数据。
原始图像中共有1864725个元素,可以压缩成USV三个矩阵,三个矩阵共有812700个元素。
在这里插入图片描述
在这里插入图片描述

clc;
clear;
close all;
I = imread('lena.jpg');
k = 150; %保留的较大特征值的个数
for i = 1:3                                    图片有三维,每次取其中两维
    img(:,:,i) = double(I(:,:,i));         将其转为双精度浮点类型
    [U, S, V] = svd(img(:,:,i));          进行SVD处理。
    S = S(1:k, 1:k);                         
    U = U(:, 1:k);
    V = V(:, 1:k); 
    img_post(:,:,i) = U * S * V';           575*k    k*k       k*1081   这些乘一起就恢复为原来的了
end
figure
imshow(I,[]);                          imshow是显示图像
title('original image');
figure;
imshow(uint8(img_post),[]);
title('post image');
usvsize = 3*(length(U(:))+ length(S(:)) + length(V(:)));
orimgsize = length(I(:));

转载自:
https://mp.weixin.qq.com/s?src=11&timestamp=1577068237&ver=2051&signature=Yg2UyNBRNnC7EmvVm8KK2C3WEaAW3XunzkkpD7YqCDCsffVp5lStBdt1IgmvDPbpNdEIdW6C1baKwHfS3TrB9A0Hvl5VXVssrMR7kpJPqorYrHuv41pfqKjWIWlW*f&new=1

发布了65 篇原创文章 · 获赞 4 · 访问量 2385

猜你喜欢

转载自blog.csdn.net/babychrislee3/article/details/103658484