![速通深度学习数学基础](https://wfqqreader-1252317822.image.myqcloud.com/cover/778/47793778/b_47793778.jpg)
1.4 矩阵
1.4.1 矩阵的基本概念
1.线性变换
对于向量x,基于新的需求,我们可能需要从新的角度进行观测。新的角度有可能将某些特征放大,同时忽略一些无关因素。
例如,一个学生有语文、数学、外语的成绩,而不同的专业对各科成绩及它们之间的组合的要求是不一样的,如翻译专业需要语文和外语成绩好,计算机专业需要数学和外语成绩好。因此,不同的专业在招生时需要考察成绩的不同方面,即观测角度不同,从数学的角度看,就是对考试成绩进行坐标变换。
那么,具体怎么做呢?我们可以构建一个新的坐标系,y为x在新坐标系下的坐标。例如,在2维空间中,使用向量w1和w2构建新的坐标系。在这里,不需要w1和w2正交,y就是新坐标系下的坐标,即
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_59.jpg?sign=1738992688-TZXOtQsVBSTxyQf1czIDI0ZaCNCf9nNp-0-c2a3a5015a56350bce2593b3641f370b)
例如,有,
,
,那么
,坐标变换如图1-13所示。
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_64.jpg?sign=1738992688-Q11QvW8CebobuHcFapRL2NbsnekeaaQn-0-4e9c1556434a5a39ac908e90c05f7bd8)
图1-13
我们一般把这种坐标变换写成
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_65.jpg?sign=1738992688-USHJhUUJmFnOLVQSUvOdZS35jxVmBzV4-0-8d43649c45ef455698eb033ce473d677)
W称为矩阵,表示特定的坐标变换形式。通过矩阵W对向量x进行坐标变换,得到结果y,一般写成矩阵乘法,即
y=Wx
上述运算也称为线性变换。
更一般的,向量变化前后的维度不一定相等。例如,对于n维向量x,选用m个坐标轴重新观测,那么
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_66.jpg?sign=1738992688-JU0fV9u7gCG2KWpZuzzhPoUDbTuoEmW6-0-37cb1a04a09be8f44932b0f9a38da96d)
坐标变换为
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_67.jpg?sign=1738992688-KW5dl0Tx9KzRRp2ec9m1nFMfVQmH1lt7-0-d591fd8ba6c12ae563b417a22bd6d3bd)
n维向量x,通过矩阵W进行变换,得到m维向量y。
矩阵W一共有m行n列,记为W∈Rm×n。特别的,如果m=n,即W的行数和列数相等,就称W为方阵。
需要注意的是,矩阵的列数要和向量的行数相等,这样线性变换才有意义,即W∈Rm×n,x∈Rn×1。
特别的,对于2维向量,如果,
,
,则对任意x都有坐标不会发生变换,也就是说,我们默认向量所在的坐标系为
。一般来说,我们把对角线元素为1,其他位置元素都为0的矩阵称为单位矩阵,用E表示。
x≡Wx
从坐标变换的角度理解矩阵,需要注意以下三点。
● 新坐标系下的原点不发生变化。
● 新坐标系的坐标轴不一定相互垂直。
● 新坐标系的坐标刻度未必是1,也就是说,不要求‖wi‖=1。这样,坐标变换就会起到伸缩向量的作用,即向量到原点(原点本身不变)的距离会发生变化。
y=Wx
‖y‖≠‖x‖
2.线性变换的几何意义
我们也可以从几何的角度看向量。例如,对于2维向量,它对应于2维坐标系中的一个点,如图1-14所示。
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_73.jpg?sign=1738992688-CDsdmtKUYKpnM0aamHwPr98zOkBs292C-0-3c62a98860c921d8390fa25cf03e3f31)
图1-14
在机器学习中,为了使数据之间的区分度更高,以便后续处理,我们往往需要对数据点进行一些基本操作,具体如下。
● 伸缩,如图1-15所示,,在两个坐标轴的方向进行缩放。
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_75.jpg?sign=1738992688-zU5n2fkF6rWddnE1ICvdlCXJUGMO9u52-0-09d96c192a792d6735ac4c3b2fbfa313)
图1-15
● 旋转,如图1-16所示,坐标点围绕坐标轴逆时针旋转θ。
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_76.jpg?sign=1738992688-5StKerWHEryNWfRIeJtSAK3Y6yGlgylY-0-51af3dfb4d013b36b3bcf7bfc1965b61)
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_77.jpg?sign=1738992688-oRP7jJFB5BADUR12WAohFp9rjRKoiFl5-0-86a31edf55bfae83912ba9189f0e0a90)
图1-16
对一个向量依次进行旋转和缩放操作,可以写成
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_78.jpg?sign=1738992688-iwOCtfYPUQQekrezy22MSTFYP0xAspYO-0-c53249b5e5ab7d744a62a8bc00c7dc86)
重新整理一下,上式可以写成
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_79.jpg?sign=1738992688-2PLiMh16oIWTAFgP3k8O0OUOJyaCtp2Y-0-e24bd7b205e3d36129f6e7b25a8725ff)
其中
w11=acosθ
w12=-asinθ
w21=bsinθ
w22=bcosθ
因此,w11、w12、w21、w22对应于一套旋转和缩放操作。于是,可以写成
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_80.jpg?sign=1738992688-I5PfJJTzKDbNOSdK2M1Cq41eXiMAF7zM-0-6adaa1cadd9fcb02543980c68e243c26)
所以,对向量进行旋转和缩放也是一种线性变换。
对向量的常见操作还有平移,即,
,如图1-17所示。
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_83.jpg?sign=1738992688-c8Ug8B3v4BgYNdWMxWLKEbTNZL4EnmqT-0-d2c2ceaec126b1bf644343e7df000e40)
图1-17
对向量的平移也可以写成线性变换的形式,不过这里需要对原向量进行改造,先增加一个维度并为其取值1,再进行线性变换,即
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_85.jpg?sign=1738992688-I5o3ummTuPyj5sNIaU9iaukinwvyJRge-0-ee9ca640c2e00f3bb7adf1b8dbb48889)
可以看出,低维空间中的平移等价于高维空间中的线性变换。在线性回归、逻辑回归和神经网络中,经常可以看到以下写法。
y=Wx
这里并非没有偏置,只不过已经把偏置隐藏并写入W,且x增加了取值为1的维度。
3.矩阵的乘法
对于向量x,我们可以依次使用矩阵W和矩阵S连续进行两次线性变换,即
z=Wx
y=Sz
所以,有
y=SWx
在这里,W的列数和S的行数必须相等,即当W∈Rm×n时,S∈Rn×k。
上述操作也可以换一个角度理解。将矩阵W和矩阵S相乘,即M=WS,再用M对向量x进行线性变换,即y=Mx。例如
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_86.jpg?sign=1738992688-XP8Npfn1XytmsTQbMWLEyVuXRstpEkQU-0-62a770975b3bc11410abe6a762aea5fa)
可以发现,对矩阵连续进行两次线性变换,在效果上等价于一次线性变换。这也是深度神经网络必须使用激活函数的原因。
如果W∈Rn×n和S∈Rn×n为同尺寸的方阵,那么WS和SW都可以进行运算。但是,一般来说,WS≠SW,即在进行多次线性变换时,顺序也很重要。
在机器学习中,线性变换是常见的操作,可以进行升维,也可以进行降维,它们有不同的作用。例如,x∈Rn×1,W∈Rm×n,那么x'=Wx∈Rm×1。如果m>n,就相当于把向量映射至高维空间,虽然产生了特征冗余,但合理的线性变换可以使数据在空间中的分布更利于分类。如果m<n,就是进行特征降维。特征降维一般是为了去除噪声,例如主成分分析(PCA)、神经网络自动特征筛选。
4.转置矩阵
把矩阵W∈Rm×n行列对调,得到的矩阵记为WT∈Rn×m。WT称为W的转置矩阵,即
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_87.jpg?sign=1738992688-bcpFLCMkHHpWEDDGt0RtFKOrZqIsYKIW-0-6438967d67ea55d787505c3a77fcea0d)
那么
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_88.jpg?sign=1738992688-Iea1RNZBpmEINRdBlU88UxULFAcxPQV7-0-985f8490542fe79b71be4e4c5c012797)
如果A∈Rm×n,B∈Rm×n,那么
(A+B)T=AT+BT
如果A∈Rm×n,B∈Rn×k,那么
(AB)T=BTAT
如果对于方阵W∈Rn×n,满足W=WT,那么称W为对称矩阵。
为对称矩阵的充要条件是对于任意i和j均满足wij=wji。
对于任意矩阵W∈Rm×n,有
(WWT)T=(WT)TWT=WWT
因此,WWT是对称矩阵。同理,WTW也是对称矩阵。
5.矩阵的迹
对于方阵W∈Rn×n,其对角线上各元素之和称为矩阵W的迹,一般记作tr(W)。例如,对矩阵
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_90.jpg?sign=1738992688-MvRw6KDto2dNlhHvGxGPcmZtltGF7lla-0-ea25346d4e8eaf4fdd131601533be125)
有
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_91.jpg?sign=1738992688-8afDPsf4wvIL1NBmqburmc3sKDWJW0wb-0-88aedd4863d6a24414c38ea7f6a1e5d8)
有两个方阵A∈Rn×n、B∈Rn×n,它们的迹有如下关系。
● tr(AB)=tr(BA)。
● tr(mA+nB)=mtr(A)+ntr(B)。