在本篇内容中,我们将复习线性代数的知识。
一、矩阵和向量
矩阵是指由数字组成矩形阵列,并写在方括号内,矩阵的维数即行数×列数,如下是
4
×
2
4×2
4×2矩阵。
R
4
×
2
=
A
=
[
1402
191
1371
821
949
1437
147
1448
]
R^{4 \times 2} = A = \begin{bmatrix} 1402 & 191 \\ 1371 & 821 \\ 949 & 1437 \\ 147 & 1448 \\ \end{bmatrix}
R4×2=A=
1402137194914719182114371448
矩阵元素 A i j A_{ij} Aij 指第 i i i 行,第 j j j 列的元素。 比如: A 11 = 1402 , A 12 = 191 A_{11} = 1402,\ A_{12} = 191 A11=1402, A12=191
矩阵提供了一种很好的方式,能够快速整理、索引和访问大量数据。
向量是一种特殊的矩阵,向量是只有一列的矩阵,课程中的向量一般都是列向量。如下是一个向量,也称为四维列向量(
4
×
1
4×1
4×1)。
R
4
=
y
=
[
1402
1371
949
147
]
R^{4} = y = \begin{bmatrix} 1402 \\ 1371 \\ 949 \\ 147 \\ \end{bmatrix}
R4=y=
14021371949147
向量元素 y i y_{i} yi 表示向量的第 i i i 个元素。比如: y 1 = 1402 , y 2 = 1371 y_{1} = 1402,\ y_{2} = 1371 y1=1402, y2=1371
如下图,左图为从 1 开始索引向量,右图为从 0 开始索引向量,如无特别说明,一般用从 1 开始索引向量。

二、加法和标量乘法
矩阵的加法,将矩阵的行列数相等的元素都逐个相加,只有相同维度的两个矩阵才能相加。如下:
[
1
0
2
5
3
1
]
+
[
4
0.5
2
5
0
1
]
=
[
5
0.5
4
10
3
2
]
\begin{bmatrix} 1 & 0 \\ 2 & 5 \\ 3 & 1 \\ \end{bmatrix} + \begin{bmatrix} 4 & 0.5 \\ 2 & 5 \\ 0 & 1 \\ \end{bmatrix} = \begin{bmatrix} 5 & 0.5 \\ 4 & 10 \\ 3 & 2 \\ \end{bmatrix}
123051
+
4200.551
=
5430.5102
矩阵和标量的乘法,需要将矩阵中的元素和标量都逐一相乘。标量是只有大小、没有方向的量(与向量/矢量相对),标量通常是实数。如下:
3
×
[
1
0
2
5
3
1
]
=
[
3
0
6
15
9
3
]
=
[
1
0
2
5
3
1
]
×
3
3 \times \begin{bmatrix} 1 & 0 \\ 2 & 5 \\ 3 & 1 \\ \end{bmatrix} = \begin{bmatrix} 3 & 0 \\ 6 & 15 \\ 9 & 3 \\ \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 2 & 5 \\ 3 & 1 \\ \end{bmatrix} \times 3
3×
123051
=
3690153
=
123051
×3
三、矩阵向量乘法
矩阵向量乘法,
A
=
m
×
n
A = m \times n
A=m×n 矩阵乘以
n
n
n 维向量(
x
=
n
×
1
x = n \times 1
x=n×1 矩阵),计算结果是
m
m
m 维向量(
y
=
m
×
1
y = m \times 1
y=m×1 矩阵),相乘的两个矩阵中的
n
n
n 是相等的。计算向量元素
y
i
y_i
yi 的过程,将矩阵
A
A
A 的第
i
i
i 行元素分别乘以向量
x
x
x 中的元素,并且相加起来。如下是
3
×
2
3 \times 2
3×2 矩阵乘以
2
×
1
2 \times 1
2×1 矩阵,计算结果是
3
×
1
3 \times 1
3×1 矩阵。
[
1
3
4
0
2
1
]
×
[
1
5
]
=
[
1
×
1
+
3
×
5
=
16
4
×
1
+
0
×
5
=
4
2
×
1
+
1
×
5
=
7
]
\begin{bmatrix} 1 & 3 \\ 4 & 0 \\ 2 & 1 \end{bmatrix} \times \begin{bmatrix} 1 \\ 5 \end{bmatrix} = \begin{bmatrix} 1 \times 1 + 3 \times 5 = 16 \\ 4 \times 1 + 0 \times 5 = 4 \\ 2 \times 1 + 1 \times 5 = 7 \end{bmatrix}
142301
×[15]=
1×1+3×5=164×1+0×5=42×1+1×5=7
假设有个预测房子价格的公式
h
θ
(
x
)
=
−
40
+
0.25
x
h_\theta \left( x \right)=-40 + 0.25x
hθ(x)=−40+0.25x ,同时有四间房子的大小
x
x
x 的值分别为2104、1416、1534、852。矩阵向量乘法可以方便用来计算对应每个房子的价格。计算方式如下:
[
1
2104
1
1416
1
1534
1
852
]
×
[
−
40
0.25
]
=
[
1
×
−
40
+
2104
×
0.25
1
×
−
40
+
1416
×
0.25
1
×
−
40
+
1534
×
0.25
1
×
−
40
+
852
×
0.25
]
\begin{bmatrix} 1 & 2104 \\ 1 & 1416 \\ 1 & 1534 \\ 1 & 852 \end{bmatrix} \times \begin{bmatrix} -40 \\ 0.25 \end{bmatrix} = \begin{bmatrix} 1 \times -40 + 2104 \times 0.25 \\ 1 \times -40 + 1416 \times 0.25 \\ 1 \times -40 + 1534 \times 0.25 \\ 1 \times -40 + 852 \times 0.25 \end{bmatrix}
1111210414161534852
×[−400.25]=
1×−40+2104×0.251×−40+1416×0.251×−40+1534×0.251×−40+852×0.25
例子中的小技巧是在计算预测房价时,可通过一行代码而不是一堆代码得到计算结果,代码更简洁并且计算效率更高。
四、矩阵乘法
矩阵乘法在线性回归中,可用于解决参数 θ 0 \theta_{0} θ0 和 θ 1 \theta_{1} θ1 的计算问题而不需要梯度下降法。
矩阵乘法, A = m × n A = m \times n A=m×n 矩阵乘以 B = n × o B = n \times o B=n×o 矩阵,计算结果是 C = m × o C = m \times o C=m×o 矩阵。计算矩阵 C 的第 i 列要用矩阵 A 和矩阵 B 的第 i 列相乘得到。能够相乘的矩阵必须满足第一个矩阵的列数必须等于第二个矩阵的行数的特征。如下是 2 × 2 2 \times 2 2×2 矩阵乘以 2 × 2 2 \times 2 2×2 矩阵,计算结果是 2 × 2 2 \times 2 2×2 矩阵。
[ 1 3 2 5 ] × [ 0 1 3 2 ] = [ 9 7 15 12 ] \begin{bmatrix} 1 & 3 \\ 2 & 5 \end{bmatrix} \times \begin{bmatrix} 0 & 1 \\ 3 & 2 \end{bmatrix} = \begin{bmatrix} 9 & 7 \\ 15 & 12 \end{bmatrix} [1235]×[0312]=[915712]
[ 1 3 2 5 ] × [ 0 3 ] = [ 9 15 ] \begin{bmatrix} 1 & 3 \\ 2 & 5 \end{bmatrix} \times \begin{bmatrix} 0 \\ 3 \end{bmatrix} = \begin{bmatrix} 9 \\ 15 \end{bmatrix} [1235]×[03]=[915]
[ 1 3 2 5 ] × [ 1 2 ] = [ 7 12 ] \begin{bmatrix} 1 & 3 \\ 2 & 5 \end{bmatrix} \times \begin{bmatrix} 1 \\ 2 \end{bmatrix} = \begin{bmatrix} 7 \\ 12 \end{bmatrix} [1235]×[12]=[712]
如下,假设要预测 4 间房子的价格,只有 3 个假设函数。要想将这 3 个假设都用于这 4 间房屋,使用矩阵乘法来计算,是一种高效的方法。计算结果的第 i 列是第 i 个假设的预测价格。

五、矩阵乘法特征
矩阵的乘法不满足交换律: A × B ≠ B × A A \times B \ne B \times A A×B=B×A
[ 1 1 0 0 ] × [ 0 0 2 0 ] = [ 2 0 0 0 ] \begin{bmatrix} 1 & 1 \\ 0 & 0 \end{bmatrix} \times \begin{bmatrix} 0 & 0 \\ 2 & 0 \end{bmatrix} = \begin{bmatrix} 2 & 0 \\ 0 & 0 \end{bmatrix} [1010]×[0200]=[2000]
[ 0 0 2 0 ] × [ 1 1 0 0 ] = [ 0 0 2 2 ] \begin{bmatrix} 0 & 0 \\ 2 & 0 \end{bmatrix} \times \begin{bmatrix} 1 & 1 \\ 0 & 0 \end{bmatrix} = \begin{bmatrix} 0 & 0 \\ 2 & 2 \end{bmatrix} [0200]×[1010]=[0202]
矩阵的乘法满足结合律: A × ( B × C ) = ( A × B ) × C A \times (B \times C) = (A \times B) \times C A×(B×C)=(A×B)×C
单位矩阵是一种特殊的矩阵,类比实数中的数字 1,数字 1 可以看作是一个乘法单位,任意实数 z 乘以 1 都等于实数 z。单位矩阵通常记作
I
I
I(或
I
n
×
n
I_{n \times n}
In×n),从矩阵的左上角到右下角的对角线(称为主对角线)上的元素均为1以外全都为0。如下,
1
×
1
1 \times 1
1×1的单位矩阵就是数字 1。
[
1
0
0
1
]
[
1
0
0
0
1
0
0
0
1
]
\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \quad \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}
[1001]
100010001
单位矩阵的特性: A m × n × I n × n = I m × m × A m × n = A m × n A_{m \times n} \times I_{n \times n} = I_{m \times m} \times A_{m \times n} = A_{m \times n} Am×n×In×n=Im×m×Am×n=Am×n
六、逆和转置
矩阵的逆:如矩阵 A 是一个
m
×
m
m \times m
m×m 矩阵(方阵),如果有逆矩阵,则:
A
×
A
−
1
=
A
−
1
×
A
=
I
A \times A^{-1} = A^{-1} \times A = I
A×A−1=A−1×A=I
并非所有矩阵都有逆矩阵,比如全为 0 的矩阵。不存在逆矩阵的矩阵也称为奇异矩阵或退化矩阵。
矩阵的转置:设 A 为
m
×
n
m \times n
m×n 矩阵,第 i 行 j 列的元素是
a
(
i
,
j
)
a(i,j)
a(i,j),即:
A
=
a
(
i
,
j
)
A = a(i,j)
A=a(i,j),A 的转置矩阵为
n
×
m
n \times m
n×m ,矩阵 B,满足
B
=
a
(
j
,
i
)
B = a(j,i)
B=a(j,i),即
b
(
i
,
j
)
=
a
(
j
,
i
)
b(i,j) = a(j,i)
b(i,j)=a(j,i),( B 的第 i 行第 j 列元素是 A 的第 j 行第 i 列元素),记
A
T
=
B
A^T=B
AT=B 或
A
′
=
B
A'=B
A′=B。直观来看,将 A 的所有元素绕着一条从第 1 行第 1 列元素出发的右下方 45 度的射线作镜面翻转,即得到 A 的转置。如下:
[
a
b
c
d
e
f
]
T
=
[
a
c
e
b
d
f
]
\begin{bmatrix} a & b \\ c & d \\ e & f \end{bmatrix} ^T = \begin{bmatrix} a & c & e \\ b & d & f \end{bmatrix}
acebdf
T=[abcdef]
310

被折叠的 条评论
为什么被折叠?



