特征值分解,奇异值分解

特征值分解

定义

特征值,特征向量

设A为数域F上的n阶方阵,如果存在数域F上的数 λ \lambda λ和非零向量a,使得 A a = λ a Aa=\lambda a Aa=λa,则称 λ \lambda λ为A的一个特征值(特征根),a称为A的属于特征值 λ \lambda λ的一个特征向量。

特征值分解

(方阵 A n ∗ n A_{n*n} Ann可以做特征值分解的充要条件是其有n个线性无关的特征向量,即矩阵可对角化的条件。)
特征值分解是将一个矩阵分解成下面的形式:
A = Q Σ Q − 1 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ A=Q\Sigma Q^{-1}                A=QΣQ1
其中Q是这个矩阵A的特征向量组成的矩阵,为可逆矩阵; Σ = d i a g ( λ 1 , λ 2 , . . . , λ n ) \Sigma= diag(λ1, λ2, ..., λn) Σ=diag(λ1,λ2,...,λn)是一个对角阵,对角线上的元素为特征值。

实对称矩阵的良好性质

实对称矩阵(特征值均为实数)总能找到一个正交矩阵U,使得 U − 1 A U U^{-1}AU U1AU是对角矩阵

理解

  1. 特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么。
  2. 从线性空间的角度看,特征值越大,则矩阵在对应的特征向量上的方差越大,信息量越多。
  3. 从最优化的角度。矩阵的特征值的大小与函数值的变化快慢有关,在最大特征值所对应的特征方向上函数值变化最大,也就是该方向上导数最大。
  4. 特征值特征向量:作用后只伸缩变换,而不旋转或投影。一个矩阵相当于一个线性变换,矩阵乘以一个向量后得到的向量,相当于将这个向量进行了伸缩、旋转、投影的线性变换。
  5. 应用:PCA降维,最优化等。(通过舍去一部分不重要的特征来实现)

实验

from scipy.linalg import eig
import numpy as np
import matplotlib.pyplot as pltA=[[1,2],[2,1]]
evals,evecs=eig(A)  #即获取特征值和特征向量
#%%
print(evecs) #evecs每一列是一个特征向量
evecs=evecs[:,0],evecs[:,1]
#%%
fig,ax=plt.subplots()
#通常软件绘图,默认都是将坐标轴置于画布(figure)的最下侧(x轴),最左侧(y轴),也即将坐标原点置于左下角
for spine in ['left','bottom']:ax.spines[spine].set_position('zero')
ax.grid(alpha=0.4)
xmin,xmax=-3,3
ymin,ymax=-3,3
ax.set(xlim=(xmin,xmax),ylim=(ymin,ymax))
for v in evecs:ax.annotate(s="",xy=v,xytext=(0,0),arrowprops=dict(facecolor='blue',shrink=0,alpha=0.6,width=0.5))#xy(箭头尖端)和xytext位置(文本位置)都以数据坐标为单位。
x=np.linspace(xmin,xmax,3)
for v in evecs:a=v[1]/v[0]ax.plot(x,a*x,'r-',lw=0.4)
plt.show()

在这里插入图片描述

奇异值分解

定义

(非方阵矩阵无法进行特征值分解,而奇异值分解是一种适用于任意矩阵的分解方法。)
特征值分解是将一个矩阵分解成下面的形式:
A = U Σ V T \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ A=U\Sigma V^{T}                A=UΣVT
其中A为 m ∗ n m*n mn的方阵;U为 m ∗ m m*m mm,U中的向量是正交的,其中的向量被称为左奇异向量; Σ = d i a g ( λ 1 , λ 2 , . . . , λ n ) \Sigma= diag(λ1, λ2, ..., λn) Σ=diag(λ1,λ2,...,λn)是一个 m ∗ n m*n mn的对角阵,对角线上的元素为奇异值;V为 n ∗ n n*n nn,V中的向量是正交的,其中的向量被称为右奇异向量;

实验

U,sigma,V=np.linalg.svd(img)
pressedimg=np.dot(U[:,0:100],np.dot(sigma[0:k,0:k],V[0:k,:]))

特征值分解和奇异值分解的联系

首先思考 A m ∗ n A_{m*n} Amn为非方阵,无法进行特征值分解,但是 A A T AA^T AAT A T A A^TA ATA便为对称矩阵方阵,可以进行特征值分解,且由于对称性,对应的特征向量正交。

即U 矩阵(左奇异矩阵)的列向量分别是 A A T AA^T AAT的特征向量;行满秩时这样构造。
V矩阵(右奇异矩阵)的列向量分别是 A T A A^TA ATA的特征向量。列满秩的时候这样计算构造证明。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部