第三十一讲:线性变换及对应矩阵
本讲从线性变换这一概念出发,每个线性变换都对应于一个矩阵。矩阵变换的背后正是线性变换的概念。理解线性变换的方法就是确定它背后的矩阵,这是线性变换的本质
1 线性变换
1.1 定义
如何判断一个操作是不是线性变换?
线性变换需满足以下两个要求:
T(v+w)=T(v)+T(w)(1)
T(cv)=cT(v)(2)即变换 T 需要同时满足加法和数乘不变的性质。将两个性质合成一个式子为:
T(cv+dw)=cT(v)+dT(w)
特例:T(0)=0 。
这可以用来判断某些变换是否是线性变换。
1.2 例子
例1
二维空间中的投影操作,
T:R2→R2
,它可以将某向量投影在一条特定直线上。检查一下投影操作,如果我们将向量长度翻倍,则其投影也翻倍;两向量相加后做投影与两向量做投影再相加结果一致。所以投影操作是线性变换。
“坏”例1
二维空间的平移操作,即平面平移:
比如,上图中向量长度翻倍,再做平移,明显与向量平移后再翻倍的结果不一致。
有时我们也可以用一个简单的特例判断线性变换,检查 T(0)=?0 。零向量平移后结果并不为零。
所以平面平移操作并不是线性变换。
“坏”例2
求模运算,
T(v)=∥v∥, T:R3→R1
,这显然不是线性变换,比如如果我们将向量翻倍则其模翻倍,但如果我将向量翻倍取负,则其模依然翻倍。所以
T(−v)≠−T(v)
例2
旋转
45∘
操作,
T:R2→R2
,也就是将平面内一个向量映射为平面内另一个向量。检查可知,如果向量翻倍,则旋转后同样翻倍;两个向量先旋转后相加,与这两个向量先相加后旋转得到的结果一样。
所以从上面的例子我们知道,投影与旋转都是线性变换。
例3
矩阵乘以向量,
T(v)=Av
,这也是一个(一系列)线性变换,不同的矩阵代表不同的线性变换。根据矩阵的运算法则有
A(v+w)=A(v)+A(w), A(cv)=cAv
。比如取
A=[100−1]
,作用于平面上的向量
v
,会导致
线性变换的核心,就是该变换使用的相应的矩阵 。例4
比如我们需要做一个线性变换,将一个三维向量降至二维, T:R3→R2 ,则在 T(v)=Av 中, v∈R3, T(v)∈R2 ,所以 A 应当是一个2×3 矩阵。如果我们希望知道线性变换 T 对整个输入空间
Rn 的影响,我们可以找到空间的一组基 v1, v2, ⋯, vn ,检查 T 对每一个基的影响T(v1), T(v2), ⋯, T(vn) ,由于输入空间中的任意向量都满足:
v=c1v1+c2v2+⋯+cnvn(3)所以我们可以根据 T(v) 推出线性变换 T 对空间内任意向量的影响,得到:
T(v)=c1T(v1)+c2T(v2)+⋯+cnT(vn)(4) 现在我们需要考虑,如何把一个与坐标无关的线性变换变成一个与坐标有关的矩阵呢?
在 3 式中,
c1,c2,⋯,cn 就是向量 v 在基v1,v2,⋯,vn 上的坐标,比如分解向量 v=⎡⎣⎢324⎤⎦⎥=3⎡⎣⎢100⎤⎦⎥+2⎡⎣⎢010⎤⎦⎥+4⎡⎣⎢001⎤⎦⎥ ,式子将向量 v 分解在一组标准正交基⎡⎣⎢100⎤⎦⎥,⎡⎣⎢010⎤⎦⎥,⎡⎣⎢001⎤⎦⎥ 上。当然,我们也可以选用矩阵的特征向量作为基向量,基的选择是多种多样的。一个矩阵 A 用以表示线性变换
T:Rn→Rm 。我们需要两组基,一组用以表示输入向量,一组用以表示输出向量。令 v1,v2,⋯,vn 为输入向量的基,这些向量来自 Rn ; w1,w2,⋯,wm 作为输出向量的基,这些向量来自 Rm 。例5
我们用二维空间的投影矩阵作为例子:从图中可以看到,设输入向量的基为 v1,v2 , v1 就在投影上,而 v2 垂直于投影方向,输出向量的基为 w1,w2 ,而 v1=w1,v2=w2 。那么如果输入向量为 v=c1v1+c2v2 ,则输出向量为 T(v)=c1v1 ,也就是线性变换去掉了法线方向的分量,输入坐标为 (c1,c2) ,输出坐标变为 (c1,0) 。
找出这个矩阵并不困难, Av=w ,则有 [1000][c1c2]=[c10] 。
本例中我们选取的基极为特殊,一个沿投影方向,另一个沿投影法线方向,其实这两个向量都是投影矩阵的特征向量,所以我们得到的线性变换矩阵是一个对角矩阵,这是一组很好的基。
所以,如果我们选取投影矩阵的特征向量作为基,则得到的线性变换矩阵将是一个包含投影矩阵特征值的对角矩阵。
继续这个例子,我们不再选取特征向量作为基,而使用标准基 v1=[10],v2=[01] ,我们继续使用相同的基作为输出空间的基,即 v1=w1,v2=w2 。此时投影矩阵为 P=aaTaTa=[12121212] ,这个矩阵明显没有上一个矩阵“好”,不过这个矩阵也是一个不错的对称矩阵。
2 变换矩阵
总结通用的计算线性变换矩阵 A 的方法:
确定输入空间的基
v1,v2,⋯,vn ,确定输出空间的基 w1,w2,⋯,wm ;
计算 T(v1)=a11w1+a21w2+⋯+am1wm ,求出的系数 ai1 就是矩阵 A 的第一列;
继续计算
T(v2)=a12w1+a22w2+⋯+am2wm ,求出的系数 ai2 就是矩阵 A 的第二列;以此类推计算剩余向量直到
vn ;最终得到矩阵 A=⎡⎣⎢⎢⎢⎢⎢a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎤⎦⎥⎥⎥⎥⎥ 。
矩阵的逆相当于线性变换的逆。矩阵的乘积相当于线性变换的乘积。矩阵乘法也源于线性变换
例1
最后我们介绍一种不一样的线性变换, T=ddx :
设输入为 c1+c2x+c3x3 ,基为 1,x,x2 ;
则输出为导数: c2+2c3x ,基为 1,x ;
所以我们需要求一个从三维输入空间到二维输出空间的线性变换,目的是求导。求导运算其实是线性变换,因此我们只要知道少量函数的求导法则(如 sinx,cosx,ex ),就能求出它们的线性组合的导数。
有 A⎡⎣⎢c1c2c3⎤⎦⎥=[c22c3] ,从输入输出的空间维数可知, A 是一个
2×3 矩阵, A=[001002] 。3 本站总结
1.线性变换的要求。
线性变换需满足以下两个要求:
T(v+w)=T(v)+T(w)(1)
T(cv)=cT(v)(2)即变换 T 需要同时满足加法和数乘不变的性质。将两个性质合成一个式子为:
T(cv+dw)=cT(v)+dT(w)
特例:T(0)=0 。
这可以用来判断某些变换是否是线性变换。2. 矩阵的逆相当于线性变换的逆。矩阵的乘积相当于线性变换的乘积。矩阵乘法也源于线性变换
第三十二讲:基变换和图像压缩
1. 图像压缩
1.1 定义
本讲我们介绍一种图片有损压缩的一种方法:JPEG。
假设我们有一张图片,长宽皆为 512 个像素,我们用 xi 来表示第 i 个像素,如果是灰度照片,通常
xi 可以在 [0,255] 上取值,也就是8 bits。对于这承载这张图片信息的向量 x 来说,有x∈Rn,n=5122 。而如果是彩色照片,通常需要三个量来表示一个像素,则向量长度也会变为现在的三倍。如此大的数据不经过压缩很难广泛传播。教学录像采用的压缩方法就是JPEG(Joint Photographic Expert Group,联合图像专家组),该方法采用的就是基变换的方式压缩图像。比如说一块干净的黑白,其附近的像素值应该非常接近,此时如果一个像素一个像素的描述黑白灰度值就太浪费空间了,所以标准基在这种情况下并不能很好的利用图片的特性。
我们知道,标准基是 ⎡⎣⎢⎢⎢⎢10⋮0⎤⎦⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢01⋮0⎤⎦⎥⎥⎥⎥⋯⎡⎣⎢⎢⎢⎢00⋮1⎤⎦⎥⎥⎥⎥ ,我们想寻找一个更好的基。
我们试试使用别的基描述图片,比如:
基中含有的一个向量 [11⋯1]T ,即分量全为 1 的向量,一个向量就可以完整的给出所有“像素一致图像”的信息;
另一个向量
[1−1⋯1−1]T ,正负交替出现,比如描述国际象棋棋盘;第三个个向量 [11⋯−1−1]T ,一半正一半负,比如描述一半亮一半暗的图片;
1.2 傅里叶基
现在我们来介绍傅里叶基,以 8×8 傅里叶基为例(这表示我们每次只处理 8×8 像素的一小块图像):
Fn=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢111⋮11ww2⋮wn−11w2w4⋮w2(n−1)⋯⋯⋯⋱⋯1wn−1w2(n−1)⋮w(n−1)2⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥, w=ei2π/n, n=8 ,我们不需要深入 8 阶傅里叶基的细节,先看看使用傅里叶基的思路是怎样的。
每次处理
8×8 的一小块时,会遇到 64 个像素,也就是 64 个基向量, 64 个系数,在 64 维空间中利用傅里叶向量做基变换:
输入信号 x 为
64 维向量 −→−−基变换 输出信号 c 为x 在傅里叶基下的 64 个系数。注意前面做的都是无损的步骤,我们只是选了 R64 的一组基,接着把信号用这组基表达出来。
接下来的步骤就涉及到压缩和损失了:
一种方法是扔掉较小的系数,这叫做阈值量化(thresholding),我们设定一个阈值,任何不在阈值范围内的基向量、系数都将丢弃,虽然有信息损失,但是只要阈值设置合理,肉眼几乎无法区别压缩前后的图片。经由此步处理,向量 c 变为
c^ ,而 c^ 将有很多 0 。通常
[11⋯1]T 向量很难被丢弃,它通常具有较大的系数。但是 [1−1⋯1−1]T 向量在平滑信号中的可能性就很小了。前一个的向量称作低频信号,频率为 0 ,后一个向量称作高频信号,也是我们能够得到的最高频率的信号,如果是噪音或抖动输出的就是它。比如讲课的视频图像信号,这种平滑的情形下输出的大多是低频信号,很少出现噪音。
接着我们用这些系数
c^ 来重构信号,用这些系数乘以对应的基向量 x^=∑c^ivi ,但是这个求和不再是 64 项求和了,因为压缩后的系数中有很多零存在,比如说我们压缩后 c^ 中仅有三个非零项,那么压缩比将近达到 21:1 。我们再来提一下视频压缩:视频是一系列连续图像,且相近的帧非常接近,而我们的压缩算法就需要利用这个相近性质。在实际生活中,从时间与空间的角度讲,事物不会瞬间改变。
1.3 小波基
接下来介绍另一组基,它是傅里叶基的竞争对手,名为小波(wavelets),同样以 8×8 为例: ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢11111111⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢1111−1−1−1−1⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢11−1−10000⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢000011−1−1⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢1−1000000⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢001−10000⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢00001−100⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢0000001−1⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 。
可以看出傅里叶基中频率最高的向量为小波后四个基向量之和。
在标准基下的一组(按八个一组计算, P∈R8 )像素 P=⎡⎣⎢⎢⎢⎢p1p2⋮p8⎤⎦⎥⎥⎥⎥=c1w1+c2w2+⋯+cnwn=[w1 w2 ⋯ wn]⎡⎣⎢⎢⎢⎢c1c2⋮cn⎤⎦⎥⎥⎥⎥ ,即 P=WC ,我们需要计算像素向量在另一组基下系数,所以有 C=W−1P 。
此时我们发现,如果选取“好的基”会使得逆矩阵的求解过程变简单,所谓“好的基”:
计算快;
我们需要大量使用 P=WC 来计算整幅图在另一个基下的表达,在傅里叶变换中我们学习了快速傅里叶变换(FFT),同样的在小波变换中也有快速小波变换(FWT);
另外的,我们需要计算其逆矩阵,所以这个逆矩阵计算也必须快,观察小波基不难发现基向量相互正交,假设我们已经对小波基做了标准化处理,则小波基是一组标准正交基,所以有 W−1=WT 。
仅需少量向量即可最大限度的重现图像。
因为在图像压缩时,我们会舍弃较小的系数,比如 c5,c6,c7,c8 ,所以后四个的基向量都会被舍弃,重现图像时仅使用前四个基向量的线性组合,而好的基选取会在使用较少基的前提下保证图像质量不会有较大损失。
题外话:JPEG2000标准会将小波基纳入压缩算法。我们上面介绍的是最简单的一组小波基,而FBI的指纹识别或JPEG2000的压缩算法纳入的是更加平滑的小波基,不会使用像上面介绍的那种直接从 1 变为
−1 的基。要想继续了解小波基,可以参考一篇非常精彩的文章:能不能通俗的讲解下傅立叶分析和小波分析之间的关系?——“咚懂咚懂咚“的答案
2. 基变换
前面介绍小波基的时候我们就已经做了一次基变换。
将目标基的向量按列组成矩阵 W ,则基变换就是
[x]−→−−x=Wc[c] 。看一个例子,有线性变换 T:R8→R8 ,在第一组基 v1,v2,⋯,v8 上计算得到矩阵 A ,在第二组基
w1,w2,⋯,wn 上计算得到矩阵 B 。先说结论,矩阵A,B 是相似的,也就是有 B=M−1AM ,而 M 就是基变换矩阵。进行基变换时会发生两件事:
1.每个向量都会有一组新的坐标,而
x=Wc 就是新旧坐标的关系;2.每个线性变换都会有一个新的矩阵,而 B=M−1AM 就是新旧矩阵的关系。
再来看什么是 A 矩阵?
对于第一组基
v1,v2,⋯,v8 ,要完全了解线性变换 T ,只需要知道T 作用在基的每一个向量上会产生什么结果即可。因为在这个基下的每一个向量都可以写成 x=c1v1+c2v2+⋯+c8v8 的形式,所以 T(x)=c1T(v1)+c2T(v2)+⋯+c8T(v8) 。而且 T(v1)=a11v1+a21v2+⋯+a81v8, T(v2)=a12v1+a22v2+⋯+a82v8, ⋯ ,则矩阵 [A]=⎡⎣⎢⎢⎢⎢⎢a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎤⎦⎥⎥⎥⎥⎥
这些都是上一讲结尾所涉及的知识。
最后我们以一个更加特殊的基收场,设 v1,v2,⋯,vn 是一组特征向量,也就是 T(vi)=λ1vi ,那么问题就是矩阵 A 是什么?
继续使用线性变换中学到的,输入的第一个向量
v1 经由 T 加工后得到λ1v1 ,第二个向量 v2→Tλ2v2 ,继续做下去,最终有 vn=vn→Tλnvn 。除了 λivi 外的其他基向量都变为 0 ,那么矩阵A=⎡⎣⎢⎢⎢⎢⎢λ1λ2⋱λn⎤⎦⎥⎥⎥⎥⎥ 。这是一个非常完美的基,我们在图像处理中最想要的就是这种基,但是找出像素矩阵的特征向量代价太大,所以我们找了一些代价小同时效果也不错的基,比如小波基、傅里叶基等等。前几年的压缩感知也是通过这个思想(可以参考:形象易懂讲解算法II——压缩感知)
3.本章总结
- 图像压缩(定义,小波,傅立叶);
- 基变换。
第三十三讲:单元检测3复习
在上一次复习中,我们已经涉及了求特征值与特征向量(通过解方程 det(A−λI)=0 得出 λ ,再将 λ 带入 A−λI 求其零空间得到 x )。
接下的章节来我们学习了:
解微分方程
dudt=Au ,并介绍了指数矩阵 eAt ;介绍了对称矩阵的性质 A=AT ,了解了其特征值均为实数且总是存在足量的特征向量(即使特征值重复特征向量也不会短缺,总是可以对角化);同时对称矩阵的特征向量正交,所以对称矩阵对角化的结果可以表示为 A=QΛQT ;
接着我们学习了正定矩阵;
然后学习了相似矩阵, B=M−1AM ,矩阵 A,B 特征值相同,其实相似矩阵是用不同的基表示相同的东西;
最后我们学习了奇异值分解 A=UΣVT 。
现在,我们继续通过例题复习这些知识点。
1. 解方程 dudt=Au=⎡⎣⎢010−1010−10⎤⎦⎥u 。
首先通过 A 的特征值/向量求通解
u(t)=c1eλ1tx1+c2eλ2tx2+c3eλ3tx3 ,很明显矩阵是奇异的,所以有 λ1=0 ;继续观察矩阵会发现 AT=−A ,这是一个反对称矩阵(anti-symmetric)或斜对陈矩阵(skew-symmetric),这与我们在第二十一讲介绍过的旋转矩阵类似,它的特征值应该为纯虚数(特征值在虚轴上),所以我们猜测其特征值应为 0⋅i, b⋅i, −b⋅i 。通过解 det(A−λI)=0 验证一下: ⎡⎣⎢−λ10−1−λ10−1λ⎤⎦⎥=λ3+2λ=0,λ2=2√i,λ3=−2√i 。
此时 u(t)=c1+c2e2√itx2+c3e−2√itx3 , e2√it 始终在复平面单位圆上,所以 u(t) 及不发散也不收敛,它只是具有周期性。当 t=0 时有 u(0)=c1+c2+c3 ,如果使 e2√iT=1 即 2√iT=2πi 则也能得到 u(T)=c1+c2+c3 ,周期 T=π2√ 。
另外,反对称矩阵同对称矩阵一样,具有正交的特征向量。当矩阵满足什么条件时,其特征向量相互正交?答案是必须满足 AAT=ATA 。所以对称矩阵 A=AT 满足此条件,同时反对称矩阵 A=−AT 也满足此条件,而正交矩阵 Q−1=QT 同样满足此条件,这三种矩阵的特征向量都是相互正交的。
上面的解法并没有求特征向量,进而通过 u(t)=eAtu(0) 得到通解,现在我们就来使用指数矩阵来接方程。如果矩阵可以对角化(在本例中显然可以),则 A=SΛS−1,eAt=SeΛtS−1=S⎡⎣⎢⎢⎢⎢⎢eλ1teλ1t⋱eλ1t⎤⎦⎥⎥⎥⎥⎥S−1 ,这个公式在能够快速计算 S,λ 时很方便求解。
2.已知矩阵的特征值 λ1=0,λ2=c,λ3=2 ,特征向量 x1=⎡⎣⎢111⎤⎦⎥,x2=[1−10],x3=⎡⎣⎢11−2⎤⎦⎥ :
c 如何取值才能保证矩阵可以对角化?其实可对角化只需要有足够的特征向量即可,而现在特征向量已经足够,所以
c 可以取任意值。c 如何取值才能保证矩阵对称?我们知道,对称矩阵的特征值均为实数,且注意到给出的特征向量是正交的,有了实特征值及正交特征向量,我们就可以得到对称矩阵。
c 如何取值才能使得矩阵正定?已经有一个零特征值了,所以矩阵不可能是正定的,但可以是半正定的,如果 c 去非负实数。
c 如何取值才能使得矩阵是一个马尔科夫矩阵?在第二十四讲我们知道马尔科夫矩阵的性质:必有特征值等于 1 ,其余特征值均小于1 ,所以 A 不可能是马尔科夫矩阵。
c 取何值才能使得 P=A2 是一个投影矩阵?我们知道投影矩阵的一个重要性质是 P2=P ,所以有对其特征值有 λ2=λ ,则 c=0,2 。题设中的正交特征向量意义重大,如果没有正交这个条件,则矩阵 A 不会是对称、正定、投影矩阵。因为特征向量的正交性我们才能直接去看特征值的性质。
3.复习奇异值分解,
A=UΣVT :先求正交矩阵 V :
ATA=VΣTUTUΣVT=V(ΣTΣ)VT ,所以 V 是矩阵ATA 的特征向量矩阵,而矩阵 ΣTΣ 是矩阵 ATA 的特征值矩阵,即 ATA 的特征值为 σ2 。接下来应该求正交矩阵 U :
AAT=UΣTVTVΣUT=U(ΣTΣ)UT ,但是请注意,我们在这个式子中无法确定特征向量的符号,我们需要使用 Avi=σiui ,通过已经求出的 vi 来确定 ui 的符号(因为 AV=UΣ ),进而求出 U 。已知
A=[u1 u2][3002][v1 v2]T 从已知的 Σ 矩阵可以看出, A 矩阵是非奇异矩阵,因为它没有零奇异值。另外,如果把
Σ 矩阵中的 2 改成−5 ,则题目就不再是奇异值分解了,因为奇异值不可能为负;如果将 2 变为0 ,则 A 是奇异矩阵,它的秩为1 ,零空间为 1 维,v2 在其零空间中。4. A 是正交对称矩阵,那么它的特征值具有什么特点?
首先:
对于对称矩阵,有特征值均为实数;
然后是正交矩阵,直觉告诉我们|λ|=1 。来证明一下,对于 Qx=λx ,我们两边同时取模有 ∥Qx∥=|λ|∥x∥ ,而正交矩阵不会改变向量长度,所以有 ∥x∥=|λ|∥x∥ ,因此 λ=±1 。
A 是正定的吗?并不一定,因为特征向量可以取
−1 。A 的特征值没有重复吗?不是,如果矩阵大于
2 阶则必定有重复特征值,因为只能取 ±1 。A 可以被对角化吗?是的,任何对称矩阵、任何正交矩阵都可以被对角化。
A 是非奇异矩阵吗?是的,正交矩阵都是非奇异矩阵。很明显它的特征值都不为零。证明 P=12(A+I) 是投影矩阵。
我们使用投影矩阵的性质验证,首先由于 A 是对称矩阵,则
P 一定是对称矩阵;接下来需要验证 P2=P ,也就是 14(A2+2A+I)=12(A+I) 。来看看 A2 是什么, A 是正交矩阵则AT=A−1 ,而 A 又是对称矩阵则A=AT=A−1 ,所以 A2=I 。带入原式有 14(2A+2I)=12(A+I) ,得证。我们可以使用特征值验证, A 的特征值可以取
±1 ,则 A+I 的特征值可以取 0,2 , 12(A+I) 的特征值为 0,1 ,特征值满足投影矩阵且它又是对称矩阵,得证。