本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
Week 1 Notes
矩阵的表示分为三部分:
i 和 j 通常从 1 开始。一个 m×n 的矩阵可以表示如下: A=a11a21...am1a12a22...am2a13a23...am3............a1na2n...amn
按位相加即可: (acbd)+(egfh)=(a+ec+gb+fd+h)
按位相乘即可: k⋅(acbd)=(k⋅ak⋅ck⋅bk⋅d)
矩阵的乘法不遵循交换律: A×B=B×A
根据矩阵的乘法,矩阵的要求第一个矩阵的列数与第二个矩阵的行数匹配。相乘之后的新矩阵大小为第一个矩阵的行数乘以第二个矩阵的列数,即: (m×n)⋅(n×p)=(m×p)
对于指定的 i 行 j 列的成员 cij,其值等于第一个矩阵的 i 行元素和第二个矩阵的 j 行元素按位相乘,最后相加的总和,也就是第一个矩阵的 i 行与第二个矩阵的 j 行点积的结果。因此,通项公式可以写作:
cij=k=1∑naik⋅bkj
来看看这个公式的详细过程。假设参与相乘的两个矩阵名为 A, B。A 为 m×n 矩阵,B 为 n×p 矩阵。我们希望求出 C 中第 i 行,第 j 列的值 Cij。由于矩阵的乘法是用第一个矩阵的行与第二个矩阵的对应列进行点积,也就是按号相乘再求和,那么参与运算的行列应该是:
通过观察可以从上图看出,矩阵的乘法首先会确定第一个矩阵的行位置与第二个矩阵的列位置,然后开始累加。累加的次数正好是第一个矩阵的列数(也是第二个矩阵的行数),也就是 n。唯一不同的地方在于n 代表的意义(下标不同)。假设 k 为当前 n 的值,可知:
由于 k 可以表示任意 [1,n] 的值,因此 Cij 的通项公式就可以写成 i,j 固定,但是 k 在变化的累积和形式了。
矩阵乘法遵循结合律,即:
(AB)C=A(BC)
由于左右两边的结果矩阵的大小相同,因此这个结论的证明实际可以转化为证明左右两边的结果矩阵中的通项是否相等,即: C=[A(BC)]ij 假设:
对于左边,AB 的通项可以表示为: (AB)ij=k=1∑naik⋅bkj 此时,AB 通过乘法得到的新矩阵,其大小为 m×p,因此在 AB 与 C 的乘法中,p 代替 n 作为了下一次的累加次数。假设 l 为当前 p 的值,那么 l 的取值范围就是 [1,p],而 AB 与 C 的乘法中通项可以表示为: [A(BC)]ij=k∑naik⋅bkl⋅l=1∑pclj 整理一下,也就是: [A(BC)]ij=k∑nl=1∑paik⋅bkl⋅clj
注意这里 AB 中的 bki 在下一个通项公式中转换为了 bkj。实际上,这里的 j 与 l 是对应起来的。因为 AB 的大小为 m×p,因此 j 的取值范围是 [1,p]。也就是说,j 与 l 都在表示当前 AB 与 C 的乘法中,通项和的累积次数。因此,bkj=bkl:
同理来计算右边的结果。首先从 BC 开始算,BC 的矩阵乘法是 n×p 与 p×q 相乘,因此此处是 p 作为通项累积和的积累次数。我们应该用 l 来代表当前的次数,即:
(BC)ij=l=1∑pbil⋅clj
然后我们将 A 与 BC 的结果相乘,此时是一个 m×n 与 n×q 的乘法。
待完善。
Zero Matrix(零矩阵)指矩阵中所有的元素都为 0 的矩阵:
一个 2×3 的零矩阵表示如下:
(000000)
任意矩阵乘以零矩阵,得到的结果都是 0,即:
A0=0
Identity Matrix(单位矩阵),记作 I,指矩阵主对角线上元素都是 1,其他位置的元素都是 0 的矩阵。
一个 2×2 的单位矩阵表示如下:
(1001)
任意矩阵乘以对称矩阵都会得到原矩阵,且单位矩阵满足交换律,即:
AI=A=IA
Diagonal Matrix(对角矩阵),记作 D,指只有主对角线上有元素的矩阵。一个 3×3 的对角矩阵表示如下:
d1000d2000d3
性质一:令 C=AB,如果 A,B 均为对角矩阵,那么 C 也是对角矩阵。
Banded Matrix(带状矩阵),指元素分布在主对角线附近的矩阵。具体的来说,除了主对角线上的元素以外,其他元素会分别填满对角线的上/下的 n 条对角线。下面是一个带状矩阵的例子:
d1b10a1d2b20a2d3
Triangular Matrix(三角矩阵),指元素分布在主对角线及以上(以下)的矩阵。其中:
下面是两个示例:
U=a00bd0cef
L=abd0ce00f
令 C=AB,如果 A,B 均为三角矩阵,那么:
可以使用下标来筛选三角矩阵中为 0 的元素,比如上三角矩阵的元素 aik,当 i>k 时元素为 0。
Transpose matrix(转置矩阵)指将原矩阵中的行变为列(列变为行)后形成的矩阵,记作 AT。下面是 m×n 的转置矩阵示例:
几个 facts:
Symmetric matrix(对称矩阵)指矩阵元素基于主对角线对称的矩阵。一个3×3 的对称矩阵表示如下:
abcbdecef
Skew-symmetric matrix(反对称矩阵)。此类矩阵满足如下关系:
AT=−A
一个 3×3 的简单示例如下:
0−b−cb0−ece0
几个扩展结论:
Inner products(内积),也被称为 dot product (点积)。矩阵中的内积可以表示为一个列向量矩阵的转置乘以另外一个列向量矩阵。示例如下:
令:
u=u1u2u3andv=v1v2v3
则内积可以表示为:
uTv=(u1u2u3)⋅v1v2v3=u1⋅v1+u2⋅v2+u3⋅v3
矩阵中的 Outer product(外积),可以表示为一个列向量与另外一个列向量的转置的乘积。示例如下(以之前的 u,v 为例):
uvT=u1u2u3⋅(v1v2v3)=u1v1u2v1u3v1u1v2u2v2u3v2u1v3u2v3u3v3
其结果是一个矩阵。
trace(迹),记作 Tr,指方阵主对角线上元素的和。
Inverse matrix(逆矩阵)可以想象为矩阵的“倒数”。矩阵 A 的逆矩阵记作 A−1,逆矩阵的定义从用如下的性质描述:
AA−1=I=A−1A
也就是矩阵与自身的逆矩阵的乘积等于单位矩阵;同时也可以看到,矩阵与逆矩阵的乘法满足交换律。
假设我们有矩阵:
(acbd)
根据逆矩阵的定义,可得到下面的等式:
(acbd)(x1y1x2y2)=(1001)
将上述的等式按矩阵的乘法展开,有:
⎩⎨⎧ax1+by1=1ax2+by2=0cx1+dy1=0cx2+dy2=1
化简后最后可得到二阶逆矩阵的表达式:
A−1=ad−bc1(d−c−ba)
上面的表达式中,红色部分 ad−bc 被称为矩阵的 Determinant,记作:
det(d−c−ba)=ad−bc
Determinant 用于判断一个矩阵的逆矩阵是否存在。当 Determinant 为 0 时,逆矩阵不存在。
计算四边形面积的公式,用于证明 determinant
Orthogonal Matrices(正交矩阵)记作 Q,其满足以下的定义:
Q−1=QT
理解 Q−1=QT 这一条需要弄明白 orthogonal vector 和 orthonormal vector 两个概念:
由逆矩阵的性质:QQ−1=I,可将定义转化为如下形式:
QQT=I
什么样的矩阵才能由这种性质呢?假设 Q 是一个 n×n 的方阵,首先来看看 QQT 是什么样子的:
q11q21...qn1q12q22...qn2............q1nq2n...qnn×q11q12...q1nq21q22...q2n............qn1qn2...qnn=I
我们发现在矩阵乘法中,Q 中每一个列向量都有与自身内积的一次机会,而该结果的位置正好在主对角线上,比如 Q 的第一行与 QT 的第一列,其结果位置在 i11 上:
由于单位矩阵的对角元素均为 1,其他位置的元素均为 0,因此我们得到结论:
也就是 Q 中:
也就是说,Q 中所有的列向量均互为 orthonormal vector 时,Q 被称为 Orthogonal Matrix。
由于 QTQ=I 也成立,因此行向量也满足上述的推论。因此:Q 是 Orthogonal Matrix 成立的前提是 Q 中所有的向量两两互为 orthonormal vector。
正交矩阵的第一个重要特性,是在使用正交矩阵进行变换的时候,正交矩阵不会改变原有矩阵中向量的长度。简单的证明如下:
假设 Q 是 n×n 的正交矩阵,x 为 n×1 的列向量。如果正交矩阵可以保留长度,那么我们只需要证明变换前与变换后的矩阵长度一致即可,即:
∣∣Qx∣∣=∣∣x∣∣
证明该等式的过程只需要下面的形式:
(Qx)T(Qx)
上述的形式是 Qx 的内积形式,因此其结果是 Qx 的 norm 的平方,也就是:
(Qx)T(Qx)=∣∣Qx∣∣2
接下来再对 (Qx)T(Qx) 变形,可得:
(Qx)T(Qx)=xTQTQx=xTIx=xTx=∣∣x∣∣2
到此即可得正我们需要的关系:
∣∣Qx∣∣2=∣∣x∣∣2⇒∣∣Qx∣∣=∣∣x∣∣
正交矩阵可以应用于矩阵的旋转操作。假设有以下列向量 u
(xy)
我们希望将其旋转角度 θ:
令旋转矩阵为 R,那么有:
Rθ(xy)=(x′y′)
令向量 u 的长度为 r,由三角关系可得:
x’y′=r⋅cos(θ+ϕ)=r(cos(θ)cos(ϕ)−sin(θ)sin(ϕ))=cos(θ)rcos(ϕ)−sin(θ)rsin(ϕ)=xcos(θ)−ysin(θ)=r⋅sin(θ+ϕ)=r(sin(θ)cos(ϕ)+cos(θ)sin(ϕ))=(sin(θ)rcos(ϕ)+cos(θ)rsin(ϕ))=xsin(θ)+ycos(θ)
将上述的结果带入之前的旋转等式,即可得到结果:
(cos(θ)sin(θ)−sin(θ)cos(θ))(xy)=(xcos(θ)−ysin(θ)ycos(θ)+xsin(θ))
而 R0 很容易被证明是正交矩阵。
orthgonal martix 在实际应用中就是作为旋转矩阵使用的。旋转的过程中,该矩阵不但能保持被旋转矩阵中向量的大小不变,也能保证向量的夹角不变。
Premutaion matrix(交换矩阵)是orthogonal matrix 的一种,其功能是可以交换被乘矩阵的行(列)。交换矩阵必须是方阵。一个 2×2 的交换矩阵示例如下:
(0110)(acbd)=(cadb)
上面的例子中,使用交换矩阵左乘目标矩阵,达到了行交换的效果。对应的是,如果使用交换矩阵右乘目标矩阵,那实现的是对目标矩阵的列交换。
单位矩阵与目标矩阵相乘可以视作不改变行(列)顺序的交换矩阵;因此单位矩阵也是交换矩阵的一种。
交换矩阵可以被视作行列交换过的单位矩阵。以左乘为例,那么单位矩阵中 aii 代表的是目标矩阵的第 i 行;而交换矩阵中 aii 所在的位置,则是目标矩阵的第 i 行经过交换后的位置。