【直观详解】线性代数中的转置正交正规正定 | Go Further | Stay Hungry, Stay Foolish

【阅读时间】20min 4589 words
【内容简介】从【直观理解】线性代数的本质笔记出发,继续讨论几个线性代数中的概念,正交,正规,正定及转置的直观解释。旨在能帮助读者在看完后不会忘记什么是正交矩阵,什么是正规矩阵,转置部分进行了深入挖掘,希望找出一些几何直观的解释

在之前的【直观理解】线性代数的本质的笔记中,详细讨论了特征值与特征向量的几何直观意义

起初,研究线性代数,也是因为深入了解矩阵(变换)对机器学习中的很多优美公式的推导和理解有帮助。上篇笔记中,3B1B团队的讲解内容中没有涉及几个线性代数中的概念,且这些概念在做矩阵分解时会被用到。以上一篇笔记中的直观理解为基础(矩阵 = 变换)在这里做一个整理和记录

[](#%E6%AD%A3%E4%BA%A4%E7%9F%A9%E9%98%B5 "正交矩阵")正交矩阵

可能很多人已经有一个概念:正交(Orthogonal) = 垂直。但我们知道,正交的一定垂直,垂直的不一定正交(比如空间中两个不相交直线垂直)。提及垂直,首先出现你脑海中的特点是什么呢?我想是勾股数 a2+b2=c2a2+b2=c2 , 还有 cos(π2)=1cos⁡(π2)=1

那什么是正交矩阵呢?在讲这个概念之前,变换中有一种特殊变换:旋转变换。这种变换除了原点外没有特征向量,特征值恒为1,不对网格进行伸缩。或者说,这个变换保证了新列空间内和原列空间内所有对应向量的长度不变

三维情况下,单位矩阵(对角线为1,其他为0,即基向量构成的矩阵)E=[100010001]E=[100010001] 如下图所示

EE 中的三个基向量分别记为 Xa=[100]Xa=[100] ,Ya=[010]Ya=[010] ,Za=[001]Za=[001] ,用下标a来表示。之后对这个矩阵 EE 应用一个旋转变换,以 (0,−0.6,0.8)(0,−0.6,0.8) 为旋转轴,转90°。得到三个新的向量,用下标b来表示,记为 Xb=[00.80.6]Xb=[00.80.6] ,Yb=[−0.8−0.360.48]Yb=[−0.8−0.360.48] ,Zb=[−0.60.48−0.64]Zb=[−0.60.48−0.64]

根据基变换原理,易得旋转变换的矩阵表达式 R=[0−0.8−0.60.8−0.360.480.60.48−0.64]R=[0−0.8−0.60.8−0.360.480.60.48−0.64] 计算得特征向量为 (0,−0.75,1)(0,−0.75,1),发现这条向量即旋转轴!

此时我们考虑从 RR矩阵下变到 EE的变换矩阵是多少,即求 RR 矩阵的逆

R−1=⎡⎢⎣00.80.6−0.8−0.360.48−0.60.48−0.64⎤⎥⎦R−1=[00.80.6−0.8−0.360.48−0.60.48−0.64]

观察形式大家就可以发现一个有趣的特点 R−1=RTR−1=RT

正交矩阵有一个几何直观的特点,表示一个旋转变换,并且矩阵的逆和矩阵的转置相等

[](#%E6%AD%A3%E5%AE%9A%E4%B8%8E%E5%8D%8A%E6%AD%A3%E5%AE%9A%E7%9F%A9%E9%98%B5 "正定与半正定矩阵")正定与半正定矩阵

根据特征值和特征向量这篇笔记中的内容,我们知道特征值是对一个变换(矩阵)特性的有力表征,公式 A→v=λ→vAv→=λv→ 表示了变换中被留在张成空间内的向量就是特征向量的符号表达,其中 →vv→ 是特征向量,λλ 即特征值

我们对上式进行一些数学恒等变换,左乘 →vTv→T,得到

→vTA→v=→vTλ→v=λ→vT→v(2-1)(2-1)v→TAv→=v→Tλv→=λv→Tv→

此时我们会发现一些巧合,先来看看正定矩阵的正规定义:若一个 n×n的矩阵 MM 是正定的,当且仅当队友所有的非零实系数的向量 →vv→,都有 →vTM→v>0v→TMv→>0

我们暂时不考虑复数情况(在机器学习预见复数域的内容较少),结合上面的二公式,发现保证 →vTM→v>0v→TMv→>0 即使得 λ→vT→v>0λv→Tv→>0,其中 →vT→vv→Tv→一定大于等于0(由于 →vv→ 是一个1×n的向量,转置进行矩阵相乘实际效果计算元素的平方和),所以可以推出即正定矩阵就是使得特征值大于0

再回到正定矩阵的定义公式 →xTM→x>0x→TMx→>0,我们已经有深刻的理解 M→xMx→ 表示对向量 →xx→ 进行变换,记变换后的向量为 →y=M→xy→=Mx→ ,则我们可以把正定矩阵的公式写成

→xT→y>0(2-2)(2-2)x→Ty→>0

这个公式是不是很熟悉呢?它是两个向量的内积,对于内积,有公式:

cos(θ)=→xT→y∥→x∥∗∥→y∥^ȷcos⁡(θ)=x→Ty→‖x→‖∗‖y→‖ȷ^

∥→x∥∥→y∥‖x→‖‖y→‖ 表示 →xx→ 和 →yy→的长度,θθ 是它们之间的夹角。根据2-2式,可以得到 cos(θ)>0cos⁡(θ)>0,即它们之间的夹角小于90度

总结:如果说一个矩阵正定,则表示,一个向量经过此矩阵变换后的向量与原向量夹角小于90度

当然,加一个【半】字,是指这个小于变成小于等于

[](#%E6%AD%A3%E8%A7%84%E7%9F%A9%E9%98%B5 "正规矩阵")正规矩阵

矩阵中还有一张形状特殊的矩阵,被称为正规矩阵,定义为:如果矩阵 AA 满足 ATA=AATATA=AAT

更多的,如果矩阵 UU 满足 UTU=UUT=IUTU=UUT=I,其中 II 是单位矩阵,则称矩阵 UU 为酉矩阵

从变换的角度来看正规矩阵,先做一个变换 AA 再做一个变换 ATAT。并且交换两个矩阵的位置,最终结果相同

[](#%E7%9F%A9%E9%98%B5%E7%9A%84%E8%BD%AC%E7%BD%AE "矩阵的转置")矩阵的转置

[](#%E4%BB%80%E4%B9%88%E6%98%AF%E8%BD%AC%E7%BD%AE "什么是转置")什么是转置

在前面的三个描绘矩阵不同矩阵的概念中,多次使用了转置的概念。从矩阵形态的角度看,转置是将 AA 的所有元素关于一条从第1行第1列元素出发的向右下方45度的射线镜面翻转(下面的动图更加直观)

那么,从矩阵是表示变换的集合角度如何理解转置呢?

[](#%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BD%AC%E7%BD%AE "为什么转置")为什么转置

试图从另一个角度来理解其实也是为了回答另一个问题:为什么要定义转置这种操作呢?你可能会说,这就是一个【对角线镜像对称交换的操作】,从形式上来理解对一般人已完全足够

这里要深究的原因也只是为了克服在学习机器学习的过程中,公式里若出现转置符号,无法完全理解带来的生涩感(俗称强迫症),对博主来说,一个直接动机源于SVD算法

首先,考虑矩阵的列向量有具体的列空间的含义(对应 ^ıı^ 和 ^ȷȷ^ 的变换位置),若进行转置操作,列空间的性质会被完全破坏,或者说,转换成了一个新的列空间

[](#%E9%9D%9E%E6%96%B9%E9%98%B5 "非方阵")非方阵

考虑矩阵转置的几何含义是无意义的,或者说,对出现过矩阵转置的公式的进一步理解是没有帮助的

特别的,如果是向量形式(1×n的矩阵),转置很多时候出现,是为了进行二次型运算(即平方运算),设 x={x1,x2,…,xn}x={x1,x2,…,xn} 是一个1×n的矩阵

很多机器学习的教材中这里会是列矩阵,因为要切合列空间的概念。对于机器学习来说,这里的 x1x1 代表的数据的特征维度

计算二次型: xxT=x21+x22+…+x2nxxT=x12+x22+…+xn2 ,记过为一个数,表示的是距离

[](#%E6%96%B9%E9%98%B5 "方阵")方阵

列空间的概念,转置是一种非常特殊的旋转。这种旋转结合了横向镜面等特性,详细可以参看下图

从这幅图可以看出,如果想从几何变换的角度(类似3b1b的方法)来理解转置相当困难。此时,需要考虑换一种思考角度,性质数学计算(这可能也是解决一个数学问题最常用的两种手段,性质寻找共性,并推广演绎,数学计算导出同样问题的不同表现形式,并总结规律)

[](#%E6%80%A7%E8%B4%A8%E6%89%BE%E8%A7%84%E5%BE%8B "性质找规律")性质找规律

首先先用一个简单的例子,二维可视化,并寻找规律,得到下面图像

观察得到,和旋转有一定的关系的,但是其实这个几何意义已经十分抽象了,为了追根之底,从数学的角度进行一些更有意思的探究

[](#%E6%95%B0%E5%AD%A6%E8%AE%A1%E7%AE%97 "数学计算")数学计算

为了发掘 AA 和 ATAT 之间的关系,我们可以设有转换矩阵 TT,其描述了从 AA 到 ATAT 的变换,写成公式为:
TA=AT(1)(1)TA=AT
同时我们假设 AA 是一个2×2的矩阵,如下所示所示(列的不同为字母的不同a和b,行的不同为小标的1和2)

A=[a1b1a2b2]AT=[a1a2b1b2](2)(2)A=[a1b1a2b2]AT=[a1a2b1b2]

保证变换不会压缩维度,即 det(A)≠0det(A)≠0,利用(1)式,未知数,消元计算后,可以算出 TT,其中 det(A)=a1b2−b1a2det(A)=a1b2−b1a2

T=1det(A)[a1b2−a22a1(a2−b1)b2(b1−a2)a1b2−b21](3)(3)T=1det(A)[a1b2−a22a1(a2−b1)b2(b1−a2)a1b2−b12]

前面的 1det(A)1det(A) 作为一个常数,保证了 det(AT)=det(A)det(AT)=det(A),将后面关键的变换矩阵写成

T′=[a1b2−a22a1(a2−b1)b2(b1−a2)a1b2−b21](4)(4)T′=[a1b2−a22a1(a2−b1)b2(b1−a2)a1b2−b12]

把 (4)式进行整理,也写成矩阵相乘的形式,得到下式

T′=⎡⎢ ⎢ ⎢ ⎢⎣[a1a2][b2−a2][a1a2][−b1a1][b1b2][b2−a2][b1b2][−b1a1]⎤⎥ ⎥ ⎥ ⎥⎦(5)(5)T′=[[a1a2][b2−a2][a1a2][−b1a1][b1b2][b2−a2][b1b2][−b1a1]]

对于 AA 的列空间来说,有 a=[a1a2]a=[a1a2] 和 b=[b1b2]b=[b1b2] 观察到 TT 中包含列空间的两个项,把 T′T′ 整理得

B′=⎡⎢ ⎢ ⎢ ⎢⎣aT[b2−a2]aT[−b1a1]bT[b2−a2]bT[−b1a1]⎤⎥ ⎥ ⎥ ⎥⎦=⎡⎢ ⎢ ⎢ ⎢⎣a⋅[b2−a2]a⋅[−b1a1]b⋅[b2−a2]b⋅[−b1a1]⎤⎥ ⎥ ⎥ ⎥⎦(6)(6)B′=[aT[b2−a2]aT[−b1a1]bT[b2−a2]bT[−b1a1]]=[a⋅[b2−a2]a⋅[−b1a1]b⋅[b2−a2]b⋅[−b1a1]]

令 c=[b2−a2]c=[b2−a2] d=[−b1a1]d=[−b1a1] ,观察后发现规律:

  • cc 变换到 AT^ȷAȷ^T 为逆时针旋转90°
  • dd 变换到 AT^ıAı^T 为顺时针旋转90°

cc 和 dd 组成的列空间设为 CC,写成公式为

C=[cd]=[b2−b1−a2a1](7)(7)C=[cd]=[b2−b1−a2a1]

将(7)式左乘 AA 得到下式

AC=[a1b1a2b2]⋅[b2−b1−a2a1]=[det(A)00det(A)]=det(A)I(8)(8)AC=[a1b1a2b2]⋅[b2−b1−a2a1]=[det(A)00det(A)]=det(A)I

再将(8)式所有乘以 AA 的逆矩阵 A−1A−1 得到
C=A−1det(A)(9)(9)C=A−1det(A)
所以,构造的这个 CC 矩阵和 AA 矩阵的逆矩阵有关

另外,(4)式,即 T′T′ 矩阵还可以被写成

T′=⎡⎢ ⎢ ⎢ ⎢⎣[[a1b1a2b2][b2−a2]][[a1b1a2b2][−b1a1]]⎤⎥ ⎥ ⎥ ⎥⎦=⎡⎢ ⎢ ⎢ ⎢⎣[[a1b1a2b2]c][[a1b1a2b2]d]⎤⎥ ⎥ ⎥ ⎥⎦(10)(10)T′=[[[a1b1a2b2][b2−a2]][[a1b1a2b2][−b1a1]]]=[[[a1b1a2b2]c][[a1b1a2b2]d]]

或者可以写成

T′=⎡⎢ ⎢ ⎢ ⎢⎣[a1a2][b2−b1−a2a1][a2b2][b2−b1−a2a1]⎤⎥ ⎥ ⎥ ⎥⎦=[aT[cd]bT[cd]]=[cTCdTC]=det(A)[aTA−1bTA−1](11)(11)T′=[[a1a2][b2−b1−a2a1][a2b2][b2−b1−a2a1]]=[aT[cd]bT[cd]]=[cTCdTC]=det(A)[aTA−1bTA−1]

由 TA=ATTA=AT 可得

T=[aTA−1bTA−1](12)(12)T=[aTA−1bTA−1]

这时候,可以得出一个结论,矩阵的转置的过程和矩阵的逆是有关系的,是矩阵逆的一个更加复杂的表现形式

有了这个作为基础,考虑一下具有对称性,构造 AATAAT,这个复合变换有着很好的对称性和分解性(接下来为了方便,默认非粗体表示的矩阵变换),因为

AAT=[a1b1a2b2][a1a2b1b2]=[a21+b21a1a2+b1b2a1a2+b1b2a22+b22](13)(13)AAT=[a1b1a2b2][a1a2b1b2]=[a12+b12a1a2+b1b2a1a2+b1b2a22+b22]

考虑任何不进行压缩维度变换的矩阵都可以进行特征分解,则有

AAT=RAATΛAAT(R−1)AAT(14)(14)AAT=RAATΛAAT(R−1)AAT

之后左乘(这里补充一下,所有的左乘操作在几何意义上来说,就是附加了一个新的变换)A−1A−1,得到

AT=A−1RAATΛAAT(R−1)AAT(15)(15)AT=A−1RAATΛAAT(R−1)AAT

根据之前(1)式的例子进行计算,发现 RAAT=(R−1)AATRAAT=(R−1)AAT,并且 RAATRAAT 首先将空间关于 y 轴对称,之后旋转 αα 角度,所以假设定义

R′AAT=[cosα−sinαsinαcosα](16)(16)RAAT′=[cosα−sinαsinαcosα]

利用上面的推导,带入(15)式,得到:

AT=A−1R′AAT[−1001]ΛAATR′AAT[−1001](17)(17)AT=A−1RAAT′[−1001]ΛAATRAAT′[−1001]

用更加清晰的符号改写(17)式得到

AT=A−1RαMyΛRαMy(18)(18)AT=A−1RαMyΛRαMy

MyMy 表示的是关于y轴对称
RαRα 表示逆时针旋转 αα 度
ΛΛ 表示一种伸缩变换

这里的(18式)结论和上面的作图规律,还有(12)式从某种程度上来说有相似的地方

其实应该从矩阵分解的部分来再次思索矩阵转置的意义,可详见什么是PCA,SVD

最终感觉关于转置还是研究的不够透彻,可能需要拔高到另一个层面去理解会更加直观,但是限于水平,只能至此(并不是数学专业的学生)

[](#%E6%80%BB%E7%BB%93 "总结")总结

  • AATAAT 的对称特性非常有用
  • 正交 = 旋转 = 垂直,并且逆等于转置
  • 正规矩阵的定义和转置息息相关,但是从形式上来看,约束条件是逐步变弱的,其实这些特征都是描述了空间一个变换的一些变化模式,比如旋转,伸缩的特殊模式,只需要有一个基本的直观理解,在机器学习领域就已经足够用了

Original url: Access
Created at: 2018-11-26 10:44:47
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论