![速通深度学习数学基础](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=1739492002-7pU6C3xe9kY0PwabI8Kso46ufTxWebcm-0-6a136fe64330f47c0f96cb72ae5a4e4a)
例如,有,
,
,那么
,坐标变换如图1-13所示。
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_64.jpg?sign=1739492002-alCZiFqbVZ12HWEhlVaFHpGWvkK87xbo-0-9c7fa6e291ebc96461c402393a0e7ea4)
图1-13
我们一般把这种坐标变换写成
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_65.jpg?sign=1739492002-AziCKHmhUrfzwbsl4buNzCH7l1S69MXD-0-1390bae6edb567e73006baaf47100540)
W称为矩阵,表示特定的坐标变换形式。通过矩阵W对向量x进行坐标变换,得到结果y,一般写成矩阵乘法,即
y=Wx
上述运算也称为线性变换。
更一般的,向量变化前后的维度不一定相等。例如,对于n维向量x,选用m个坐标轴重新观测,那么
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_66.jpg?sign=1739492002-pWboXq8XAtei4YwUUPgfTB6wOB0dWn6P-0-c6ecae5bb3b3e1981bc9c2b97df3d6d3)
坐标变换为
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_67.jpg?sign=1739492002-QqYW5ArYOldq6wwQWFcqRO8efOX5ITlw-0-50b9bd2074feaee981b74a45b403eb25)
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=1739492002-xcUntYJb00JWg3pItr7xWj2KWVk0uNVv-0-9fedbb8531496d4dbf5abddcd9f13f62)
图1-14
在机器学习中,为了使数据之间的区分度更高,以便后续处理,我们往往需要对数据点进行一些基本操作,具体如下。
● 伸缩,如图1-15所示,,在两个坐标轴的方向进行缩放。
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_75.jpg?sign=1739492002-pHfow90CjSH6CObXi3FT60whktcJbm0v-0-e91eadc943347f43a758909e730b727c)
图1-15
● 旋转,如图1-16所示,坐标点围绕坐标轴逆时针旋转θ。
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_76.jpg?sign=1739492002-NH5Llassiku7hOtxwpspKFjufdOTjjN9-0-976b81415edaf4fde32913b72746d23d)
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_77.jpg?sign=1739492002-jHkpN8Pq7FERouLScJd3O6QLwfqEGk9p-0-71292e500df028c1b8bd161b336ee24c)
图1-16
对一个向量依次进行旋转和缩放操作,可以写成
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_78.jpg?sign=1739492002-9TxmjBQ170vbXDSjm1tr04PCXAtvusXv-0-a78a2884ba3a5c1badc0742ee483093a)
重新整理一下,上式可以写成
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_79.jpg?sign=1739492002-s1Nqid6XPluXYGImrsgrXgVKhGxIqRmq-0-9bcf516434ff655002cde1d2a30ccde8)
其中
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=1739492002-aZqgScQCcGYHZ77YGkrVM7ECpNgq6cwF-0-e7a7e6f6dc431418bb4c800b1139ef21)
所以,对向量进行旋转和缩放也是一种线性变换。
对向量的常见操作还有平移,即,
,如图1-17所示。
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_83.jpg?sign=1739492002-TKzzhn4V1HL6L3JWFlui2U445LXEE7iL-0-e848af73b11a4992668a9d3f36d28a5a)
图1-17
对向量的平移也可以写成线性变换的形式,不过这里需要对原向量进行改造,先增加一个维度并为其取值1,再进行线性变换,即
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_85.jpg?sign=1739492002-MD4bnrO88i3bMTCyrxfUd18Il3J6jJSK-0-7a28a71096b3a86f144c1561b1f04b0a)
可以看出,低维空间中的平移等价于高维空间中的线性变换。在线性回归、逻辑回归和神经网络中,经常可以看到以下写法。
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=1739492002-VLO9pQSN3NR15EPguCuxYMPzC8J8O3ek-0-6ea128d612e65bd438ee85221b05fd62)
可以发现,对矩阵连续进行两次线性变换,在效果上等价于一次线性变换。这也是深度神经网络必须使用激活函数的原因。
如果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=1739492002-gpkRlfaXQADtEZSM4fIHBfYK8nyN46uU-0-38987be72d9042204aa14ffdd0e100ea)
那么
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_88.jpg?sign=1739492002-Wkail5rQbMYa2ikTbeAhjddnwXa7sxCZ-0-51c2f34eabe3d190936afbdb04db6eb8)
如果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=1739492002-inzuUhFKs3eD3HhgeK9G3XYa0BRUMXRP-0-be7614b688f67b5464b006c9e2c450a1)
有
![](https://epubservercos.yuewen.com/D80F69/27210566704740106/epubprivate/OEBPS/Images/txt001_91.jpg?sign=1739492002-JQDz6hBA6Tw2g2ZJQWAJP1QryI27cmdh-0-fe59c836bc84ff37a03fac0248734139)
有两个方阵A∈Rn×n、B∈Rn×n,它们的迹有如下关系。
● tr(AB)=tr(BA)。
● tr(mA+nB)=mtr(A)+ntr(B)。