6

【直观详解】线性代数中的转置正交正规正定

 3 years ago
source link: https://charlesliuyx.github.io/2017/10/17/%E3%80%90%E7%9B%B4%E8%A7%82%E8%AF%A6%E8%A7%A3%E3%80%91%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E4%B8%AD%E7%9A%84%E6%AD%A3%E4%BA%A4%E6%AD%A3%E8%A7%84%E6%AD%A3%E5%AE%9A%E8%BD%AC%E7%BD%AE/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【直观详解】线性代数中的转置正交正规正定

2017-10-17

3890

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

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

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

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

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

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

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

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

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

R−1=[00.80.6−0.8−0.360.48−0.60.48−0.64]

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

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

正定与半正定矩阵

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

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

→vTA→v=→vTλ→v=λ→vT→v

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

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

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

→xT→y>0

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

cos(θ)=→xT→y‖→x‖∗‖→y‖ˆȷ

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

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

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

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

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

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

矩阵的转置

什么是转置

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

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

为什么转置

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

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

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

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

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

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

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

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

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

性质找规律

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

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

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

A=[a1b1a2b2]AT=[a1a2b1b2]

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

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

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

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

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

T′=[[a1a2][b2−a2][a1a2][−b1a1][b1b2][b2−a2][b1b2][−b1a1]]

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

B′=[aT[b2−a2]aT[−b1a1]bT[b2−a2]bT[−b1a1]]=[a⋅[b2−a2]a⋅[−b1a1]b⋅[b2−a2]b⋅[−b1a1]]

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

  • c 变换到 ATˆȷ 为逆时针旋转90°
  • d 变换到 ATˆı 为顺时针旋转90°

c 和 d 组成的列空间设为 C,写成公式为

C=[cd]=[b2−b1−a2a1]

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

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

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

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

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]

由 TA=AT 可得

T=[aTA−1bTA−1]

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

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

AAT=[a1b1a2b2][a1a2b1b2]=[a21+b21a1a2+b1b2a1a2+b1b2a22+b22]

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

AAT=RAATΛAAT(R−1)AAT

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

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

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

R′AAT=[cosα−sinαsinαcosα]

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

AT=A−1R′AAT[−1001]ΛAATR′AAT[−1001]

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

AT=A−1RαMyΛRαMy

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

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

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

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

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK