一、基础概念和符号 线性代数提供了一种紧奏地表示和操作线性方程组的方法。例如,以下方程组:
4 x 1 − 5 x 2 = − 13 − 2 x 1 + 3 x 2 = 9
\begin{aligned}
4 x_{1}-5 x_{2}&=-13 \\
-2 x_{1}+3 x_{2}&=9
\end{aligned}
4 x 1 − 5 x 2 − 2 x 1 + 3 x 2 = − 1 3 = 9 这是两个方程和两个变量,正如你从高中代数中所知,可以找到 x 1 x_{1} x 1 和 x 2 x_{2} x 2 的唯一解(除非方程以某种方式退化,例如,如果第二个方程只是第一个的倍数,但在上面的情况下,实际上只有一个唯一解)。在矩阵表示法中,我们可以更紧凑地表达:
其中:
A = [ 4 − 5 − 2 3 ] , b = [ − 13 9 ]
A=\left[\begin{array}{cc}
4 & -5 \\
-2 & 3
\end{array}\right], b=\left[\begin{array}{c}
-13 \\
9
\end{array}\right]
A = [ 4 − 2 − 5 3 ] , b = [ − 1 3 9 ] 我们可以看到,这种形式的线性方程有许多优点(比如明显地节省空间)。
我们使用以下符号:
A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,表示 A A A 为由实数组成具有 m m m 行和 n n n 列的矩阵。
x ∈ R n x \in \mathbb{R}^{n} x ∈ R n ,表示具有 n n n 个元素的向量。通常,向量 x x x 将表示列向量:即,具有 n n n 行和 1 1 1 列的矩阵。如果我们想要明确地表示行向量:具有 1 1 1 行和 n n n 列的矩阵,我们通常写作 x T x^{\rm{T}} x T (这里 x T x^{\rm{T}} x T 表示 x x x 的转置)。
x i x_{i} x i 表示向量 x x x 的第 i i i 个元素:
x = [ x 1 x 2 ⋮ x n ]
x=\left[\begin{array}{c}
x_{1} \\
x_{2} \\
\vdots \\
x_{n}
\end{array}\right]
x = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ x 1 x 2 ⋮ x n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ 我们使用符号 a i j a_{i j} a i j (或 A i j , A i , j A_{i j}, A_{i, j} A i j , A i , j 等) 来表示第 i i i 行和第 j j j 列中的 A A A 的元素:
A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ]
A=\left[\begin{array}{cccc}
a_{11} & a_{12} & \cdots & a_{1 n} \\
a_{21} & a_{22} & \cdots & a_{2 n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m 1} & a_{m 2} & \cdots & a_{m n}
\end{array}\right]
A = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ a 1 1 a 2 1 ⋮ a m 1 a 1 2 a 2 2 ⋮ a m 2 ⋯ ⋯ ⋱ ⋯ a 1 n a 2 n ⋮ a m n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ 我们用 a j a^{j} a j 或者 A : , j A_{:, j} A : , j 表示矩阵 A A A 的第 j j j 列:
A = [ ∣ ∣ ∣ a 1 a 2 ⋯ a n ∣ ∣ ∣ ]
A=\left[\begin{array}{llll}
\mid & \mid & & \mid \\
a^{1} & a^{2} & \cdots & a^{n} \\
\mid & \mid & & \mid
\end{array}\right]
A = ⎣ ⎢ ⎡ ∣ a 1 ∣ ∣ a 2 ∣ ⋯ ∣ a n ∣ ⎦ ⎥ ⎤ 我们用 a i T a_{i}^{\rm{T}} a i T 或者 A i , : A_{i,:} A i , : 表示矩阵 A A A 的第 i i i 行:
A = [ − a 1 T − − a 2 T − ⋮ − a m T − ]
A=\left[\begin{array}{c}
-a_{1}^{\rm{T}}- \\
-a_{2}^{\rm{T}}- \\
\vdots \\
-a_{m}^{\rm{T}}-
\end{array}\right]
A = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ − a 1 T − − a 2 T − ⋮ − a m T − ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ 在许多情况下,将矩阵视为列向量或行向量的集合非常重要且方便。
相比于标量,通常,在向量上操作在数学上(和概念上)更清晰。只要明确定义了符号,用于矩阵的列或行的表示方式并没有通用约定。
二、矩阵乘法 两个矩阵相乘,其中 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n 且 B ∈ R n × p B \in \mathbb{R}^{n \times p} B ∈ R n × p ,则:
C = A B ∈ R m × p
C=A B \in \mathbb{R}^{m \times p}
C = A B ∈ R m × p 其中:
C i j = ∑ k = 1 n A i k B k j
C_{i j}=\sum_{k=1}^{n} A_{i k} B_{k j}
C i j = k = 1 ∑ n A i k B k j 注意
为了使矩阵乘积存在,A A A 中的列数必须等于 B B B 中的行数。
2.1 向量-向量乘法 给定两个向量 x , y ∈ R n x, y \in \mathbb{R}^{n} x , y ∈ R n ,x T y x^{\rm{T}} y x T y 通常称为向量 内积 或者 点积 ,结果是个实数。
x T y ∈ R = [ x 1 x 2 ⋯ x n ] [ y 1 y 2 ⋮ y n ] = ∑ i = 1 n x i y i
x^{\rm{T}} y \in \mathbb{R}=\left[\begin{array}{llll}
x_{1} & x_{2} & \cdots & x_{n}
\end{array}\right]\left[\begin{array}{c}
y_{1} \\
y_{2} \\
\vdots \\
y_{n}
\end{array}\right]=\sum_{i=1}^{n} x_{i} y_{i}
x T y ∈ R = [ x 1 x 2 ⋯ x n ] ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ y 1 y 2 ⋮ y n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ = i = 1 ∑ n x i y i 注意
x T y = y T x x^{T} y=y^{T} x x T y = y T x 始终成立。
给定向量 x ∈ R m , y ∈ R n x \in \mathbb{R}^{m}, y \in \mathbb{R}^{n} x ∈ R m , y ∈ R n (它们的维度是否相同都没关系),x y T ∈ R m × n x y^{\rm{T}} \in \mathbb{R}^{m \times n} x y T ∈ R m × n 叫做向量 外积 ,当 ( x y T ) i j = x i y j \left(x y^{\rm{T}}\right)_{i j}=x_{i} y_{j} ( x y T ) i j = x i y j 的时候,它是一个矩阵。
x y T ∈ R m × n = [ x 1 x 2 ⋮ x m ] [ y 1 y 2 ⋯ y n ] = [ x 1 y 1 x 1 y 2 ⋯ x 1 y n x 2 y 1 x 2 y 2 ⋯ x 2 y n ⋮ ⋮ ⋱ ⋮ x m y 1 x m y 2 ⋯ x m y n ]
x y^{\rm{T}} \in \mathbb{R}^{m \times n}=\left[\begin{array}{c}
x_{1} \\
x_{2} \\
\vdots \\
x_{m}
\end{array}\right]\left[\begin{array}{llll}
y_{1} & y_{2} & \cdots & y_{n}
\end{array}\right]=\left[\begin{array}{cccc}
x_{1} y_{1} & x_{1} y_{2} & \cdots & x_{1} y_{n} \\
x_{2} y_{1} & x_{2} y_{2} & \cdots & x_{2} y_{n} \\
\vdots & \vdots & \ddots & \vdots \\
x_{m} y_{1} & x_{m} y_{2} & \cdots & x_{m} y_{n}
\end{array}\right]
x y T ∈ R m × n = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ x 1 x 2 ⋮ x m ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ [ y 1 y 2 ⋯ y n ] = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ x 1 y 1 x 2 y 1 ⋮ x m y 1 x 1 y 2 x 2 y 2 ⋮ x m y 2 ⋯ ⋯ ⋱ ⋯ x 1 y n x 2 y n ⋮ x m y n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ 举一个外积如何使用的例子:让 1 ∈ R n \mathbf{1} \in \mathbb{R}^{n} 1 ∈ R n 表示一个 n n n 维向量,其元素都等于 1 1 1 ,此外,考虑矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,其列全部等于某个向量 x ∈ R m x \in \mathbb{R}^{m} x ∈ R m 。 我们可以使用外积紧凑地表示矩阵 A A A :
A = [ ∣ ∣ ∣ x x ⋯ x ∣ ∣ ∣ ] = [ x 1 x 1 ⋯ x 1 x 2 x 2 ⋯ x 2 ⋮ ⋮ ⋱ ⋮ x m x m ⋯ x m ] = [ x 1 x 2 ⋮ x m ] [ 1 1 … 1 ] = x 1 T
A=\left[\begin{array}{cccc}
\mid & \mid & & \mid \\
x & x & \cdots & x \\
\mid & \mid & & \mid
\end{array}\right]=\left[\begin{array}{cccc}
x_{1} & x_{1} & \cdots & x_{1} \\
x_{2} & x_{2} & \cdots & x_{2} \\
\vdots & \vdots & \ddots & \vdots \\
x_{m} & x_{m} & \cdots & x_{m}
\end{array}\right]=\left[\begin{array}{c}
x_{1} \\
x_{2} \\
\vdots \\
x_{m}
\end{array}\right]\left[\begin{array}{llll}
1 & 1 & \ldots & 1
\end{array}\right]=x \mathbf{1}^{\rm{T}}
A = ⎣ ⎢ ⎡ ∣ x ∣ ∣ x ∣ ⋯ ∣ x ∣ ⎦ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ x 1 x 2 ⋮ x m x 1 x 2 ⋮ x m ⋯ ⋯ ⋱ ⋯ x 1 x 2 ⋮ x m ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ x 1 x 2 ⋮ x m ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ [ 1 1 … 1 ] = x 1 T 2.2 矩阵-向量乘法 给定矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,向量 x ∈ R n x \in \mathbb{R}^{n} x ∈ R n ,它们的积是一个向量 y = A x ∈ R m y=A x \in \mathbb{R}^{m} y = A x ∈ R m 。
如果我们按行写 A A A ,那么我们可以表示 A x A x A x 为:
y = A x = [ − a 1 T − − a 2 T − ⋮ − a m T − ] x = [ a 1 T x a 2 T x ⋮ a m T x ]
y=A x=\left[\begin{array}{ccc}
- & a_{1}^{\rm{T}} & - \\
- & a_{2}^{\rm{T}} & - \\
& \vdots & \\
- & a_{m}^{\rm{T}} & -
\end{array}\right] x=\left[\begin{array}{c}
a_{1}^{\rm{T}} x \\
a_{2}^{\rm{T}} x \\
\vdots \\
a_{m}^{\rm{T}} x
\end{array}\right]
y = A x = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ − − − a 1 T a 2 T ⋮ a m T − − − ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ x = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ a 1 T x a 2 T x ⋮ a m T x ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ 换句话说,第 i i i 个 y y y 是 A A A 的第 i i i 行和 x x x 的内积,即:y i = a i T x y_{i}=a_{i}^{\rm{T}} x y i = a i T x 。
同样的,可以把 A A A 写成列的方式,则公式如下:
y = A x = [ ∣ ∣ ∣ a 1 a 2 ⋯ a n ∣ ∣ ∣ ] [ x 1 x 2 ⋮ x n ] = [ a 1 ] x 1 + [ a 2 ] x 2 + ⋯ + [ a n ] x n
y=A x=\left[\begin{array}{cccc}
\mid & \mid & & \mid \\
a^{1} & a^{2} & \cdots & a^{n} \\
\mid & \mid & & \mid
\end{array}\right]\left[\begin{array}{c}
x_{1} \\
x_{2} \\
\vdots \\
x_{n}
\end{array}\right]=\left[a^{1}\right] x_{1}+\left[a^{2}\right] x_{2}+\cdots+\left[a^{n}\right] x_{n}
y = A x = ⎣ ⎢ ⎡ ∣ a 1 ∣ ∣ a 2 ∣ ⋯ ∣ a n ∣ ⎦ ⎥ ⎤ ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ x 1 x 2 ⋮ x n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ = [ a 1 ] x 1 + [ a 2 ] x 2 + ⋯ + [ a n ] x n 换句话说, y y y 是 A A A 的列的线性组合,其中线性组合的系数由 x x x 的元素给出。
到目前为止,我们一直在右侧乘以列向量,但也可以在左侧乘以行向量。如:给定矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,向量 x ∈ R m x \in \mathbb{R}^{m} x ∈ R m ,则 y T = x T A ∈ R n y^{\rm{T}}=x^{\rm{T}} A \in \mathbb{R}^{n} y T = x T A ∈ R n 。和之前一样,我们可以用两种方式表达 y T y^{\rm{T}} y T ,这取决于我们选择根据行或列表达 A A A 。
第一种情况,我们把 A A A 用列表示:
y T = x T A = x T [ ∣ ∣ ∣ a 1 a 2 ⋯ a n ∣ ∣ ∣ ] = [ x T a 1 x T a 2 … x T a n ]
y^{\rm{T}}=x^{\rm{T}} A=x^{\rm{T}}\left[\begin{array}{cccc}
\mid & \mid & & \mid \\
a^{1} & a^{2} & \cdots & a^{n} \\
\mid & \mid & & \mid
\end{array}\right]=\left[\begin{array}{llll}
x^{\rm{T}} a^{1} & x^{\rm{T}} a^{2} & \ldots & x^{\rm{T}} a^{n}
\end{array}\right]
y T = x T A = x T ⎣ ⎢ ⎡ ∣ a 1 ∣ ∣ a 2 ∣ ⋯ ∣ a n ∣ ⎦ ⎥ ⎤ = [ x T a 1 x T a 2 … x T a n ] 这表明 y T y^{\rm{T}} y T 的第 i i i 个元素等于 x T x^{\rm{T}} x T 和 A A A 的第 i i i 列的内积。
最后,根据行表示 A A A ,我们得到了向量-矩阵乘积的最后一种表示:
y T = x T A = [ x 1 x 2 ⋯ x n ] [ − a 1 T − − a 2 T − ⋮ − a m T − ] = x 1 [ a 1 T ] + x 2 [ a 2 T ] + … + x n [ a n T ]
y^{\rm{T}}=x^{\rm{T}} A=\left[\begin{array}{llll}
x_{1} & x_{2} & \cdots & x_{n}
\end{array}\right]\left[\begin{array}{c}
- & a_{1}^{\rm{T}} & - \\
- & a_{2}^{\rm{T}} & - \\
& \vdots & \\
- & a_{m}^{\rm{T}} & -
\end{array}\right]=x_{1}\left[a_{1}^{\rm{T}}\right]+x_{2}\left[a_{2}^{\rm{T}}\right]+\ldots+x_{n}\left[a_{n}^{\rm{T}}\right]
y T = x T A = [ x 1 x 2 ⋯ x n ] ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ − − − a 1 T a 2 T ⋮ a m T − − − ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ = x 1 [ a 1 T ] + x 2 [ a 2 T ] + … + x n [ a n T ] 我们看到 y T y^{\rm{T}} y T 是 A A A 的行的线性组合,其中线性组合的系数由 x x x 的元素给出。
2.3 矩阵-矩阵乘法 有了这些知识,我们现在可以看看四种不同的(形式不同,但结果是相同的)矩阵-矩阵乘法:也就是 本节开头所定义的 C = A B C=A B C = A B 的乘法。
首先,我们可以将矩阵-矩阵乘法视为一组向量-向量乘积。从定义中可以得出:C C C 的 ( i , j ) (i, j) ( i , j ) 元素等于 A A A 的第 i i i 行和 B B B 的第 j j j 列的内积。如下面的公式所示:
C = A B = [ − a 1 T − − a 2 T − ⋮ − a m T − ] [ ∣ ∣ ∣ b 1 b 2 ⋯ b p ∣ ∣ ∣ ] = [ a 1 T b 1 a 1 T b 2 ⋯ a 1 T b p a 2 T b 1 a 2 T b 2 ⋯ a 2 T b p ⋮ ⋮ ⋱ ⋮ a m T b 1 a m T b 2 ⋯ a m T b p ]
C=A B=\left[\begin{array}{ccc}
- & a_{1}^{\rm{T}} & - \\
- & a_{2}^{\rm{T}} & - \\
& \vdots & \\
- & a_{m}^{\rm{T}} & -
\end{array}\right]\left[\begin{array}{cccc}
\mid & \mid & & \mid \\
b^{1} & b^{2} & \cdots & b^{p} \\
\mid & \mid & & \mid
\end{array}\right]=\left[\begin{array}{cccc}
a_{1}^{\rm{T}} b^{1} & a_{1}^{\rm{T}} b^{2} & \cdots & a_{1}^{\rm{T}} b^{p} \\
a_{2}^{\rm{T}} b^{1} & a_{2}^{\rm{T}} b^{2} & \cdots & a_{2}^{\rm{T}} b^{p} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m}^{\rm{T}} b^{1} & a_{m}^{\rm{T}} b^{2} & \cdots & a_{m}^{\rm{T}} b^{p}
\end{array}\right]
C = A B = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ − − − a 1 T a 2 T ⋮ a m T − − − ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ ⎣ ⎢ ⎡ ∣ b 1 ∣ ∣ b 2 ∣ ⋯ ∣ b p ∣ ⎦ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ a 1 T b 1 a 2 T b 1 ⋮ a m T b 1 a 1 T b 2 a 2 T b 2 ⋮ a m T b 2 ⋯ ⋯ ⋱ ⋯ a 1 T b p a 2 T b p ⋮ a m T b p ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ 这里的 A ∈ R m × n , B ∈ R n × p , a i ∈ R n , b j ∈ R n A \in \mathbb{R}^{m \times n}, B \in \mathbb{R}^{n \times p}, a_{i} \in \mathbb{R}^{n}, b^{j} \in \mathbb{R}^{n} A ∈ R m × n , B ∈ R n × p , a i ∈ R n , b j ∈ R n ,所以它们可以计算内积。
我们用通常用行表示 A A A 而用列表示 B B B 。或者,我们可以用列表示 A A A ,用行表示 B B B ,这时 A B A B A B 是求外积的和,公式如下:
C = A B = [ ∣ ∣ ∣ a 1 a 2 ⋯ a n ∣ ∣ ∣ ] [ − b 1 T − − b 2 T − ⋮ − b n T − ] = ∑ i = 1 n a i b i T
C=A B=\left[\begin{array}{cccc}
\mid & \mid & & \mid \\
a^{1} & a^{2} & \cdots & a^{n} \\
\mid & \mid & & \mid
\end{array}\right]\left[\begin{array}{ccc}
- & b_{1}^{\rm{T}} & - \\
- & b_{2}^{\rm{T}} & - \\
& \vdots & \\
- & b_{n}^{\rm{T}} & -
\end{array}\right]=\sum_{i=1}^{n} a^{i} b_{i}^{\rm{T}}
C = A B = ⎣ ⎢ ⎡ ∣ a 1 ∣ ∣ a 2 ∣ ⋯ ∣ a n ∣ ⎦ ⎥ ⎤ ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ − − − b 1 T b 2 T ⋮ b n T − − − ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ = i = 1 ∑ n a i b i T 换句话说,A B A B A B 等于所有的 A A A 的第 i i i 列和 B B B 第 i i i 行的外积的和。因此,在这种情况下,a i ∈ R m a^{i} \in \mathbb{R}^{m} a i ∈ R m 和 b i ∈ R p b_{i} \in \mathbb{R}^{p} b i ∈ R p 外积 a i b i T a^{i} b_{i}^{T} a i b i T 的维度是 m × p m \times p m × p ,与 C C C 的维度一致。
其次,我们还可以将矩阵-矩阵乘法视为一组矩阵向量积。如果我们把 B B B 用列表示,我们可以将 C C C 的列视为 A A A 和 B B B 的列的矩阵向量积,公式如下:
C = A B = A [ ∣ ∣ ∣ b 1 b 2 ⋯ b p ∣ ∣ ∣ ] = [ ∣ ∣ ∣ A b 1 A b 2 ⋯ A b p ∣ ∣ ∣ ]
C=A B=A\left[\begin{array}{cccc}
\mid & \mid & & \mid \\
b^{1} & b^{2} & \cdots & b^{p} \\
\mid & \mid & & \mid
\end{array}\right]=\left[\begin{array}{cccc}
\mid & \mid & & \mid \\
A b^{1} & A b^{2} & \cdots & A b^{p} \\
\mid & \mid & & \mid
\end{array}\right]
C = A B = A ⎣ ⎢ ⎡ ∣ b 1 ∣ ∣ b 2 ∣ ⋯ ∣ b p ∣ ⎦ ⎥ ⎤ = ⎣ ⎢ ⎡ ∣ A b 1 ∣ ∣ A b 2 ∣ ⋯ ∣ A b p ∣ ⎦ ⎥ ⎤ 这里 C C C 的第 i i i 列由矩阵向量乘积给出,即 c i = A b i c_{i}=A b^{i} c i = A b i 。这些矩阵向量乘积可以使用前一小节中给出的两个结论来解释。
最后,我们用行表示 A A A ,那么可以将 C C C 的行视为 A A A 的行和 B B B 之间的矩阵向量积,公式如下:
C = A B = [ − a 1 T − − a 2 T − ⋮ − a m T − ] B = [ − a 1 T B − − a 2 T B − ⋮ − a m T B − ]
C=A B=\left[\begin{array}{ccc}
- & a_{1}^{\rm{T}} & - \\
- & a_{2}^{\rm{T}} & - \\
& \vdots & \\
- & a_{m}^{\rm{T}} & -
\end{array}\right] B=\left[\begin{array}{ccc}
- & a_{1}^{\rm{T}} B & - \\
- & a_{2}^{\rm{T}} B & - \\
& \vdots & \\
- & a_{m}^{\rm{T}} B & -
\end{array}\right]
C = A B = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ − − − a 1 T a 2 T ⋮ a m T − − − ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ B = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ − − − a 1 T B a 2 T B ⋮ a m T B − − − ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ 这里 C C C 的第 i i i 行由矩阵向量乘积给出,即:c i T = a i T B c_{i}^{\rm{T}}=a_{i}^{\rm{T}} B c i T = a i T B 。
说明
这些不同方法的直接优势在于它们允许你 在向量的级别 / 单位而不是标量上进行操作 。为了完全理解线性代数而不会迷失在复杂的索引操作中,关键是要用尽可能多的概念进行操作。
实际上所有的线性代数都处理某种矩阵乘法,花一些时间对这里提出的观点进行直观的理解是非常必要的。
除此之外,了解一些更高级别的矩阵乘法的基本属性是很有必要的:
矩阵乘法结合律:( A B ) C = A ( B C ) (A B) C=A(B C) ( A B ) C = A ( B C ) 矩阵乘法分配律:A ( B + C ) = A B + A C A(B+C)=A B+A C A ( B + C ) = A B + A C 矩阵乘法通常不是可交换的。也就是说,通常 A B ≠ B A A B \neq B A A B = B A 。 如果您不熟悉这些属性,请花点时间自己验证它们。
例如,为了检查矩阵乘法的结合律,假设 A ∈ R m × n , B ∈ R n × p , C ∈ R p × q A \in \mathbb{R}^{m \times n}, B \in \mathbb{R}^{n \times p}, C \in \mathbb{R}^{p \times q} A ∈ R m × n , B ∈ R n × p , C ∈ R p × q 。由于 A B ∈ R m × p A B \in \mathbb{R}^{m \times p} A B ∈ R m × p ,所以 ( A B ) C ∈ R m × q (A B) C \in \mathbb{R}^{m \times q} ( A B ) C ∈ R m × q ;类似地,由于 B C ∈ R n × q B C \in \mathbb{R}^{n \times q} B C ∈ R n × q ,所以 A ( B C ) ∈ R m × q A(B C) \in \mathbb{R}^{m \times q} A ( B C ) ∈ R m × q 。因此,所得矩阵的维度一致。为了证明矩阵乘法满足结合律,需要检查 ( A B ) C (A B) C ( A B ) C 的第 ( i , j ) (i, j) ( i , j ) 个元素是否等于 A ( B C ) A(B C) A ( B C ) 的第 ( i , j ) (i, j) ( i , j ) 个元素。我们可以使用矩阵乘法的定义直接验证这一点:
( ( A B ) C ) i j = ∑ k = 1 p ( A B ) i k C k j = ∑ k = 1 p ( ∑ l = 1 n A i l B l k ) C k j = ∑ k = 1 p ( ∑ l = 1 n A i l B l k C k j ) = ∑ l = 1 n ( ∑ k = 1 p A i l B l k C k j ) = ∑ l = 1 n A i l ( ∑ k = 1 p B l k C k j ) = ∑ l = 1 n A i l ( B C ) l j = ( A ( B C ) ) i j
\begin{aligned}
((A B) C)_{i j} &=\sum_{k=1}^{p}(A B)_{i k} C_{k j}=\sum_{k=1}^{p}\left(\sum_{l=1}^{n} A_{i l} B_{l k}\right) C_{k j} \\
&=\sum_{k=1}^{p}\left(\sum_{l=1}^{n} A_{i l} B_{l k} C_{k j}\right)=\sum_{l=1}^{n}\left(\sum_{k=1}^{p} A_{i l} B_{l k} C_{k j}\right) \\
&=\sum_{l=1}^{n} A_{i l}\left(\sum_{k=1}^{p} B_{l k} C_{k j}\right)=\sum_{l=1}^{n} A_{i l}(B C)_{l j}=(A(B C))_{i j}
\end{aligned}
( ( A B ) C ) i j = k = 1 ∑ p ( A B ) i k C k j = k = 1 ∑ p ( l = 1 ∑ n A i l B l k ) C k j = k = 1 ∑ p ( l = 1 ∑ n A i l B l k C k j ) = l = 1 ∑ n ( k = 1 ∑ p A i l B l k C k j ) = l = 1 ∑ n A i l ( k = 1 ∑ p B l k C k j ) = l = 1 ∑ n A i l ( B C ) l j = ( A ( B C ) ) i j 三、运算和属性 3.1 单位矩阵和对角矩阵 单位矩阵,I ∈ R n × n I \in \mathbb{R}^{n \times n} I ∈ R n × n ,它是一个方阵,对角线的元素是 1 1 1 ,其余元素都是 0 0 0 :
I i j = { 1 i = j 0 i ≠ j
I_{i j}=\left\{\begin{array}{ll}
1 & i=j \\
0 & i \neq j
\end{array}\right.
I i j = { 1 0 i = j i = j 对于所有 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,有:
A I = A = I A
A I=A=I A
A I = A = I A 注意
在某种意义上,单位矩阵的表示法是不明确的,因为它没有指定 I I I 的维数。通常,I I I 的维数是从上下文推断出来的,以便使矩阵乘法成为可能。
例如,在上面的等式中,A I = A A I=A A I = A 中的 I I I 是 n × n n \times n n × n 矩阵,而 A = I A A=I A A = I A 中的 I I I 是 m × m m \times m m × m 矩阵。
对角矩阵是一种这样的矩阵:对角线之外的元素全为 0 0 0 。对角阵通常表示为:D = diag ( d 1 , d 2 , … , d n ) D=\operatorname{diag}\left(d_{1}, d_{2}, \ldots, d_{n}\right) D = d i a g ( d 1 , d 2 , … , d n ) ,其中:
D i j = { d i i = j 0 i ≠ j
D_{i j}=\left\{\begin{array}{ll}
d_{i} & i=j \\
0 & i \neq j
\end{array}\right.
D i j = { d i 0 i = j i = j 很明显:单位矩阵 I = diag ( 1 , 1 , … , 1 ) I=\operatorname{diag}(1,1, \ldots, 1) I = d i a g ( 1 , 1 , … , 1 ) 。
3.2 转置 矩阵的转置是指翻转矩阵的行和列。
给定一个矩阵:A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,它的转置为 n × m n \times m n × m 的矩阵 A T ∈ R n × m A^{\rm{T}} \in \mathbb{R}^{n \times m} A T ∈ R n × m ,其中的元素为:
( A T ) i j = A j i
\left(A^{\rm{T}}\right)_{i j}=A_{j i}
( A T ) i j = A j i 事实上,我们在描述行向量时已经使用了转置,因为列向量的转置自然是行向量。
转置的以下属性很容易验证:
( A T ) T = A \left(A^{\rm{T}}\right)^{\rm{T}}=A ( A T ) T = A ( A B ) T = B T A T (A B)^{\rm{T}}=B^{\rm{T}} A^{\rm{T}} ( A B ) T = B T A T ( A + B ) T = A T + B T (A+B)^{\rm{T}}=A^{\rm{T}}+B^{\rm{T}} ( A + B ) T = A T + B T 3.3 对称矩阵 如果 A = A T A=A^{\rm{T}} A = A T ,则矩阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 是对称矩阵;如果 A = − A T A=-A^{T} A = − A T ,那么它是反对称的。
很容易证明,对于任何矩阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,矩阵 A + A T A+A^{\rm{T}} A + A T 是对称的,矩阵 A − A T A-A^{T} A − A T 是反对称的。由此得出,任何方阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 可以表示为对称矩阵和反对称矩阵的和,即:
A = 1 2 ( A + A T ) + 1 2 ( A − A T )
A=\frac{1}{2}\left(A+A^{\rm{T}}\right)+\frac{1}{2}\left(A-A^{\rm{T}}\right)
A = 2 1 ( A + A T ) + 2 1 ( A − A T ) 上面公式的右边的第一个矩阵是对称矩阵,而第二个矩阵是反对称矩阵。事实证明,对称矩阵在实践中用到很多,它们有很多很好的属性,我们很快就会看到它们。
通常将大小为 n n n 的所有对称矩阵的集合表示为 S n \mathbb{S}^{n} S n ,因此 A ∈ S n A \in \mathbb{S}^{n} A ∈ S n 意味着 A A A 是对称的 n × n n \times n n × n 矩阵。
3.4 矩阵的迹 方阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 的迹,表示为 tr ( A ) \operatorname{tr}(A) t r ( A ) (或者 tr A \operatorname{tr} A t r A ),是矩阵中对角元素的总和:
tr A = ∑ i = 1 n A i i
\operatorname{tr} A=\sum_{i=1}^{n} A_{i i}
t r A = i = 1 ∑ n A i i 迹具有以下性质:
对于矩阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,则:tr A = tr A T \operatorname{tr} A=\operatorname{tr} A^{\rm{T}} t r A = t r A T 对于矩阵 A , B ∈ R n × n A, B \in \mathbb{R}^{n \times n} A , B ∈ R n × n ,则:tr ( A + B ) = tr A + tr B \operatorname{tr}(A+B)=\operatorname{tr} A+\operatorname{tr} B t r ( A + B ) = t r A + t r B 对于矩阵 A ∈ R n × n , t ∈ R A \in \mathbb{R}^{n \times n}, t \in \mathbb{R} A ∈ R n × n , t ∈ R ,则:tr ( t A ) = t tr A \operatorname{tr}(t A)=t \operatorname{tr} A t r ( t A ) = t t r A 对于矩阵 A , B A, B A , B ,A B A B A B 为方阵,则:tr A B = tr B A \operatorname{tr} A B=\operatorname{tr} B A t r A B = t r B A 对于矩阵 A , B , C A, B, C A , B , C ,A B C A B C A B C 为方阵,则:tr A B C = tr B C A = tr C A B \operatorname{tr} A B C=\operatorname{tr} B C A=\operatorname{tr} C A B t r A B C = t r B C A = t r C A B ,同理,更多矩阵的积也是有这个性质。 下面举例证明一下第四个性质。假设 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n 和 B ∈ R n × m B \in \mathbb{R}^{n \times m} B ∈ R n × m (因此 A B ∈ R m × m A B \in \mathbb{R}^{m \times m} A B ∈ R m × m 是方阵),观察到 B A ∈ R n × n B A \in \mathbb{R}^{n \times n} B A ∈ R n × n 也是一个方阵,因此对它们进行迹的运算是有意义的。要证明 tr A B = tr B A \operatorname{tr} A B=\operatorname{tr} B A t r A B = t r B A ,请注意:
tr A B = ∑ i = 1 m ( A B ) i i = ∑ i = 1 m ( ∑ j = 1 n A i j B j i ) = ∑ i = 1 m ∑ j = 1 n A i j B j i = ∑ j = 1 n ∑ i = 1 m B j i A i j = ∑ j = 1 n ( ∑ i = 1 m B j i A i j ) = ∑ j = 1 n ( B A ) j j = tr B A
\begin{aligned}
\operatorname{tr} A B &=\sum_{i=1}^{m}(A B)_{i i}=\sum_{i=1}^{m}\left(\sum_{j=1}^{n} A_{i j} B_{j i}\right) \\
&=\sum_{i=1}^{m} \sum_{j=1}^{n} A_{i j} B_{j i}=\sum_{j=1}^{n} \sum_{i=1}^{m} B_{j i} A_{i j} \\
&=\sum_{j=1}^{n}\left(\sum_{i=1}^{m} B_{j i} A_{i j}\right)=\sum_{j=1}^{n}(B A)_{j j}=\operatorname{tr} B A
\end{aligned}
t r A B = i = 1 ∑ m ( A B ) i i = i = 1 ∑ m ( j = 1 ∑ n A i j B j i ) = i = 1 ∑ m j = 1 ∑ n A i j B j i = j = 1 ∑ n i = 1 ∑ m B j i A i j = j = 1 ∑ n ( i = 1 ∑ m B j i A i j ) = j = 1 ∑ n ( B A ) j j = t r B A 这里,第一个和最后两个等式使用迹运算符和矩阵乘法的定义,重点在第四个等式,使用标量乘法的可交换性来反转每个乘积中的项的顺序,以及标量加法的可交换性,以便重新排列求和的顺序。
3.5 范数 向量的范数 ∥ x ∥ \|x\| ∥ x ∥ 是非正式度量的向量的“长度”。例如,我们有常用的欧几里德或 ℓ 2 \ell_{2} ℓ 2 范数:
∥ x ∥ 2 = ∑ i = 1 n x i 2
\|x\|_{2}=\sqrt{\sum_{i=1}^{n} x_{i}^{2}}
∥ x ∥ 2 = i = 1 ∑ n x i 2 注意:∥ x ∥ 2 2 = x T x \|x\|_{2}^{2}=x^{\rm{T}} x ∥ x ∥ 2 2 = x T x
更正式地,范数是满足四个属性的函数 ( f : R n → R ) \left(f: \mathbb{R}^{n} \rightarrow \mathbb{R}\right) ( f : R n → R ) :
对于所有的 x ∈ R n x \in \mathbb{R}^{n} x ∈ R n ,f ( x ) ≥ 0 f(x) \geq 0 f ( x ) ≥ 0 (非负); 当且仅当 x = 0 x=0 x = 0 时, f ( x ) = 0 f(x)=0 f ( x ) = 0 (明确性); 对于所有 x ∈ R n , t ∈ R x \in \mathbb{R}^{n}, t \in \mathbb{R} x ∈ R n , t ∈ R ,则 f ( t x ) = ∣ t ∣ f ( x ) f(t x)=|t| f(x) f ( t x ) = ∣ t ∣ f ( x ) (正齐次性); 对于所有 x , y ∈ R n x, y \in \mathbb{R}^{n} x , y ∈ R n ,f ( x + y ) ≤ f ( x ) + f ( y ) f(x+y) \leq f(x)+f(y) f ( x + y ) ≤ f ( x ) + f ( y ) (三角不等式)。 其他范数的例子如 ℓ 1 \ell_{1} ℓ 1 范数:
∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣
\|x\|_{1}=\sum_{i=1}^{n}\left|x_{i}\right|
∥ x ∥ 1 = i = 1 ∑ n ∣ x i ∣ 和 ℓ ∞ \ell_{\infty} ℓ ∞ 范数:
∥ x ∥ ∞ = max i ∣ x i ∣
\|x\|_{\infty}=\max _{i}\left|x_{i}\right|
∥ x ∥ ∞ = i max ∣ x i ∣ 事实上,上面所提出的这三个范数都是 ℓ p \ell_{p} ℓ p 范数族的例子,它们由实数 p ≥ 1 p \geq 1 p ≥ 1 参数化,并定义为:
∥ x ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 / p
\|x\|_{p}=\left(\sum_{i=1}^{n}\left|x_{i}\right|^{p}\right)^{1 / p}
∥ x ∥ p = ( i = 1 ∑ n ∣ x i ∣ p ) 1 / p 也可以为矩阵定义范数,例如 Frobenius 范数:
∥ A ∥ F = ∑ i = 1 m ∑ j = 1 n A i j 2 = tr ( A T A )
\|A\|_{F}=\sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} A_{i j}^{2}}=\sqrt{\operatorname{tr}\left(A^{\rm{T}} A\right)}
∥ A ∥ F = i = 1 ∑ m j = 1 ∑ n A i j 2 = t r ( A T A ) 还有许多其他更多的范数,这里不做过多介绍。
3.6 线性相关性和秩 一组向量 x 1 , x 2 , ⋯ x n ∈ R x_{1}, x_{2}, \cdots x_{n} \in \mathbb{R} x 1 , x 2 , ⋯ x n ∈ R ,如果没有向量可以表示为其余向量的线性组合,则称该向量组是线性无相关的;相反,如果属于该组的一个向量可以表示为其余向量的线性组合,则称该向量组是线性相关的。也就是说,如果:
x n = ∑ i = 1 n − 1 α i x i
x_{n}=\sum_{i=1}^{n-1} \alpha_{i} x_{i}
x n = i = 1 ∑ n − 1 α i x i 对于某些标量值 α 1 , ⋯ α n − 1 ∈ R \alpha_{1}, \cdots \alpha_{n-1} \in \mathbb{R} α 1 , ⋯ α n − 1 ∈ R 等式成立,那么向量 x 1 , x 2 , ⋯ x n x_{1}, x_{2}, \cdots x_{n} x 1 , x 2 , ⋯ x n 是线性相关的;否则,向量组是线性无关的。例如,向量:
x 1 = [ 1 2 3 ] x 2 = [ 4 1 5 ] x 3 = [ 2 − 3 − 1 ]
x_{1}=\left[\begin{array}{l}
1 \\
2 \\
3
\end{array}\right] \quad x_{2}=\left[\begin{array}{l}
4 \\
1 \\
5
\end{array}\right] \quad x_{3}=\left[\begin{array}{c}
2 \\
-3 \\
-1
\end{array}\right]
x 1 = ⎣ ⎢ ⎡ 1 2 3 ⎦ ⎥ ⎤ x 2 = ⎣ ⎢ ⎡ 4 1 5 ⎦ ⎥ ⎤ x 3 = ⎣ ⎢ ⎡ 2 − 3 − 1 ⎦ ⎥ ⎤ 是线性相关的,因为:x 3 = − 2 x 1 + x 2 x_{3}=-2 x_{1}+x_{2} x 3 = − 2 x 1 + x 2 。
矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n 的 列秩 是构成线性无关集合的 A A A 的最大列子集的大小。由于术语的多样性,这通常简称为 A A A 的线性无关列的数量。同样,行秩是构成线性无关集合的 A A A 的最大行数。对于任何矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,事实证明 A A A 的列秩等于 A A A 的行秩 (尽管我们不会证明这一点),因此两个量统称为 A A A 的秩,用 rank ( A ) \operatorname{rank}(A) r a n k ( A ) 表示。
以下是秩的一些基本性质:
对于 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,rank ( A ) ≤ min ( m , n ) \operatorname{rank}(A) \leq \min (m, n) r a n k ( A ) ≤ min ( m , n ) ,如果 ( A ) = min ( m , n ) (A)=\min (m, n) ( A ) = min ( m , n ) ,则 A A A 被称作 满秩 。 对于 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,rank ( A ) = rank ( A T ) \operatorname{rank}(A)=\operatorname{rank}\left(A^{T}\right) r a n k ( A ) = r a n k ( A T ) 对于 A ∈ R m × n , B ∈ R n × p A \in \mathbb{R}^{m \times n}, B \in \mathbb{R}^{n \times p} A ∈ R m × n , B ∈ R n × p ,rank ( A B ) ≤ min ( rank ( A ) , rank ( B ) ) \operatorname{rank}(A B) \leq \min (\operatorname{rank}(A), \operatorname{rank}(B)) r a n k ( A B ) ≤ min ( r a n k ( A ) , r a n k ( B ) ) 对于 A , B ∈ R m × n A, B \in \mathbb{R}^{m \times n} A , B ∈ R m × n ,rank ( A + B ) ≤ rank ( A ) + rank ( B ) \operatorname{rank}(A+B) \leq \operatorname{rank}(A)+\operatorname{rank}(B) r a n k ( A + B ) ≤ r a n k ( A ) + r a n k ( B ) 3.7 方阵的逆 方阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 的倒数表示为 A − 1 A^{-1} A − 1 ,并且是这样的独特矩阵:
A − 1 A = I = A A − 1
A^{-1} A=I=A A^{-1}
A − 1 A = I = A A − 1 请注意,并非所有矩阵都具有逆。例如,非方形矩阵根据定义没有逆。然而,对于一些方形矩阵 A A A , 可能仍然存在 A − 1 A^{-1} A − 1 可能不存在的情况。
特别是,如果 A − 1 A^{-1} A − 1 存在,我们说 A A A 是 可逆 的或 非奇异 的,否则就是 不可逆 或 奇异 的。为了使方阵 A A A 具有逆 A − 1 A^{-1} A − 1 ,则 A A A 必须是满秩。我们很快就会发现,除了满秩之外, 还有许多其它的充分必要条件。
以下是逆的性质,假设 A , B ∈ R n × n A, B \in \mathbb{R}^{n \times n} A , B ∈ R n × n ,并且是非奇异的:
( A − 1 ) − 1 = A (A^{-1})^{-1}=A ( A − 1 ) − 1 = A ; ( A B ) − 1 = B − 1 A − 1 (AB)^{-1}=B^{-1}A^{-1} ( A B ) − 1 = B − 1 A − 1 ; ( A − 1 ) T = ( A T ) − 1 (A^{-1})^{\rm{T}}=(A^{\rm{T}})^{-1} ( A − 1 ) T = ( A T ) − 1 ,因此,该矩阵通常表示为 A − T A^{-\rm{T}} A − T 。 下面举一个逆的应用示例,考虑线性方程组,A x = b A x=b A x = b ,其中 A ∈ R n × n , x , b ∈ R A \in \mathbb{R}^{n \times n}, x, b \in \mathbb{R} A ∈ R n × n , x , b ∈ R ,如果 A A A 是非奇异的(即可逆的),那么 x = A − 1 b x=A^{-1} b x = A − 1 b (如果 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n 不是方阵,则此公式不适用)。
3.8 正交阵 如果 x T y = 0 x^{\rm{T}} y=0 x T y = 0 ,则两个向量 x , y ∈ R n x, y \in \mathbb{R}^{n} x , y ∈ R n 是 正交 的。
如果 ∥ x ∥ 2 = 1 \|x\|_{2}=1 ∥ x ∥ 2 = 1 ,则向量 x ∈ R n x \in \mathbb{R}^{n} x ∈ R n 被 归一化 。
如果一个方阵 U ∈ R n × n U \in \mathbb{R}^{n \times n} U ∈ R n × n 的所有列向量彼此正交并被归一化,则方阵 U U U 是正交阵(注意与在讨论向量时的意义不一样)。
它可以从正交性和正态性的定义中得出:
U T U = I = U U T
U^{\rm{T}} U=I=U U^{\rm{T}}
U T U = I = U U T 换句话说,正交矩阵的逆是其转置。注意,如果 U U U 不是方阵,即:U ∈ R m × n , n < m U \in \mathbb{R}^{m \times n}, n<m U ∈ R m × n , n < m ,但其列仍然是正交的,则 U T U = I U^{\rm{T}} U=I U T U = I ,但是 U U T ≠ I U U^{\rm{T}} \neq I U U T = I 。
3.9 矩阵的值域和零空间 一组向量 { x 1 , … , x n } \left\{x_{1}, \ldots ,x_{n}\right\} { x 1 , … , x n } 可以表示为 { x 1 , … , x n } \left\{x_{1}, \ldots ,x_{n}\right\} { x 1 , … , x n } 的线性组合的所有向量的集合。即:
span ( { x 1 , … x n } ) = { v : v = ∑ i = 1 n α i x i , α i ∈ R }
\operatorname{span}\left(\left\{x_{1}, \ldots x_{n}\right\}\right)=\left\{v: v=\sum_{i=1}^{n} \alpha_{i} x_{i}, \quad \alpha_{i} \in \mathbb{R}\right\}
s p a n ( { x 1 , … x n } ) = { v : v = i = 1 ∑ n α i x i , α i ∈ R } 可以证明,如果 { x 1 , … , x n } \left\{x_{1}, \ldots ,x_{n}\right\} { x 1 , … , x n } 是一组 n n n 个线性无关的向量,其中每个 x i ∈ R n x_{i} \in \mathbb{R}^{n} x i ∈ R n ,则 span ( { x 1 , … , x n } ) = R n \operatorname{span}\left(\left\{x_{1}, \ldots ,x_{n}\right\}\right)=\mathbb{R}^{n} s p a n ( { x 1 , … , x n } ) = R n 。换句话说,任何向量 v ∈ R n v \in \mathbb{R}^{n} v ∈ R n 都可以写成 x 1 x_{1} x 1 到 x n x_{n} x n 的线性组合。
向量 y ∈ R m y \in \mathbb{R}^{m} y ∈ R m 投影到 { x 1 , … x n } \left\{x_{1}, \ldots x_{n}\right\} { x 1 , … x n } (这里我们假设 x i ∈ R m x_{i} \in \mathbb{R}^{m} x i ∈ R m )得到向量 v ∈ span ( { x 1 , … , x n } ) v \in \operatorname{span}\left(\left\{x_{1}, \ldots, x_{n}\right\}\right) v ∈ s p a n ( { x 1 , … , x n } ) ,由欧几里德范数 ∥ v − y ∥ 2 \|v-y\|_{2} ∥ v − y ∥ 2 可以使得 v v v 尽可能接近 y y y 。
我们将投影表示为 Proj ( y ; { x 1 , … x n } ) \operatorname{Proj}\left(y ;\left\{x_{1}, \ldots x_{n}\right\}\right) P r o j ( y ; { x 1 , … x n } ) ,并且可以将其正式定义为:
Proj ( y ; { x 1 , … x n } ) = argmin v ∈ span ( { x 1 , … , x n } ) ∥ y − v ∥ 2
\operatorname{Proj}\left(y ;\left\{x_{1}, \ldots x_{n}\right\}\right)=\operatorname{argmin}_{v \in \operatorname{span}\left(\left\{x_{1}, \ldots, x_{n}\right\}\right)}\|y-v\|_{2}
P r o j ( y ; { x 1 , … x n } ) = a r g m i n v ∈ s p a n ( { x 1 , … , x n } ) ∥ y − v ∥ 2 矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n 的值域(有时也称为列空间),表示为 R ( A ) \mathcal{R}(A) R ( A ) ,是 A A A 列的跨度。换句话说,
R ( A ) = { v ∈ R m : v = A x , x ∈ R n }
\mathcal{R}(A)=\left\{v \in \mathbb{R}^{m}: v=A x, x \in \mathbb{R}^{n}\right\}
R ( A ) = { v ∈ R m : v = A x , x ∈ R n } 做一些技术性的假设(即 A A A 是满秩且 n < m n<m n < m ),向量 y ∈ R m y \in \mathbb{R}^{m} y ∈ R m 到 A A A 的范围的投影由下式给出:
Proj ( y ; A ) = argmin v ∈ R ( A ) ∥ v − y ∥ 2 = A ( A T A ) − 1 A T y
\operatorname{Proj}(y ; A)=\operatorname{argmin}_{v \in \mathcal{R}(A)}\|v-y\|_{2}=A\left(A^{\rm{T}} A\right)^{-1} A^{\rm{T}} y
P r o j ( y ; A ) = a r g m i n v ∈ R ( A ) ∥ v − y ∥ 2 = A ( A T A ) − 1 A T y 看一下投影的定义,显而易见,这实际上是我们在最小二乘问题中最小化的目标(除了范数的平方这里有点不一样,但这不会影响找到最优解),所以这些问题自然是非常相关的。
当 A A A 只包含一列时,a ∈ R m a \in \mathbb{R}^{m} a ∈ R m ,这里给出了向量投影到一条线上的特殊情况:
Proj ( y ; a ) = a a T a T a y
\operatorname{Proj}(y ; a)=\frac{a a^{\rm{T}}}{a^{\rm{T}} a} y
P r o j ( y ; a ) = a T a a a T y 一个矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n 的零空间 N ( A ) \mathcal{N}(A) N ( A ) 是所有乘以 A A A 时等于 0 0 0 向量的集合,即:
N ( A ) = { x ∈ R n : A x = 0 }
\mathcal{N}(A)=\left\{x \in \mathbb{R}^{n}: A x=0\right\}
N ( A ) = { x ∈ R n : A x = 0 } 注意
R ( A ) \mathcal{R}(A) R ( A ) 中的向量的大小为 m m m ,而 N ( A ) \mathcal{N}(A) N ( A ) 中的向量的大小为 n n n ,因此 R ( A T ) \mathcal{R}\left(A^{\rm{T}}\right) R ( A T ) 和 N ( A ) \mathcal{N}(A) N ( A ) 中的向量的大小均为 R n \mathbb{R}^{n} R n 。
可以证明:
{ w : w = u + v , u ∈ R ( A T ) , v ∈ N ( A ) } = R n and R ( A T ) ∩ N ( A ) = { 0 }
\left\{w: w=u+v, u \in \mathcal{R}\left(A^{\rm{T}}\right), v \in \mathcal{N}(A)\right\}=\mathbb{R}^{n} \text { and } \mathcal{R}\left(A^{\rm{T}}\right) \cap \mathcal{N}(A)=\{\mathbf{0}\}
{ w : w = u + v , u ∈ R ( A T ) , v ∈ N ( A ) } = R n and R ( A T ) ∩ N ( A ) = { 0 } 换句话说,R ( A T ) \mathcal{R}\left(A^{\rm{T}}\right) R ( A T ) 和 N ( A ) \mathcal{N}(A) N ( A ) 是不相交的子集,它们一起跨越 R n \mathbb{R}^{n} R n 的整个空间。这种类型的集合称为正交补,我们用 R ( A T ) = N ( A ) ⊥ \mathcal{R}\left(A^{\rm{T}}\right)=\mathcal{N}(A)^{\perp} R ( A T ) = N ( A ) ⊥ 表示。
3.10 行列式 一个方阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 的行列式表示为 ∣ A ∣ |A| ∣ A ∣ 或者 det A \operatorname{det} A d e t A (有点像迹运算符,我们通常省略括号)。从代数的角度来说,我们可以写出一个关于 A A A 行列式的显式公式。因此,我们首先提供行列式的几何解释,然后探讨它的一些特定的代数性质。
给定一个矩阵:
[ − a 1 T − − a 2 T − ⋮ − a n T − ]
\left[\begin{array}{ccc}
- & a_{1}^{\rm{T}} & - \\
- & a_{2}^{\rm{T}} & - \\
& \vdots & \\
- & a_{n}^{\rm{T}} & -
\end{array}\right]
⎣ ⎢ ⎢ ⎢ ⎢ ⎡ − − − a 1 T a 2 T ⋮ a n T − − − ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ 考虑通过采用 A A A 行向量 a 1 , … a n ∈ R n a_{1}, \ldots a_{n} \in \mathbb{R}^{n} a 1 , … a n ∈ R n 的所有可能线性组合形成的向量 S ⊂ R n S \subset \mathbb{R}^{n} S ⊂ R n 的集合,其中线性组合的系数都在 0 到 1 之间;也就是说,集合 S S S 是 span ( { a 1 , … a n } ) \operatorname{span}\left(\left\{a_{1}, \ldots a_{n}\right\}\right) s p a n ( { a 1 , … a n } ) 受到系数 α 1 , ⋯ , α n \alpha_{1}, \cdots, \alpha_{n} α 1 , ⋯ , α n 的限制的线性组合,α 1 , ⋯ , α n \alpha_{1}, \cdots, \alpha_{n} α 1 , ⋯ , α n 满足 0 ≤ α i ≤ 1 , i = 1 , … , n 0 \leq \alpha_{i} \leq 1, i=1, \ldots, n 0 ≤ α i ≤ 1 , i = 1 , … , n 。从形式上看,
S = { v ∈ R n : v = ∑ i = 1 n α i a i where 0 ≤ α i ≤ 1 , i = 1 , … , n }
S=\left\{v \in \mathbb{R}^{n}: v=\sum_{i=1}^{n} \alpha_{i} a_{i} \text { where } 0 \leq \alpha_{i} \leq 1, i=1, \ldots, n\right\}
S = { v ∈ R n : v = i = 1 ∑ n α i a i where 0 ≤ α i ≤ 1 , i = 1 , … , n } 事实证明,A A A 的行列式的绝对值是对集合 S S S 的“体积"的度量 。
当它是二维矩阵的时候,行列式对应平行四边形的面积; 当它是三维矩阵的时候,行列式对应平行六面体的体积; 当它是 n 维矩阵的时候,行列式是一个 n 维平行切面体的 n 维体积。 在代数上,行列式满足以下三个性质:
单位矩阵的行列式等于 1(几何上,单位超立方体的体积为 1); 行列式中某一行乘以一个常数,可以将该常数提出来(几何上,将一个边乘以系数 t t t ,体积也会增加一个系数 t t t ); 交换行列式的任意两行,行列式变为负号。 可以证明,满足上面三个性质的函数有且仅有一个。
从上述三个性质中得出的几个性质包括:
对于 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,∣ A ∣ = ∣ A T ∣ |A|=\left|A^{ \rm{T} } \right| ∣ A ∣ = ∣ ∣ ∣ A T ∣ ∣ ∣ ; 对于 A , B ∈ R n × n A, B \in \mathbb{R}^{n \times n} A , B ∈ R n × n ,∣ A B ∣ = ∣ A ∣ ∣ B ∣ |A B|=|A||B| ∣ A B ∣ = ∣ A ∣ ∣ B ∣ ; 对于 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,有且只有当 A A A 是奇异的(不可逆)时,∣ A ∣ = 0 |A|=0 ∣ A ∣ = 0 ; 对于 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 同时 A A A 为非奇异的(可逆)时,∣ A − 1 ∣ = 1 ∣ A ∣ \left|A^{-1}\right|=\frac{1}{|A|} ∣ ∣ ∣ A − 1 ∣ ∣ ∣ = ∣ A ∣ 1 。 在给出行列式的一般定义之前,我们定义,对于 A ∈ R n × n , A \ i , \ j ∈ R ( n − 1 ) × ( n − 1 ) A \in \mathbb{R}^{n \times n}, A_{\backslash i, \backslash j} \in \mathbb{R}^{(n-1) \times(n-1)} A ∈ R n × n , A \ i , \ j ∈ R ( n − 1 ) × ( n − 1 ) 是由于删除第 i i i 行和第 j j j 列而产生的矩阵。行列式的一般(递归)公式是:
∣ A ∣ = ∑ i = 1 n ( − 1 ) i + j a i j ∣ A \ i , \ j ∣ ( for any j ∈ 1 , … , n ) = ∑ j = 1 n ( − 1 ) i + j a i j ∣ A \ i , \ j ∣ ( for any i ∈ 1 , … , n )
\begin{aligned}
|A| &=\sum_{i=1}^{n}(-1)^{i+j} a_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } j \in 1, \ldots, n) \\
&=\sum_{j=1}^{n}(-1)^{i+j} a_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } i \in 1, \ldots, n)
\end{aligned}
∣ A ∣ = i = 1 ∑ n ( − 1 ) i + j a i j ∣ ∣ ∣ A \ i , \ j ∣ ∣ ∣ ( for any j ∈ 1 , … , n ) = j = 1 ∑ n ( − 1 ) i + j a i j ∣ ∣ ∣ A \ i , \ j ∣ ∣ ∣ ( for any i ∈ 1 , … , n ) 对于 A ∈ R 1 × 1 A \in \mathbb{R}^{1 \times 1} A ∈ R 1 × 1 ,初始情况为 ∣ A ∣ = a 11 |A|=a_{11} ∣ A ∣ = a 1 1 。如果我们把这个公式完全展开为 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,就等于 n ! n ! n ! (n 的阶乘)个不同的项。因此,对于大于 3 × 3 3 \times 3 3 × 3 的矩阵,我们几乎没有明确地写出完整的行列式方程。然而,3 × 3 3 \times 3 3 × 3 大小的矩阵的行列式方程是相当常见的,建议好好地了解它们:
∣ a 11 ∣ = a 11 ∣ a 11 a 12 a 21 a 22 ∣ = a 11 a 22 − a 12 a 21 ∣ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ∣ = a 11 a 22 a 33 + a 12 a 23 a 31 + a 13 a 21 a 32 − a 11 a 23 a 32 − a 12 a 21 a 33 − a 13 a 22 a 31
\begin{aligned}
\left|a_{11}\right|&=a_{11} \\
\left|\begin{array}{cc}
a_{11} & a_{12} \\
a_{21} & a_{22}
\end{array}\right|&=a_{11} a_{22}-a_{12} a_{21} \\
\left|\begin{array}{ccc}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33}
\end{array}\right|&=\begin{array}{c}
a_{11} a_{22} a_{33}+a_{12} a_{23} a_{31}+a_{13} a_{21} a_{32} \\
-a_{11} a_{23} a_{32}-a_{12} a_{21} a_{33}-a_{13} a_{22} a_{31}
\end{array}
\end{aligned}
∣ a 1 1 ∣ ∣ ∣ ∣ ∣ ∣ a 1 1 a 2 1 a 1 2 a 2 2 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ a 1 1 a 2 1 a 3 1 a 1 2 a 2 2 a 3 2 a 1 3 a 2 3 a 3 3 ∣ ∣ ∣ ∣ ∣ ∣ ∣ = a 1 1 = a 1 1 a 2 2 − a 1 2 a 2 1 = a 1 1 a 2 2 a 3 3 + a 1 2 a 2 3 a 3 1 + a 1 3 a 2 1 a 3 2 − a 1 1 a 2 3 a 3 2 − a 1 2 a 2 1 a 3 3 − a 1 3 a 2 2 a 3 1 矩阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 的伴随矩阵表示为 adj ( A ) \operatorname{adj}(A) a d j ( A ) ,并定义为:
adj ( A ) ∈ R n × n , ( adj ( A ) ) i j = ( − 1 ) i + j ∣ A \ j , \ i ∣
\operatorname{adj}(A) \in \mathbb{R}^{n \times n}, \quad(\operatorname{adj}(A))_{i j}=(-1)^{i+j}\left|A_{\backslash j, \backslash i}\right|
a d j ( A ) ∈ R n × n , ( a d j ( A ) ) i j = ( − 1 ) i + j ∣ ∣ ∣ A \ j , \ i ∣ ∣ ∣ 注意索引 A \ j , \ i A_{\backslash j, \backslash i} A \ j , \ i 中的变化。可以看出,对于任何非奇异 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,都有
A − 1 = 1 ∣ A ∣ adj ( A )
A^{-1}=\frac{1}{|A|} \operatorname{adj}(A)
A − 1 = ∣ A ∣ 1 a d j ( A ) 虽然这是一个很好的“显式”的逆矩阵公式,但我们应该注意,还有很多更有效的方法来计算逆矩阵。
3.11 二次型和半正定矩阵 给定方矩阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 和向量 x ∈ R n x \in \mathbb{R}^{n} x ∈ R n ,则标量值 x T A x x^{\rm{T}} A x x T A x 被称为二次型。写得清楚些,我们可以看到:
x T A x = ∑ i = 1 n x i ( A x ) i = ∑ i = 1 n x i ( ∑ j = 1 n A i j x j ) = ∑ i = 1 n ∑ j = 1 n A i j x i x j
x^{\rm{T}} A x=\sum_{i=1}^{n} x_{i}(A x)_{i}=\sum_{i=1}^{n} x_{i}\left(\sum_{j=1}^{n} A_{i j} x_{j}\right)=\sum_{i=1}^{n} \sum_{j=1}^{n} A_{i j} x_{i} x_{j}
x T A x = i = 1 ∑ n x i ( A x ) i = i = 1 ∑ n x i ( j = 1 ∑ n A i j x j ) = i = 1 ∑ n j = 1 ∑ n A i j x i x j 注意:
x T A x = ( x T A x ) T = x T A T x = x T ( 1 2 A + 1 2 A T ) x
x^{\rm{T}} A x=\left(x^{\rm{T}} A x\right)^{\rm{T}}=x^{\rm{T}} A^{\rm{T}} x=x^{T}\left(\frac{1}{2} A+\frac{1}{2} A^{\rm{T}}\right) x
x T A x = ( x T A x ) T = x T A T x = x T ( 2 1 A + 2 1 A T ) x 第一个等号的是因为是标量的转置与自身相等,第二个等号是因为转置的性质,而第三个等号是因为是我们平均两个本身相等的量。由此,我们可以得出结论,只有 A A A 的对称部分有助于形成二次型。出于这个原因,我们经常隐含地假设以二次型出现的矩阵是对称阵。我们给出以下定义:
对于所有非零向量 x ∈ R n , x T A x > 0 x \in \mathbb{R}^{n}, x^{\rm{T}} A x>0 x ∈ R n , x T A x > 0 ,则对称矩阵 A ∈ S n A \in \mathbb{S}^{n} A ∈ S n 为正定(positive definite, PD)。这通常表示为 A ≻ 0 A \succ 0 A ≻ 0 (或 A > 0 A>0 A > 0 ),并且通常将所有正定矩阵的集合表示为 S + + n \mathbb{S}_{++}^{n} S + + n 。 对于所有向量 x ∈ R n , x T A x ≥ 0 x \in \mathbb{R}^{n}, x^{\rm{T}} A x \geq 0 x ∈ R n , x T A x ≥ 0 ,则对称矩阵 A ∈ S n A \in \mathbb{S}^{n} A ∈ S n 为半正定(positive semidefinite, PSD)。这通常表示为 A ⪰ 0 A \succeq 0 A ⪰ 0 (或 A ≥ 0 A \geq 0 A ≥ 0 ),并且所有半正定矩阵的集合通常表示为 S + n \mathbb{S}_{+}^{n} S + n 。 同样,对称矩阵 A ∈ S n A \in \mathbb{S}^{n} A ∈ S n 是负定(negative definite, ND),如果对于所有非零向量 x ∈ R n x \in \mathbb{R}^{n} x ∈ R n ,则 x T A x < 0 x^{\rm{T}} A x<0 x T A x < 0 表示为 A ≺ 0 A \prec 0 A ≺ 0 (或 A < 0 A<0 A < 0 )。 类似地,对称矩阵 A ∈ S n A \in \mathbb{S}^{n} A ∈ S n 是半负定(negative semidefinite, NSD),如果对于所有向量 x ∈ R n x \in \mathbb{R}^{n} x ∈ R n ,则 x T A x ≤ 0 x^{\rm{T}} A x \leq 0 x T A x ≤ 0 表示为 A ⪯ 0 A \preceq 0 A ⪯ 0 (或 A ≤ 0 A \leq 0 A ≤ 0 )。 最后,对称矩阵 A ∈ S n A \in \mathbb{S}^{n} A ∈ S n 是不定的,如果它既不是半正定也不是半负定,即:存在 x 1 , x 2 ∈ R n x_{1}, x_{2} \in \mathbb{R}^{n} x 1 , x 2 ∈ R n ,使得 x 1 T A x 1 > 0 x_{1}^{\rm{T}} A x_{1}>0 x 1 T A x 1 > 0 且 x 2 T A x 2 < 0 x_{2}^{\rm{T}} A x_{2}<0 x 2 T A x 2 < 0 。 很明显,如果 A A A 是正定的,那么 − A -A − A 一定是负定的,反之亦然。同样,如果 A A A 是半正定的,那么 − A -A − A 一定是半负定的,反之亦然。如果 A A A 是不定的,那么 − A -A − A 一定也是不定的。
正定矩阵和负定矩阵的一个重要性质是它们总是满秩,因此是可逆的 。下面简单证明一下这个性质,假设某个矩阵 A ∈ S n A \in \mathbb{S}^{n} A ∈ S n 不是满秩。然后,假设 A A A 的第 j j j 列可以表示为其他 n − 1 n-1 n − 1 列的线性组合:
a j = ∑ i ≠ j x i a i
a_{j}=\sum_{i \neq j} x_{i} a_{i}
a j = i = j ∑ x i a i 对于某些 x 1 , ⋯ x j − 1 , x j + 1 , ⋯ , x n ∈ R x_{1}, \cdots x_{j-1}, x_{j+1}, \cdots, x_{n} \in \mathbb{R} x 1 , ⋯ x j − 1 , x j + 1 , ⋯ , x n ∈ R ,设 x j = − 1 x_{j}=-1 x j = − 1 ,则:
A x = ∑ i ≠ j x i a i = 0
A x=\sum_{i \neq j} x_{i} a_{i}=0
A x = i = j ∑ x i a i = 0 但这意味着对于某些非零向量 x x x ,x T A x = 0 x^{\rm{T}} A x=0 x T A x = 0 ,因此 A A A 必须既不是正定也不是负定。如果 A A A 是正定或负定,则必须是满秩。
最后,有一种类型的正定矩阵经常出现,因此值得特别提及。给定矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,则矩阵 G = A T A G=A^{\rm{T}} A G = A T A (有时称为 Gram 矩阵)总是半正定的;此外,如果 m ≥ n m \geq n m ≥ n (同时为了方便起见,我们假设 A A A 是满秩),则 G = A T A G=A^{\rm{T}} A G = A T A 是正定的。
3.12 特征值和特征向量 给定一个方阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,我们认为在以下条件下,λ ∈ C \lambda \in \mathbb{C} λ ∈ C 是 A A A 的特征值,x ∈ C n x \in \mathbb{C}^{n} x ∈ C n 是相应的特征向量:
A x = λ x , x ≠ 0
A x=\lambda x, x \neq 0
A x = λ x , x = 0 直观地说,这个定义意味着将 A A A 乘以向量 x x x 会得到一个新的向量,该向量指向与 x x x 相同的方向,但按系数 λ \lambda λ 缩放。值得注意的是,对于任何特征向量 x ∈ C n x \in \mathbb{C}^{n} x ∈ C n 和标量 t ∈ C t \in \mathbb{C} t ∈ C ,都有 A ( c x ) = c A x = c λ x = λ ( c x ) A(c x)=c A x=c \lambda x=\lambda(c x) A ( c x ) = c A x = c λ x = λ ( c x ) ,即 c x c x c x 也是一个特征向量。因此,当我们讨论与 λ \lambda λ 相关的特征向量时,我们通常假设特征向量被标准化为长度 1(这仍然会造成一些歧义,因为 x x x 和 − x -x − x 都是特征向量,但我们必须接受这一点)。
我们可以重写上面的等式来说明 ( λ , x ) (\lambda, x) ( λ , x ) 是 A A A 的特征值和特征向量的组合:
( λ I − A ) x = 0 , x ≠ 0
(\lambda I-A) x=0, x \neq 0
( λ I − A ) x = 0 , x = 0 但是 ( λ I − A ) x = 0 (\lambda I-A) x=0 ( λ I − A ) x = 0 只有当 ( λ I − A ) (\lambda I-A) ( λ I − A ) 有一个非空零空间,同时 ( λ I − A ) (\lambda I-A) ( λ I − A ) 是奇异的,x x x 才具有非零解,即:
∣ ( λ I − A ) ∣ = 0
|(\lambda I-A)|=0
∣ ( λ I − A ) ∣ = 0 现在,我们可以使用行列式的定义将表达式 ∣ ( λ I − A ) ∣ |(\lambda I-A)| ∣ ( λ I − A ) ∣ 扩展为 λ \lambda λ 中的(非常大的)多项式,其中,λ \lambda λ 的度为 n n n 。它通常被称为矩阵 A A A 的特征多项式。
然后我们找到这个特征多项式的 n n n (可能是复数)个根,并用 λ 1 , ⋯ , λ n \lambda_{1}, \cdots, \lambda_{n} λ 1 , ⋯ , λ n 表示。这些都是矩阵 A A A 的特征值,但我们注意到它们可能不明显。为了找到特征值 λ i \lambda_{i} λ i 对应的特征向量,我们只需解线性方程 ( λ I − A ) x = 0 (\lambda I-A) x=0 ( λ I − A ) x = 0 即可,因为 ( λ I − A ) (\lambda I-A) ( λ I − A ) 是奇异的,所以保证有一个非零解(但也可能有多个或无穷多个解)。
应该注意的是,这不是实际用于数值计算特征值和特征向量的方法(行列式的完全展开式有 n ! n ! n ! 项)。
以下是特征值和特征向量的性质(在 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 具有特征值 λ 1 , ⋯ , λ n \lambda_{1}, \cdots, \lambda_{n} λ 1 , ⋯ , λ n 的前提下):
tr A = ∑ i = 1 n λ i
\operatorname{tr} A=\sum_{i=1}^{n} \lambda_{i}
t r A = i = 1 ∑ n λ i ∣ A ∣ = ∏ i = 1 n λ i
|A|=\prod_{i=1}^{n} \lambda_{i}
∣ A ∣ = i = 1 ∏ n λ i A A A 的秩等于 A A A 的非零特征值的个数。 假设 A A A 非奇异,其特征值为 λ \lambda λ ,特征向量为 x x x ,那么 1 / λ 1 / \lambda 1 / λ 是具有相关特征向量 x x x 的 A − 1 A^{-1} A − 1 的特征值,即 A − 1 x = ( 1 / λ ) x A^{-1} x=(1 / \lambda) x A − 1 x = ( 1 / λ ) x (要证明这一点,取特征向量方程,A x = λ x A x=\lambda x A x = λ x ,两边都左乘 A − 1 A^{-1} A − 1 )。 对角阵的特征值 d = diag ( d 1 , ⋯ , d n ) d=\operatorname{diag}\left(d_{1}, \cdots, d_{n}\right) d = d i a g ( d 1 , ⋯ , d n ) 实际上就是对角元素 d 1 , … , d n d_{1}, \ldots, d_{n} d 1 , … , d n 。 3.13 对称矩阵的特征值和特征向量 在本节中,我们假设 A A A 是实对称矩阵,具有以下性质:
A A A 的所有特征值都是实数,我们用 λ 1 , ⋯ , λ n \lambda_{1}, \cdots, \lambda_{n} λ 1 , ⋯ , λ n 表示; 存在一组特征向量 u 1 , ⋯ u n u_{1}, \cdots u_{n} u 1 , ⋯ u n ,其中 u i u_{i} u i 是具有特征值 λ i \lambda_{i} λ i 的特征向量,u 1 , ⋯ u n u_{1}, \cdots u_{n} u 1 , ⋯ u n 是单位向量并且彼此正交。 设 U U U 是包含 u i u_{i} u i 作为列的正交矩阵:
U = [ ∣ ∣ ∣ u 1 u 2 ⋯ u n ∣ ∣ ∣ ]
U=\left[\begin{array}{cccc}
\mid & \mid & & \mid \\
u_{1} & u_{2} & \cdots & u_{n} \\
\mid & \mid & & \mid
\end{array}\right]
U = ⎣ ⎢ ⎡ ∣ u 1 ∣ ∣ u 2 ∣ ⋯ ∣ u n ∣ ⎦ ⎥ ⎤ 设 Λ = diag ( λ 1 , ⋯ , λ n ) \Lambda=\operatorname{diag}\left(\lambda_{1}, \cdots, \lambda_{n}\right) Λ = d i a g ( λ 1 , ⋯ , λ n ) 是包含 λ 1 , ⋯ , λ n \lambda_{1}, \cdots, \lambda_{n} λ 1 , ⋯ , λ n 作为对角线上的元素的对角矩阵。使用 2.3节 中矩阵-矩阵乘法的方法,我们可以验证:
A U = [ ∣ ∣ ∣ A u 1 A u 2 ⋯ A u n ∣ ∣ ∣ ] = [ ∣ ∣ ∣ ∣ λ 1 u 1 λ 2 u 2 ⋯ λ n u n ∣ ∣ ∣ ∣ ] = U diag ( λ 1 , … , λ n ) = U Λ
A U=\left[\begin{array}{cccc}
\mid & \mid & & \mid \\
A u_{1} & A u_{2} & \cdots & A u_{n} \\
\mid & \mid & & \mid
\end{array}\right]=\left[\begin{array}{cccc}
\mid & \mid & \mid & \mid \\
\lambda_{1} u_{1} & \lambda_{2} u_{2} & \cdots & \lambda_{n} u_{n} \\
\mid & \mid & \mid & \mid
\end{array}\right]=U \operatorname{diag}\left(\lambda_{1}, \ldots, \lambda_{n}\right)=U \Lambda
A U = ⎣ ⎢ ⎡ ∣ A u 1 ∣ ∣ A u 2 ∣ ⋯ ∣ A u n ∣ ⎦ ⎥ ⎤ = ⎣ ⎢ ⎡ ∣ λ 1 u 1 ∣ ∣ λ 2 u 2 ∣ ∣ ⋯ ∣ ∣ λ n u n ∣ ⎦ ⎥ ⎤ = U d i a g ( λ 1 , … , λ n ) = U Λ 考虑到正交矩阵 U U U 满足 U U T = I U U^{\rm{T}}=I U U T = I ,利用上面的方程,我们得到:
A = A U U T = U Λ U T
A=A U U^{\rm{T}}=U \Lambda U^{\rm{T}}
A = A U U T = U Λ U T 这种 A A A 的新的表示形式为 U Λ U T U \Lambda U^{T} U Λ U T ,通常称为矩阵 A A A 的 对角化 。术语对角化是这样来的:通过这种表示,我们通常可以有效地将对称矩阵 A A A 视为对角矩阵,这样更容易理解。
背景知识
任何正交矩阵 U = [ ∣ ∣ ∣ u 1 u 2 ⋯ u n ∣ ∣ ∣ ] U=\left[\begin{array}{cccc}\mid & \mid & & \mid \\ u_{1} & u_{2} & \cdots & u_{n} \\ \mid & \mid & & \mid\end{array}\right] U = ⎣ ⎢ ⎡ ∣ u 1 ∣ ∣ u 2 ∣ ⋯ ∣ u n ∣ ⎦ ⎥ ⎤ 都定义了一个新的属于 R n \mathbb{R}^{n} R n 的基(坐标系),意义如下:对于任何向量 x ∈ R n x \in \mathbb{R}^{n} x ∈ R n 都可以表示为 u 1 , … u n u_{1}, \ldots u_{n} u 1 , … u n 的线性组合,其系数为 x 1 , ⋯ x n x_{1}, \cdots x_{n} x 1 , ⋯ x n :
x = x ^ 1 u 1 + ⋯ + ⋯ x ^ n u n = U x ^
x=\hat{x}_{1} u_{1}+\cdots+\cdots \hat{x}_{n} u_{n}=U \hat{x}
x = x ^ 1 u 1 + ⋯ + ⋯ x ^ n u n = U x ^ 在第二个等式中,我们使用矩阵和向量相乘的方法。实际上,这种 x ^ \hat{x} x ^ 是唯一存在的:
x = U x ^ ⇔ U T x = x ^
x=U \hat{x} \Leftrightarrow U^{\rm{T}} x=\hat{x}
x = U x ^ ⇔ U T x = x ^ 换句话说,向量 x ^ = U T x \hat{x}=U^{\rm{T}} x x ^ = U T x 可以作为向量 x x x 的另一种表示,与 U U U 定义的基有关。
“对角化”矩阵向量乘法
通过上面的设置,我们看到左乘矩阵 A A A 可以被视为左乘对角矩阵关于特征向量的基。假设 x x x 是一个向量,x ^ \hat{x} x ^ 表示 U U U 的基,设 z = A x z=A x z = A x 为矩阵向量积。现在让我们计算关于 U U U 的基 z z z ;然后,再利用 U U T = U T = I U U^{\rm{T}}=U^{\rm{T}}=I U U T = U T = I 和方程 A = A U U T = U Λ U T A=A U U^{\rm{T}}=U \Lambda U^{\rm{T}} A = A U U T = U Λ U T ,我们得到:
z ^ = U T z = U T A x = U T U Λ U T x = Λ x ^ = [ λ 1 x ^ 1 λ 2 x ^ 2 ⋮ λ n x ^ n ]
\hat{z}=U^{\rm{T}} z=U^{\rm{T}} A x=U^{\rm{T}} U \Lambda U^{\rm{T}} x=\Lambda \hat{x}=\left[\begin{array}{c}
\lambda_{1} \hat{x}_{1} \\
\lambda_{2} \hat{x}_{2} \\
\vdots \\
\lambda_{n} \hat{x}_{n}
\end{array}\right]
z ^ = U T z = U T A x = U T U Λ U T x = Λ x ^ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ λ 1 x ^ 1 λ 2 x ^ 2 ⋮ λ n x ^ n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ 我们可以看到,原始空间中的左乘矩阵 A A A 等于左乘对角矩阵 Λ \Lambda Λ ,相对于新的基,即仅将每个坐标缩放相应的特征值。在新的基上,矩阵多次相乘也变得简单多了。例如,假设 q = A A A x q=A A A x q = A A A x ,根据 A A A 的元素导出 q q q 的分析形式,使用原始的基可能是一场噩梦,但使用新的基就容易多了:
q ^ = U T q = U T A A A x = U T U Λ U T U Λ U T T U Λ U T x = Λ 3 x ^ = [ λ 1 3 x ^ 1 λ 2 3 x ^ 2 ⋮ λ n 3 x ^ n ]
\hat{q}=U^{\rm{T}} q=U^{\rm{T}} A A A x=U^{\rm{T}} U \Lambda U^{\rm{T}} U \Lambda U^{\rm{T}T} U \Lambda U^{\rm{T}} x=\Lambda^{3} \hat{x}=\left[\begin{array}{c}
\lambda_{1}^{3} \hat{x}_{1} \\
\lambda_{2}^{3} \hat{x}_{2} \\
\vdots \\
\lambda_{n}^{3} \hat{x}_{n}
\end{array}\right]
q ^ = U T q = U T A A A x = U T U Λ U T U Λ U T T U Λ U T x = Λ 3 x ^ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ λ 1 3 x ^ 1 λ 2 3 x ^ 2 ⋮ λ n 3 x ^ n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ “对角化”二次型
作为直接的推论,二次型 x T A x x^{\rm{T}} A x x T A x 也可以在新的基上简化。
x T A x = x T U Λ U T x = x ^ Λ x ^ = ∑ i = 1 n λ i x ^ i 2
x^{\rm{T}} A x=x^{\rm{T}} U \Lambda U^{\rm{T}} x=\hat{x} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}
x T A x = x T U Λ U T x = x ^ Λ x ^ = i = 1 ∑ n λ i x ^ i 2 回想一下,在旧的表示法中,x T A x = ∑ i = 1 , j = 1 n x i x j A i j x^{\rm{T}} A x=\sum_{i=1, j=1}^{n} x_{i} x_{j} A_{i j} x T A x = ∑ i = 1 , j = 1 n x i x j A i j 涉及一个 n 2 n^{2} n 2 项的和,而不是上面等式中的 n n n 项。
利用这个观点,我们还可以证明矩阵 A A A 的正定性完全取决于其特征值的符号:
如果所有的 λ i > 0 \lambda_{i}>0 λ i > 0 ,则矩阵 A A A 为正定,因为对于任意的 x ^ ≠ 0 \hat{x} \neq 0 x ^ = 0 ,x T A x = ∑ i = 1 n λ i x ^ i 2 > 0 x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}>0 x T A x = ∑ i = 1 n λ i x ^ i 2 > 0 如果所有的 λ i ≥ 0 \lambda_{i} \geq 0 λ i ≥ 0 ,则矩阵 A A A 为半正定,因为对于任意的 x ^ \hat{x} x ^ ,x T A x = ∑ i = 1 n λ i x ^ i 2 ≥ 0 x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \geq 0 x T A x = ∑ i = 1 n λ i x ^ i 2 ≥ 0 同样,如果所有 λ i < 0 \lambda_{i}<0 λ i < 0 或 λ i ≤ 0 \lambda_{i} \leq 0 λ i ≤ 0 ,则矩阵 A A A 分别为负定或半负定。 最后,如果 A A A 同时具有正特征值和负特征值,比如 λ i > 0 \lambda_{i}>0 λ i > 0 并且 λ j < 0 \lambda_{j}<0 λ j < 0 ,那么它是不定的。 特征值和特征向量经常出现的应用是最大化矩阵的某些函数。特别是对于矩阵 A ∈ S n A \in \mathbb{S}^{n} A ∈ S n ,考虑以下最大化问题:
max x ∈ R n x T A x = ∑ i = 1 n λ i x ^ i 2 subject to ∥ x ∥ 2 2 = 1
\max _{x \in \mathbb{R}^{n}} x^{\rm{T}} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \quad \text { subject to }\|x\|_{2}^{2}=1
x ∈ R n max x T A x = i = 1 ∑ n λ i x ^ i 2 subject to ∥ x ∥ 2 2 = 1 也就是说,我们要找到(范数 1)的向量,它使二次型最大化。假设特征值的阶数为 λ 1 ≥ λ 2 ≥ ⋯ λ n \lambda_{1} \geq \lambda_{2} \geq \cdots \lambda_{n} λ 1 ≥ λ 2 ≥ ⋯ λ n ,则此优化问题的最优值为 λ 1 \lambda_{1} λ 1 ,且与 λ 1 \lambda_{1} λ 1 对应的任何特征向量 u 1 u_{1} u 1 都是最大值之一。(如果 λ 1 > λ 2 \lambda_{1}>\lambda_{2} λ 1 > λ 2 ,那么有一个与特征值 λ 1 \lambda_{1} λ 1 对应的唯一特征向量,它是上面那个优化问题的唯一最大值。)我们可以通过使用对角化技术来证明这一点:注意,通过公式 ∥ U x ∥ 2 = ∥ x ∥ 2 \|U x\|_{2}=\|x\|_{2} ∥ U x ∥ 2 = ∥ x ∥ 2 推出 ∥ x ∥ 2 = ∥ x ^ ∥ 2 \|x\|_{2}=\|\hat{x}\|_{2} ∥ x ∥ 2 = ∥ x ^ ∥ 2 ,并利用公式:
x T A x = x T U Λ U T x = x ^ Λ x ^ = ∑ i = 1 n λ i x ^ i 2 x^{\rm{T}} A x=x^{\rm{T}} U \Lambda U^{\rm{T}} x=\hat{x} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} x T A x = x T U Λ U T x = x ^ Λ x ^ = i = 1 ∑ n λ i x ^ i 2 我们可以将上面那个优化问题改写为:
max x ^ ∈ R n x ^ T Λ x ^ = ∑ i = 1 n λ i x ^ i 2 subject to ∥ x ^ ∥ 2 2 = 1
\max _{\hat{x} \in \mathbb{R}^{n}} \hat{x}^{\rm{T}} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \quad \text { subject to }\|\hat{x}\|_{2}^{2}=1
x ^ ∈ R n max x ^ T Λ x ^ = i = 1 ∑ n λ i x ^ i 2 subject to ∥ x ^ ∥ 2 2 = 1 然后,我们得到目标的上界为 λ 1 \lambda_{1} λ 1 :
x ^ T Λ x ^ = ∑ i = 1 n λ i x ^ i 2 ≤ ∑ i = 1 n λ 1 x ^ i 2 = λ 1
\hat{x}^{\rm{T}} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \leq \sum_{i=1}^{n} \lambda_{1} \hat{x}_{i}^{2}=\lambda_{1}
x ^ T Λ x ^ = i = 1 ∑ n λ i x ^ i 2 ≤ i = 1 ∑ n λ 1 x ^ i 2 = λ 1 此外,设置 x ^ = [ 1 0 ⋮ 0 ] \hat{x}=\left[\begin{array}{c}1 \\ 0 \\ \vdots \\ 0\end{array}\right] x ^ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ 1 0 ⋮ 0 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ 可让上述等式成立,这与设置 x = u 1 x=u_{1} x = u 1 相对应。
四、矩阵微积分 4.1 梯度 假设 f : R m × n → R f: \mathbb{R}^{m \times n} \rightarrow \mathbb{R} f : R m × n → R 是将维度为 m × n m \times n m × n 的矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n 作为输入并返回实数值的函数。然后 f f f 的梯度 (相对于 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ) 是偏导数矩阵,定义如下:
∇ A f ( A ) ∈ R m × n = [ ∂ f ( A ) ∂ A 11 ∂ f ( A ) ∂ A 12 ⋯ ∂ f ( A ) ∂ A 1 n ∂ f ( A ) ∂ A 21 ∂ f ( A ) ∂ A 22 ⋯ ∂ f ( A ) ∂ A 2 n ⋮ ⋮ ⋱ ⋮ ∂ f ( A ) ∂ A m 1 ∂ f ( A ) ∂ A m 2 ⋯ ∂ f ( A ) ∂ A m n ]
\nabla_{A} f(A) \in \mathbb{R}^{m \times n}=\left[\begin{array}{cccc}
\frac{\partial f(A)}{\partial A_{11}} & \frac{\partial f(A)}{\partial A_{12}} & \cdots & \frac{\partial f(A)}{\partial A_{1 n}} \\
\frac{\partial f(A)}{\partial A_{21}} & \frac{\partial f(A)}{\partial A_{22}} & \cdots & \frac{\partial f(A)}{\partial A_{2 n}} \\
\vdots & \vdots & \ddots & \vdots \\
\frac{\partial f(A)}{\partial A_{m 1}} & \frac{\partial f(A)}{\partial A_{m 2}} & \cdots & \frac{\partial f(A)}{\partial A_{m n}}
\end{array}\right]
∇ A f ( A ) ∈ R m × n = ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ ∂ A 1 1 ∂ f ( A ) ∂ A 2 1 ∂ f ( A ) ⋮ ∂ A m 1 ∂ f ( A ) ∂ A 1 2 ∂ f ( A ) ∂ A 2 2 ∂ f ( A ) ⋮ ∂ A m 2 ∂ f ( A ) ⋯ ⋯ ⋱ ⋯ ∂ A 1 n ∂ f ( A ) ∂ A 2 n ∂ f ( A ) ⋮ ∂ A m n ∂ f ( A ) ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ 即,m × n m \times n m × n 矩阵:
( ∇ A f ( A ) ) i j = ∂ f ( A ) ∂ A i j
\left(\nabla_{A} f(A)\right)_{i j}=\frac{\partial f(A)}{\partial A_{i j}}
( ∇ A f ( A ) ) i j = ∂ A i j ∂ f ( A ) 请注意,∇ A f ( A ) \nabla_{A} f(A) ∇ A f ( A ) 的维度始终与 A A A 的维度相同。从偏导数的等价性质可以得出:
∇ x ( f ( x ) + g ( x ) ) = ∇ x f ( x ) + ∇ x g ( x ) \nabla_{x}(f(x)+g(x))=\nabla_{x} f(x)+\nabla_{x} g(x) ∇ x ( f ( x ) + g ( x ) ) = ∇ x f ( x ) + ∇ x g ( x ) ; 对于 t ∈ R , ∇ x ( t f ( x ) ) = t ∇ x f ( x ) t \in \mathbb{R}, \nabla_{x}(t f(x))=t \nabla_{x} f(x) t ∈ R , ∇ x ( t f ( x ) ) = t ∇ x f ( x ) 。 4.2 海森矩阵 假设 f : R n → R f: \mathbb{R}^{n} \rightarrow \mathbb{R} f : R n → R 是一个函数,它接受 R n \mathbb{R}^{n} R n 中的向量并返回实数。那么关于 x x x 的海森矩阵,写做:∇ x 2 f ( x ) \nabla_{x}^{2} f(x) ∇ x 2 f ( x ) ,简单地说,H H H 是 n × n n \times n n × n 矩阵的偏导数:
∇ x 2 f ( x ) ∈ R n × n = [ ∂ 2 f ( x ) ∂ x 1 2 ∂ 2 f ( x ) ∂ x 1 ∂ x 2 ⋯ ∂ 2 f ( x ) ∂ x 1 ∂ x n ∂ 2 f ( x ) ∂ x 2 ∂ x 1 ∂ 2 f ( x ) ∂ x 2 2 ⋯ ∂ 2 f ( x ) ∂ x 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ( x ) ∂ x n ∂ x 1 ∂ 2 f ( x ) ∂ x n ∂ x 2 ⋯ ∂ 2 f ( x ) ∂ x n 2 ]
\nabla_{x}^{2} f(x) \in \mathbb{R}^{n \times n}=\left[\begin{array}{cccc}
\frac{\partial^{2} f(x)}{\partial x_{1}^{2}} & \frac{\partial^{2} f(x)}{\partial x_{1} \partial x_{2}} & \cdots & \frac{\partial^{2} f(x)}{\partial x_{1} \partial x_{n}} \\
\frac{\partial^{2} f(x)}{\partial x_{2} \partial x_{1}} & \frac{\partial^{2} f(x)}{\partial x_{2}^{2}} & \cdots & \frac{\partial^{2} f(x)}{\partial x_{2} \partial x_{n}} \\
\vdots & \vdots & \ddots & \vdots \\
\frac{\partial^{2} f(x)}{\partial x_{n} \partial x_{1}} & \frac{\partial^{2} f(x)}{\partial x_{n} \partial x_{2}} & \cdots & \frac{\partial^{2} f(x)}{\partial x_{n}^{2}}
\end{array}\right]
∇ x 2 f ( x ) ∈ R n × n = ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ ∂ x 1 2 ∂ 2 f ( x ) ∂ x 2 ∂ x 1 ∂ 2 f ( x ) ⋮ ∂ x n ∂ x 1 ∂ 2 f ( x ) ∂ x 1 ∂ x 2 ∂ 2 f ( x ) ∂ x 2 2 ∂ 2 f ( x ) ⋮ ∂ x n ∂ x 2 ∂ 2 f ( x ) ⋯ ⋯ ⋱ ⋯ ∂ x 1 ∂ x n ∂ 2 f ( x ) ∂ x 2 ∂ x n ∂ 2 f ( x ) ⋮ ∂ x n 2 ∂ 2 f ( x ) ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ 换句话说, ∇ x 2 f ( x ) ∈ R n × n \nabla_{x}^{2} f(x) \in \mathbb{R}^{n \times n} ∇ x 2 f ( x ) ∈ R n × n , 其:
( ∇ x 2 f ( x ) ) i j = ∂ 2 f ( x ) ∂ x i ∂ x j
\left(\nabla_{x}^{2} f(x)\right)_{i j}=\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{j}}
( ∇ x 2 f ( x ) ) i j = ∂ x i ∂ x j ∂ 2 f ( x ) 注意:海森矩阵通常是对称阵:
∂ 2 f ( x ) ∂ x i ∂ x j = ∂ 2 f ( x ) ∂ x j ∂ x i
\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{j}}=\frac{\partial^{2} f(x)}{\partial x_{j} \partial x_{i}}
∂ x i ∂ x j ∂ 2 f ( x ) = ∂ x j ∂ x i ∂ 2 f ( x ) 与梯度相似,只有当 f ( x ) f(x) f ( x ) 为实值时才定义海森矩阵。
很自然地认为梯度与向量函数的一阶导数的相似,而海森矩阵与二阶导数的相似(我们使用的符号也暗示了这种关系)。这种直觉通常是正确的,但需要记住以下几个注意事项:首先,对于一个变量 f : R n → R f: \mathbb{R}^{n} \rightarrow \mathbb{R} f : R n → R 的实值函数,它的基本定义:二阶导数是一阶导数的导数,即:
∂ 2 f ( x ) ∂ x 2 = ∂ ∂ x ∂ ∂ x f ( x )
\frac{\partial^{2} f(x)}{\partial x^{2}}=\frac{\partial}{\partial x} \frac{\partial}{\partial x} f(x)
∂ x 2 ∂ 2 f ( x ) = ∂ x ∂ ∂ x ∂ f ( x ) 然而,对于向量的函数,函数的梯度是一个向量,我们不能取向量的梯度,即:
∇ x ∇ x f ( x ) = ∇ x [ ∂ f ( x ) ∂ x 1 ∂ f ( x ) ∂ x 2 ⋮ ∂ f ( x ) ∂ x n ]
\nabla_{x} \nabla_{x} f(x)=\nabla_{x}\left[\begin{array}{c}
\frac{\partial f(x)}{\partial x_{1}} \\
\frac{\partial f(x)}{\partial x_{2}} \\
\vdots \\
\frac{\partial f(x)}{\partial x_{n}}
\end{array}\right]
∇ x ∇ x f ( x ) = ∇ x ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ ∂ x 1 ∂ f ( x ) ∂ x 2 ∂ f ( x ) ⋮ ∂ x n ∂ f ( x ) ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ 上面这个表达式没有意义。因此,海森矩阵不是梯度的梯度。然而,下面这种情况却这几乎是正确的:如果我们看一下梯度 ( ∇ x f ( x ) ) i = ∂ f ( x ) / ∂ x i \left(\nabla_{x} f(x)\right)_{i}=\partial f(x) / \partial x_{i} ( ∇ x f ( x ) ) i = ∂ f ( x ) / ∂ x i 的第 i i i 个元素,并取关于 x x x 的梯度我们得到:
∇ x ∂ f ( x ) ∂ x i = [ ∂ 2 f ( x ) ∂ x i ∂ x 1 ∂ 2 f ( x ) ∂ x i ∂ x 2 ⋮ ∂ f ( x ) ∂ x i ∂ x n ]
\nabla_{x} \frac{\partial f(x)}{\partial x_{i}}=\left[\begin{array}{c}
\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{1}} \\
\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{2}} \\
\vdots \\
\frac{\partial f(x)}{\partial x_{i} \partial x_{n}}
\end{array}\right]
∇ x ∂ x i ∂ f ( x ) = ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ ∂ x i ∂ x 1 ∂ 2 f ( x ) ∂ x i ∂ x 2 ∂ 2 f ( x ) ⋮ ∂ x i ∂ x n ∂ f ( x ) ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ 这是海森矩阵第 i i i 行(列),所以:
∇ x 2 f ( x ) = [ ∇ x ( ∇ x f ( x ) ) 1 ∇ x ( ∇ x f ( x ) ) 2 ⋯ ∇ x ( ∇ x f ( x ) ) n ]
\nabla_{x}^{2} f(x)=\left[\nabla_{x}\left(\nabla_{x} f(x)\right)_{1} \quad \nabla_{x}\left(\nabla_{x} f(x)\right)_{2} \quad \cdots \quad \nabla_{x}\left(\nabla_{x} f(x)\right)_{n}\right]
∇ x 2 f ( x ) = [ ∇ x ( ∇ x f ( x ) ) 1 ∇ x ( ∇ x f ( x ) ) 2 ⋯ ∇ x ( ∇ x f ( x ) ) n ] 简单地说:由于 ∇ x 2 f ( x ) = ∇ x ( ∇ x f ( x ) ) T \nabla_{x}^{2} f(x)=\nabla_{x}\left(\nabla_{x} f(x)\right)^{T} ∇ x 2 f ( x ) = ∇ x ( ∇ x f ( x ) ) T ,可以看出,这实际上是取 ∇ x f ( x ) \nabla_{x} f(x) ∇ x f ( x ) 的每个元素的梯度,而不是整个向量的梯度。
4.3 行列式的梯度 现在我们考虑一种情况,找到一个函数相对于矩阵的梯度,也就是说,对于 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,我们要找到 ∇ A ∣ A ∣ \nabla_{A}|A| ∇ A ∣ A ∣ 。回想一下我们对行列式的讨论:
∣ A ∣ = ∑ i = 1 n ( − 1 ) i + j A i j ∣ A \ i , \ j ∣ ( for any j ∈ 1 , … , n )
|A|=\sum_{i=1}^{n}(-1)^{i+j} A_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } j \in 1, \ldots, n)
∣ A ∣ = i = 1 ∑ n ( − 1 ) i + j A i j ∣ ∣ ∣ A \ i , \ j ∣ ∣ ∣ ( for any j ∈ 1 , … , n ) 所以:
∂ ∂ A k ℓ ∣ A ∣ = ∂ ∂ A k ℓ ∑ i = 1 n ( − 1 ) i + j A i j ∣ A \ i , \ j ∣ = ( − 1 ) k + ℓ ∣ A \ k , \ ℓ ∣ = ( adj ( A ) ) ℓ k
\frac{\partial}{\partial A_{k \ell}}|A|=\frac{\partial}{\partial A_{k \ell}} \sum_{i=1}^{n}(-1)^{i+j} A_{i j}\left|A_{\backslash i, \backslash j}\right|=(-1)^{k+\ell}\left|A_{\backslash k, \backslash \ell}\right|=(\operatorname{adj}(A))_{\ell k}
∂ A k ℓ ∂ ∣ A ∣ = ∂ A k ℓ ∂ i = 1 ∑ n ( − 1 ) i + j A i j ∣ ∣ ∣ A \ i , \ j ∣ ∣ ∣ = ( − 1 ) k + ℓ ∣ ∣ ∣ A \ k , \ ℓ ∣ ∣ ∣ = ( a d j ( A ) ) ℓ k 从伴随矩阵的性质得出:
∇ A ∣ A ∣ = ( adj ( A ) ) T = ∣ A ∣ A − T
\nabla_{A}|A|=(\operatorname{adj}(A))^{\rm{T}}=|A| A^{-\rm{T}}
∇ A ∣ A ∣ = ( a d j ( A ) ) T = ∣ A ∣ A − T 现在我们来考虑函数 f : S + + n → R , f ( A ) = log ∣ A ∣ f: \mathbb{S}_{++}^{n} \rightarrow \mathbb{R}, f(A)=\log |A| f : S + + n → R , f ( A ) = log ∣ A ∣ 。注意,我们必须将 f f f 的域限制为正定矩阵,因为这确保了 ∣ A ∣ > 0 |A|>0 ∣ A ∣ > 0 ,因此 ∣ A ∣ |A| ∣ A ∣ 的对数是实数。在这种情况下,我们可以使用链式法则来看看:
∂ log ∣ A ∣ ∂ A i j = ∂ log ∣ A ∣ ∂ ∣ A ∣ ∂ ∣ A ∣ ∂ A i j = 1 ∣ A ∣ ∂ ∣ A ∣ ∂ A i j
\frac{\partial \log |A|}{\partial A_{i j}}=\frac{\partial \log |A|}{\partial|A|} \frac{\partial|A|}{\partial A_{i j}}=\frac{1}{|A|} \frac{\partial|A|}{\partial A_{i j}}
∂ A i j ∂ log ∣ A ∣ = ∂ ∣ A ∣ ∂ log ∣ A ∣ ∂ A i j ∂ ∣ A ∣ = ∣ A ∣ 1 ∂ A i j ∂ ∣ A ∣ 从这一点可以明显看出:
∇ A log ∣ A ∣ = 1 ∣ A ∣ ∇ A ∣ A ∣ = A − 1
\nabla_{A} \log |A|=\frac{1}{|A|} \nabla_{A}|A|=A^{-1}
∇ A log ∣ A ∣ = ∣ A ∣ 1 ∇ A ∣ A ∣ = A − 1 我们可以在最后一个表达式中删除转置,因为 A A A 是对称的。注意与单值情况的相似性,其中 ∂ / ( ∂ x ) log x = 1 / x \partial /(\partial x) \log x=1 / x ∂ / ( ∂ x ) log x = 1 / x 。
4.4 特征值优化 最后,我们使用矩阵演算通过特征值 / 特征向量分析的方式求解优化问题。考虑以下等式约束优化问题:
max x ∈ R n x T A x subject to ∥ x ∥ 2 2 = 1
\max _{x \in \mathbb{R}^{n}} x^{\rm{T}} A x \quad \text { subject to }\|x\|_{2}^{2}=1
x ∈ R n max x T A x subject to ∥ x ∥ 2 2 = 1 对于对称矩阵 A ∈ S n A \in \mathbb{S}^{n} A ∈ S n ,求解等式约束优化问题的标准方法是采用 拉格朗日 形式(一种包含等式约束的目标函数),在这种情况下,拉格朗日函数可由以下公式给出:
L ( x , λ ) = x T A x − λ x T x
\mathcal{L}(x, \lambda)=x^{\rm{T}} A x-\lambda x^{\rm{T}} x
L ( x , λ ) = x T A x − λ x T x 其中,λ \lambda λ 被称为与等式约束关联的拉格朗日乘子。可以确定,要使 x ∗ x^{*} x ∗ 成为问题的最佳点,拉格朗日的梯度必须在 x ∗ x^{*} x ∗ 处为零(必要非充分条件)。也就是说,
∇ x L ( x , λ ) = ∇ x ( x T A x − λ x T x ) = 2 A T x − 2 λ x = 0
\nabla_{x} \mathcal{L}(x, \lambda)=\nabla_{x}\left(x^{\rm{T}} A x-\lambda x^{\rm{T}} x\right)=2 A^{\rm{T}} x-2 \lambda x=0
∇ x L ( x , λ ) = ∇ x ( x T A x − λ x T x ) = 2 A T x − 2 λ x = 0 最后求得线性方程 A x = λ x A x=\lambda x A x = λ x ,这表明假设 x T x = 1 x^{\rm{T}} x=1 x T x = 1 ,可能最大化(或最小化)x T A x x^{\rm{T}} A x x T A x 的唯一点是 A A A 的特征向量。
五、参考资料