CS229 斯坦福大学机器学习复习材料(数学基础) - 线性代数
线性代数提供了一种紧凑地表示和运算“线性方程组”的方法。例如,考虑以下方程组:
4 x 1 − 5 x 2 = − 13 − 2 x 1 + 3 x 2 = 9. 4x_{\scriptscriptstyle 1} - 5x_{\scriptscriptstyle 2} = -13\\
-2x_{\scriptscriptstyle 1} + 3x_{\scriptscriptstyle 2} = 9. 4 x 1 − 5 x 2 = − 13 − 2 x 1 + 3 x 2 = 9.
这是两个方程和两个变量,正如你从高中代数中所知,你可以找到 x 1 x_1 x 1 和 x 2 x_2 x 2 的唯一解(除非方程以某种方式退化,例如,如果第二个方程只是第一个的倍数,但在上面的情况下,实际上只有一个唯一解)。 在矩阵表示法中,我们可以更紧凑地表达:
A x = b Ax= b A x = b
其中
A = [ 4 − 5 − 2 3 ] , b = [ − 13 9 ] . A=\begin{bmatrix}
4 & -5 \\
-2 & 3
\end{bmatrix},
b=\begin{bmatrix}
-13 \\
9
\end{bmatrix}. A = [ 4 − 2 − 5 3 ] , b = [ − 13 9 ] .
我们可以看到,以这种形式分析线性方程有许多优点(包括明显的节省空间)。
我们使用以下符号:
用A ∈ R m × n A \in \Bbb{R}^{m \times n} A ∈ R m × n 表示一个m m m 行n n n 列的矩阵,其中A A A 的各项都是实数。
用x ∈ R n \boldsymbol{x} \in \Bbb{R}^{n} x ∈ R n 表示具有n n n 个元素的向量。按照惯例,n n n 维向量。通常被认为是n n n 行1 1 1 列的矩阵,称为列向量 。如果我们想表示一个行向量 : 具有 1 1 1 行和n n n 列的矩阵 - 我们通常写x T \boldsymbol{x}^T x T (这里x T \boldsymbol{x}^T x T 表示x \boldsymbol{x} x 的转置,我们稍后将定义它)。
用x i x_i x i 表示向量x \boldsymbol{x} x 的第i i i 个元素:
x = [ x 1 x 2 ⋮ x n ] . \boldsymbol{x}=\begin{bmatrix}
x_1 \\
x_2 \\
\vdots \\
x_n
\end{bmatrix}. x = ⎣ ⎡ x 1 x 2 ⋮ x n ⎦ ⎤ .
我们用符号a i j a_{\scriptscriptstyle ij} a ij (or A i j A_{ij} A ij , A i , j A_{i,j} A i , j )表示A A A 的第i i i 行第j j j 列元素:
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=\begin{bmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{bmatrix}. A = ⎣ ⎡ a 11 a 21 ⋮ a m 1 a 12 a 22 ⋮ a m 2 ⋯ ⋯ ⋱ ⋯ a 1 n a 2 n ⋮ a mn ⎦ ⎤ .
我们将A A A 的第j j j 列表示为a j a^j a j or A : , j A_{:,j} A : , j :
A = [ | | | a 1 a 2 ⋯ a n | | | ] . A = \begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
a^1 & a^2 & \cdots & a^n \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}. A = ⎣ ⎡ | a 1 | | a 2 | ⋯ | a n | ⎦ ⎤ .
我们将A A A 的第i i i 行表示为a i T a_i^T a i T or A i , : A_{i,:} A i , : :
A = [ — a 1 T — — a 2 T — ⋮ — a m T — ] . A = \begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}. A = ⎣ ⎡ — — — a 1 T a 2 T ⋮ a m T — — — ⎦ ⎤ .
在许多情况下,将矩阵视为列向量或行向量的集合是非常重要和方便的。一般来说,在数学上(和概念上)向量级别上的操作比标量级别上的操作会更简洁。表示矩阵的列或行没有通用约定,因此你可以使用任何符号明确定义它。
矩阵A ∈ R m × n A \in \Bbb{R}^{m \times n} A ∈ R m × n 和矩阵B ∈ R n × p B \in \Bbb{R}^{n \times p} B ∈ R n × p 的乘积仍然是一个矩阵C = A B ∈ R m × p C = AB \in \Bbb{R}^{m \times p} C = A B ∈ R m × p ,其中C i j = ∑ k = 1 n A i k B k j C_{ij} = \displaystyle\sum_{k=1}^n {A_{ik}B_{kj}} C ij = k = 1 ∑ n A ik B kj .
请注意,为了使矩阵乘积存在,A A A 中的列数必须等于B B B 中的行数。有很多方法可以查看矩阵乘法,我们将从检查一些特殊情况开始。
给两个向量x , y ∈ R n \boldsymbol{x},\boldsymbol{y} \in \Bbb{R}^n x , y ∈ R n , x T y \boldsymbol{x}^T \boldsymbol{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 \boldsymbol{x}^T \boldsymbol{y} \in \Bbb{R} =
\begin{bmatrix}x_1 & x_2 & \cdots & x_n\end{bmatrix}
\begin{bmatrix}y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix}
= \sum_{i=1}^n{x_iy_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 \boldsymbol{x}^T \boldsymbol{y} = \boldsymbol{y}^T \boldsymbol{x} x T y = y T x 始终成立。
给定向量x ∈ R m , y ∈ R n \boldsymbol{x} \in \Bbb{R}^m , \boldsymbol{y} \in \Bbb{R}^n x ∈ R m , y ∈ R n (m m m 不一定等于n n n ), x y T ∈ R m × n \boldsymbol{x} \boldsymbol{y}^T \in \Bbb{R}^{m \times n} x y T ∈ R m × n 叫向量外积 ,它是一个矩阵,由( x y T ) i j = x i y j (\boldsymbol{x} \boldsymbol{y}^T)_{ij} = x_iy_j ( x y T ) ij = x i y j 组成,也就是(i.e.):
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 ] \boldsymbol{x} \boldsymbol{y}^T \in \Bbb{R}^{m \times n}=
\begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_m \end{bmatrix}
\begin{bmatrix}y_1 & y_2 & \cdots & y_n\end{bmatrix}=
\begin{bmatrix}
x_1y_1 & x_1y_2 & \cdots & x_1y_n \\
x_2y_1 & x_2y_2 & \cdots & x_2y_n \\
\vdots & \vdots & \ddots & \vdots \\
x_my_1 & x_my_2 & \cdots & x_my_n
\end{bmatrix} 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 \boldsymbol{1}\in \Bbb{R}^{n} 1 ∈ R n 表示一个n n n 维向量,其元素都等于 1,此外,考虑矩阵A ∈ R m × n A \in \Bbb{R}^{m \times n} A ∈ R m × n ,其列全部是某个向量 x ∈ R m \boldsymbol{x} \in 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=\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
x & x & \cdots & x \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}=
\begin{bmatrix}
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{bmatrix}=
\begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_m \end{bmatrix}
\begin{bmatrix}1 & 1 & \cdots & 1\end{bmatrix}=\boldsymbol{x}\boldsymbol{1}^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
给定矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,向量 x ∈ R n \boldsymbol{x} \in \mathbb{R}^{n} x ∈ R n , 它们的积是一个向量 y = A x ∈ R m \boldsymbol{y} = A\boldsymbol{x} \in \mathbb{R}^{m} y = A x ∈ R m 。 有几种方法可以查看矩阵向量乘法。
如果我们按行写A A A ,那么我们可以表示A x A\boldsymbol{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 ] \boldsymbol{y} = A\boldsymbol{x} =
\begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}\boldsymbol{x}=
\begin{bmatrix} a_1^T\boldsymbol{x} \\ a_2^T\boldsymbol{x} \\ \vdots \\ a_m^T\boldsymbol{x} \end{bmatrix} 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 \boldsymbol{x} x 的内积,即:y i = a i T x y_i=a_{i}^{T} \boldsymbol{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 (1) \boldsymbol{y} = A\boldsymbol{x} =
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
a^1 & a^2 & \cdots & a^n \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}
\begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix}=
[a^1]x_1 + [a^2]x_2 + \cdots +[a^n]x_n
\label{1}\tag{1} 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 ( 1 )
换句话说,y \boldsymbol{y} y 是A A A 的列的线性组合 ,其中线性组合的系数由x \boldsymbol{x} x 的元素给出。
到目前为止,我们一直是矩阵右乘一个列向量,但也可以是矩阵左乘一个行向量。如这样表示:y T = x T A \boldsymbol{y}^T = \boldsymbol{x}^TA y T = x T A 其中A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,x ∈ R m \boldsymbol{x} \in \mathbb{R}^{m} x ∈ R m ,y ∈ R n \boldsymbol{y} \in \mathbb{R}^{n} y ∈ R n 。 和以前一样,我们可以用两种可行的方式表达y T \boldsymbol{y}^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 ] \boldsymbol{y}^T = \boldsymbol{x}^TA = \boldsymbol{x}^T
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
a^1 & a^2 & \cdots & a^n \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}=
\begin{bmatrix}\boldsymbol{x}^Ta^1 & \boldsymbol{x}^Ta^2 & \cdots & \boldsymbol{x}^Ta^n \end{bmatrix} 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 \boldsymbol{y}^T y T 的第i i i 个元素等于x \boldsymbol{x} x 和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 — ] \begin{aligned}
\boldsymbol{y}^T &= \boldsymbol{x}^TA \\&=
\begin{bmatrix} x_1 & x_2 & \cdots & x_n \end{bmatrix}
\begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}\\&=
x_1\begin{bmatrix}\text{\textemdash} & a_1^T & \text{\textemdash}\end{bmatrix}+
x_2\begin{bmatrix}\text{\textemdash} & a_2^T & \text{\textemdash}\end{bmatrix}+ \cdots +
x_n\begin{bmatrix}\text{\textemdash} & a_n^T & \text{\textemdash}\end{bmatrix}
\end{aligned} 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 \boldsymbol{y}^T y T 是A A A 的行的线性组合,其中线性组合的系数由x \boldsymbol{x} x 的元素给出。
有了这些知识,我们现在可以看看四种不同的(当然是等价的)查看矩阵与矩阵乘法C = A B C = AB 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 b 1 a 1 b 2 ⋯ a 1 b p a 2 b 1 a 2 b 2 ⋯ a 2 b p ⋮ ⋮ ⋱ ⋮ a m b 1 a m b 2 ⋯ a m b p ] C = AB =
\begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
b^1 & b^2 & \cdots & b^p \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}=
\begin{bmatrix}
a_1b_1 & a_1b_2 & \cdots & a_1b_p \\
a_2b_1 & a_2b_2 & \cdots & a_2b_p \\
\vdots & \vdots & \ddots & \vdots \\
a_mb_1 & a_mb_2 & \cdots & a_mb_p
\end{bmatrix} C = A B = ⎣ ⎡ — — — a 1 T a 2 T ⋮ a m T — — — ⎦ ⎤ ⎣ ⎡ | b 1 | | b 2 | ⋯ | b p | ⎦ ⎤ = ⎣ ⎡ a 1 b 1 a 2 b 1 ⋮ a m b 1 a 1 b 2 a 2 b 2 ⋮ a m b 2 ⋯ ⋯ ⋱ ⋯ a 1 b p a 2 b p ⋮ a m b p ⎦ ⎤
这里的矩阵A ∈ R m × n , B ∈ R n × p A \in \Bbb{R}^{m \times n} , B \in \Bbb{R}^{n \times p} A ∈ R m × n , B ∈ R n × p , 向量a i ∈ R n , b j ∈ R n a_i \in \Bbb{R}^n , b^j \in \Bbb{R}^n a i ∈ R n , b j ∈ R n ,所以它们可以计算内积。当我们用行表示 A A A 和用列表示 B B B 时,这是最“自然”的表示。
另外,我们可以用列表示 A A A ,用行表示 B B B 。这种表示导致将 A B AB 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 = AB =
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
a^1 & a^2 & \cdots & a^n \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}
\begin{bmatrix}
\text{\textemdash} & b_1^T & \text{\textemdash} \\
\text{\textemdash} & b_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & b_n^T & \text{\textemdash} \\
\end{bmatrix}=
\sum_{i=1}^n{a^ib_i^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 AB 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^ib_i^T a i b i T 的维度是m × p m×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 | | | ] (2) C = AB = A
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
b^1 & b^2 & \cdots & b^p \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}=
\begin{bmatrix}
\text{\textbar} & \text{\textbar} & & \text{\textbar} \\
Ab^1 & Ab^2 & \cdots & Ab^p \\
\text{\textbar} & \text{\textbar} & & \text{\textbar}
\end{bmatrix}
\label{2}\tag{2} C = A B = A ⎣ ⎡ | b 1 | | b 2 | ⋯ | b p | ⎦ ⎤ = ⎣ ⎡ | A b 1 | | A b 2 | ⋯ | A b p | ⎦ ⎤ ( 2 )
这里C C C 的第i i i 列由矩阵-向量乘积给出,右边的向量为c i = A b i c_i = Ab_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 = AB =
\begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}B=
\begin{bmatrix}
\text{\textemdash} & a_1^TB & \text{\textemdash} \\
\text{\textemdash} & a_2^TB & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^TB & \text{\textemdash} \\
\end{bmatrix} 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^T = a_i^T B c i T = a i T B 。
将矩阵乘法剖析到如此大的程度似乎有点矫枉过正,特别是当所有这些观点都紧跟在我们在本节开头给出的初始定义(C = A B C=AB C = A B )之后。
这些不同方法的直接优势在于它们允许您在向量的级别/单位而不是标量上进行操作 。 为了完全理解线性代数而不会迷失在复杂的索引操作中,关键是操作尽可能大(向量而不是标量)的概念。
实际上所有的线性代数都是在处理某种矩阵乘法,多花一些时间对这里提出的观点进行直观的理解是非常必要的。
除此之外,你还应该了解一些更高级别的矩阵乘法的基本性质:
矩阵乘法结合律: ( A B ) C = A ( B C ) (AB)C = A(BC) ( A B ) C = A ( BC )
矩阵乘法分配律: A ( B + C ) = A B + A C A(B + C) = AB + AC A ( B + C ) = A B + A C
矩阵乘法一般是不可交换的; 也就是说,通常A B ≠ B A AB \ne BA A B = B A 。 (例如,假设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 ,如果m m m 和q q q 不相等,矩阵乘积B A BA B A 甚至不存在!)
如果您不熟悉这些性质,请花点时间自己验证它们。 例如,为了检查矩阵乘法的结合性,假设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 ∈ R p × q C \in \mathbb{R}^ {p \times q} C ∈ R p × q 。 注意A B ∈ R m × p AB \in \mathbb{R}^ {m \times p} A B ∈ R m × p ,所以( A B ) C ∈ R m × q (AB)C \in \mathbb{R}^ {m \times q} ( A B ) C ∈ R m × q 。 类似地,B C ∈ R n × q BC \in \mathbb{R}^ {n \times q} BC ∈ R n × q ,所以A ( B C ) ∈ R m × q A(BC) \in \mathbb{R}^ {m \times q} A ( BC ) ∈ R m × q 。 因此,所得矩阵的维度一致。 为了验证矩阵乘法的结合性,检查( A B ) C (AB)C ( A B ) C 的(i , j i,j i , j )元素是否等于A ( B C ) A(BC) A ( BC ) 的(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} % aligned &= 等号对齐
((A B) C)_{ij} &= \sum_{k=1}^p{(AB)_{ik}C_{kj}} = \sum_{k=1}^p \Bigg( \sum_{l=1}^n{A_{il}B_{lk}} \Bigg) C_{kj} \\
&=\sum_{k=1}^p \Bigg( \sum_{l=1}^n{A_{il}B_{lk}C_{kj}}\Bigg) = \sum_{l=1}^n \Bigg( \sum_{k=1}^p{A_{il}B_{lk}C_{kj}}\Bigg)\\
&=\sum_{l=1}^nA_{il}\Bigg(\sum_{k=1}^p{B_{lk}C_{kj}}\Bigg) = \sum_{l=1}^n{A_{il}(BC)_{lj}} = (A(BC))_{ij}
\end{aligned} (( A B ) C ) ij = k = 1 ∑ p ( A B ) ik C kj = k = 1 ∑ p ( l = 1 ∑ n A i l B l k ) C kj = k = 1 ∑ p ( l = 1 ∑ n A i l B l k C kj ) = l = 1 ∑ n ( k = 1 ∑ p A i l B l k C kj ) = l = 1 ∑ n A i l ( k = 1 ∑ p B l k C kj ) = l = 1 ∑ n A i l ( BC ) l j = ( A ( BC ) ) ij
这里,第一个和最后两个等式简单地使用了矩阵乘法的定义,第三个和第五个等式使用了标量乘法对加法的分配性质,第四个等式使用了标量加法的交换性和结合性。 这种通过简化为简单标量性质来证明矩阵性质的技术会经常出现,因此请确保您熟悉它。
在本节中,我们将介绍矩阵和向量的几种操作和性质。 希望其中的大部分内容都可以帮您复习,此笔记可以作为参考。
单位矩阵 用I ∈ R n × n I \in \Bbb{R}^{n \times n} I ∈ R n × n 表示,它是一个方阵,对角线的元素是 1,其余元素都是 0。可以这样表示:
I i j = { 1 i = j 0 i ≠ j . I_{ij} =
\begin{cases}
1 & i=j \\
0 & i \neq j
\end{cases}. I ij = { 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 AI=A=IA A I = A = I A
注意,在某种意义上,上面单位矩阵的表示法是不明确的,因为它没有指定I I I 的维数。通常,I I I 的维数是从上下文推断出来的,以便使矩阵乘法成为可能。 例如,在上面的等式中,A I = A AI = A A I = A 中的I I I 是n × n n\times n n × n 矩阵,而A = I A A = IA A = I A 中的I I I 是m × m m\times m m × m 矩阵。
对角矩阵 的非对角元素全为 0。对角阵通常表示为:D = d i a g ( d 1 , d 2 , ⋯ , d n ) D=diag(d_1, d_2,\cdots, d_n) D = d ia g ( d 1 , d 2 , ⋯ , d n ) ,其中:
D i j = { d i i = j 0 i ≠ j . D_{ij} =
\begin{cases}
d_i & i=j \\
0 & i \neq j
\end{cases}. D ij = { d i 0 i = j i = j .
很明显,单位矩阵I = d i a g ( 1 , 1 , ⋯ , 1 ) I= diag(1, 1, \cdots , 1) I = d ia g ( 1 , 1 , ⋯ , 1 ) 。
矩阵的转置 是指翻转矩阵的行和列。给定一个矩阵A ∈ R m × n A \in \Bbb{R}^{m \times n} A ∈ R m × n ,它的转置A T ∈ R n × m A^T \in \Bbb{R}^{n \times m} A T ∈ R n × m ,其中的元素为:
( A T ) i j = A j i . (A^T)_{ij} = A_{ji}. ( A T ) ij = A ji .
事实上,我们在描述行向量时已经使用了转置,因为列向量的转置自然是行向量。
转置有以下性质,且很容易验证:
( A T ) T = A (A^T)^T = A ( A T ) T = A
( A B ) T = B T A T (AB)^T = B^TA^T ( A B ) T = B T A T
( A + B ) T = A T + B T (A+B)^T = A^T + B^T ( A + B ) T = A T + B T
如果A = A T A = A^T A = A T ,那么方阵 A ∈ R n × n A \in \Bbb{R}^{n \times n} A ∈ R n × n 是对称 的。
元素满足a i j = a j i , ∀ i , j a_{ij} = a_{ji} , \forall i,j a ij = a ji , ∀ i , j
A = A T A = A^T A = A T
对于任意方阵A A A ,A + A T A + A^T A + A T 是对称的
对角矩阵都是对称矩阵
如果A = − A T A = -A^T A = − A T ,那么它就是反对称 的。
元素满足a i j = − a j i , ∀ i , j a_{ij} = -a_{ji} , \forall i,j a ij = − a ji , ∀ i , j ,所以当i = j i=j i = j 时,a i j = 0 a_{ij} = 0 a ij = 0
A , B A,B A , B 都为反对称矩阵,则A ± B A \plusmn B A ± B 仍为反对称矩阵
若A A A 为反对称矩阵,B B B 为对称矩阵,则A B − B A AB-BA A B − B A 为对称矩阵
很容易证明,对于任何矩阵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 − 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}(A+A^T)+\frac{1}{2}(A-A^T) 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 矩阵。
方矩阵A ∈ R n × n A \in \mathbb{R}^ {n \times n} A ∈ R n × n 的迹 ,表示为tr ( A ) \operatorname{tr} (A) tr ( A ) (或者tr A \operatorname{tr} A tr A ,括号显然是隐含的),是矩阵中对角元素的总和:
tr A = ∑ i = 1 n A i i \operatorname{tr} A=\sum_{i=1}^{n} A_{i i} tr A = i = 1 ∑ n A ii
如 CS229 讲义中所述,迹具有以下性质(如下所示):
对于矩阵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^T tr A = tr 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 tr ( A + B ) = tr A + tr B
对于矩阵A ∈ R n × n A \in \mathbb{R}^ {n \times n} A ∈ R n × n ,t ∈ R t \in \mathbb{R} t ∈ R ,则:tr ( t A ) = t tr A \operatorname{tr}(tA) = t\operatorname{tr}A tr ( t A ) = t tr A .
对于矩阵 A A A , B B B ,A B AB A B 为方阵, 则:tr A B = tr B A \operatorname{tr}AB = \operatorname{tr}BA tr A B = tr B A
对于矩阵 A A A , B B B , C C C , A B C ABC A BC 为方阵(包含 1*1 的矩阵-标量), 则:tr A B C = tr B C A = tr C A B \operatorname{tr}ABC = \operatorname{tr}BCA=\operatorname{tr}CAB tr A BC = tr BC A = tr 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 AB \in \mathbb{R}^ {m \times m} A B ∈ R m × m 是方阵)。 观察到B A ∈ R n × n BA \in \mathbb{R}^ {n \times n} B A ∈ R n × n 也是一个方阵,因此对它们进行迹的运算是有意义的。 要证明tr A B = tr B A \operatorname{tr}AB = \operatorname{tr}BA tr A B = tr 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} tr A B = i = 1 ∑ m ( A B ) ii = i = 1 ∑ m ( j = 1 ∑ n A ij B ji ) = i = 1 ∑ m j = 1 ∑ n A ij B ji = j = 1 ∑ n i = 1 ∑ m B ji A ij = j = 1 ∑ n ( i = 1 ∑ m B ji A ij ) = j = 1 ∑ n ( B A ) jj = tr B A
这里,第一个和最后两个等式使用了迹运算符和矩阵乘法的定义。 重点在第四个等式,使用标量乘法的交换性来反转每个乘积中的项的顺序,以及标量加法的交换性和结合性来重新排列求和的顺序。
向量的范数 ∥ 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^{T} x ∥ x ∥ 2 2 = x T x
更正式地,范数是满足 4 个性质的函数(f : R n → R f : \mathbb{R}^{n} \rightarrow \mathbb{R} 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 x \in \mathbb{R}^ {n} x ∈ R n ,t ∈ R t\in \mathbb{R} t ∈ R ,则 f ( t x ) = ∣ t ∣ f ( x ) f(tx) = \left| t \right|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}|x_{i}| ∥ 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^{T} A\right)} ∥ A ∥ F = i = 1 ∑ m j = 1 ∑ n A ij 2 = tr ( A T A )
还有很多其他范数,但它们超出了这个复习材料的范围。
一个向量集合{ x 1 , x 2 , ⋯ x n } ⊂ R m \{ x_1,x_2, \cdots x_n \} \subset \mathbb{R}^m { x 1 , x 2 , ⋯ x n } ⊂ R m , 如果没有向量可以表示为其余向量的线性组合,则称称该向量是线性无关 的。 相反,如果属于该组的一个向量可以表示为其余向量的线性组合,则称该向量是线性相关 的。 也就是说,如果:
x j = ∑ i = 1 , i ≠ j n α i x i x_{j}=\sum_{i=1,i \neq j}^{n} \alpha_{i} x_{i} x j = i = 1 , i = j ∑ n α i x i
存在α 1 , ⋯ α n ∈ R \alpha_1,\cdots \alpha_{n} \in \mathbb{R} α 1 , ⋯ α n ∈ R ,那么向量x 1 , x 2 , ⋯ x n x_1,x_2, \cdots x_n x 1 , x 2 , ⋯ x n 是线性相关的; 否则,向量是线性无关的。
另一种线性相关 的描述(存在不全为零的数α i \alpha_{i} α i ,使得等式成立):
∑ i = 1 n α i x i = 0 , ∃ α i ≠ 0 \sum_{i=1}^{n} \alpha_{i} x_{i} = 0,\exists \alpha_i \neq 0 i = 1 ∑ n α i x i = 0 , ∃ α i = 0
例如,向量:
x 1 = [ 1 2 3 ] x 2 = [ 4 1 5 ] x 3 = [ 2 − 3 − 1 ] x_{1}=
\begin{bmatrix}
1 \\
2 \\
3
\end{bmatrix} \quad
x_{2}=
\begin{bmatrix}
4 \\
1 \\
5
\end{bmatrix} \quad
x_{3}=
\begin{bmatrix}
2 \\
-3 \\
-1
\end{bmatrix} x 1 = ⎣ ⎡ 1 2 3 ⎦ ⎤ x 2 = ⎣ ⎡ 4 1 5 ⎦ ⎤ x 3 = ⎣ ⎡ 2 − 3 − 1 ⎦ ⎤
是线性相关的,因为:x 3 = − 2 x 1 + x 2 x_3=-2x_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 ) \text{rank}(A) rank ( A ) 表示。 以下是秩的一些基本性质:
对于 A ∈ R m × n A \in \mathbb{R}^{m \times n} A ∈ R m × n ,rank ( A ) ≤ m i n ( m , n ) \text{rank}(A) \leq min(m, n) rank ( A ) ≤ min ( m , n ) ,如果( A ) = min ( m , n ) \text(A) = \text{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 ) \text{rank}(A) = \text{rank}(A^T) rank ( A ) = rank ( A 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 ,rank ( A B ) ≤ min ( rank ( A ) , rank ( B ) ) \text{rank}(AB) \leq \text{min} ( \text{rank}(A), \text{rank}(B)) rank ( A B ) ≤ min ( rank ( A ) , rank ( 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 ) \text{rank}(A + B) \leq \text{rank}(A) + \text{rank}(B) rank ( A + B ) ≤ rank ( A ) + rank ( B )
方阵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=AA^{-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 − 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})^{T} =(A^{T})^{-1} ( A − 1 ) T = ( A T ) − 1 因此,该矩阵通常表示为A − T A^{-T} A − T 。
作为如何使用逆的示例,考虑线性方程组,A x = b Ax = b A x = b ,其中A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,x , b ∈ R x,b\in \mathbb{R} 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 ,不是方阵,这公式还有用吗? - 伪逆 )
如果 x T y = 0 x^Ty=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 是正交矩阵 (注意在讨论向量与矩阵时的意义不一样,两个向量正交只需要内积为 0,正交矩阵是各列相互正交并且被归一化 )。
它可以从正交性和正态性的定义中得出:
U T U = I = U U T U^ TU = I = U U^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^TU = I U T U = I ,但是U U T ≠ I UU^T \neq I U U T = I 。所以正交矩阵一定是方阵 。
正交矩阵的另一个好的特性是在具有正交矩阵的向量上操作不会改变其欧几里德范数,即(i.e.):
∥ U x ∥ 2 = ∥ x ∥ 2 (3) \|U x\|_{2}=\|x\|_{2}
\label{3}\tag{3} ∥ Ux ∥ 2 = ∥ x ∥ 2 ( 3 )
对于任何 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 是正交矩阵。
张成 一个向量集合{ x 1 , x 2 , ⋯ x n } \{ x_1,x_2, \cdots x_n \} { x 1 , x 2 , ⋯ x n } 可以表示为一个向量集合{ x 1 , ⋯ x n } \{ x_1, \cdots x_n \} { x 1 , ⋯ x n } 的所以线性组合:
span ( { x 1 , ⋯ x n } ) = { v : v = ∑ i = 1 n α i x i , α i ∈ R } \operatorname{span}(\{x_1, \cdots x_n \}) = \Bigg\{v:v=\sum_{i=1}^n{\alpha_i x_i}, \alpha_i \in \Bbb{R} \Bigg\} span ({ x 1 , ⋯ x n }) = { v : v = i = 1 ∑ n α i x i , α i ∈ R }
可以看到,如果{ x 1 , ⋯ x n } \{x_{1}, \cdots x_{n}\} { 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 \text{span}(\{x_{1}, \ldots x_{n}\})=\mathbb{R}^{n} span ({ 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 } \{x_{1}, \ldots x_{n}\} { 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}(\{x_{1}, \ldots, x_{n}\}) v ∈ span ({ 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) Proj ( 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} Proj ( y ; { x 1 , … x n } ) = argmin v ∈ span ( { 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^{T} A\right)^{-1} A^{T} y Proj ( y ; A ) = argmin 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^{T}}{a^{T} a} y Proj ( 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 向量的集合,即:
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}(A^T) 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^{T}\right), v \in \mathcal{N}(A)\right\}=\mathbb{R}^{n} \text { and } \mathcal{R}\left(A^{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}(A^T) R ( A T ) 和 N ( A ) \mathcal{N}(A) N ( A ) 是不相交的子集,它们一起跨越R n \mathbb{R}^{n} R n 的整个空间。 这种类型的集合称为正交补 ,我们用R ( A T ) = N ( A ) ⊥ \mathcal{R}(A^T)= \mathcal{N}(A)^{\perp} R ( A T ) = N ( A ) ⊥ 表示。
一个方阵A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 的行列式 是函数det \text {det} det :R n × n → R n \mathbb{R}^{n \times n} \rightarrow \mathbb{R}^{n} R n × n → R n ,并且表示为∣ A ∣ \left| A \right| ∣ A ∣ 或者det A \text{det} A det A (有点像迹运算符,我们通常省略括号)。在代数上,我们可以写出 A 的行列式的明确公式,但不幸的是,这并不能直观地理解它的含义。 相反,我们将从提供行列式的几何解释开始,然后访问其一些特定的代数性质。
给定一个矩阵:
[ — a 1 T — — a 2 T — ⋮ — a n T — ] \begin{bmatrix}
\text{\textemdash} & a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_n^T & \text{\textemdash} \\
\end{bmatrix} ⎣ ⎡ — — — 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 } ) \text{span}(\{a_{1}, \ldots a_{n}\}) span ({ a 1 , … a n }) 受到系数α 1 , … α n \alpha_{1}, \ldots \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 的“体积”的度量。
比方说:一个2 × 2 2 \times2 2 × 2 的矩阵(4):
A = [ 1 3 3 2 ] (4) A=
\begin{bmatrix}
1 & 3 \\
3 & 2
\end{bmatrix}
\label{4}\tag{4} A = [ 1 3 3 2 ] ( 4 )
它的矩阵的行是:
a 1 = [ 1 3 ] a 2 = [ 3 2 ] a_{1}=\left[\begin{array}{l}{1} \\ {3}\end{array}\right]
\quad
a_{2}=\left[\begin{array}{l}{3} \\ {2}\end{array}\right] a 1 = [ 1 3 ] a 2 = [ 3 2 ]
对应于这些行对应的集合S S S 如图 1 所示。对于二维矩阵,S S S 通常具有平行四边形的形状。 在我们的例子中,行列式的值是∣ A ∣ = − 7 \left| A \right| = -7 ∣ A ∣ = − 7 (可以使用本节后面显示的公式计算),因此平行四边形的面积为 7。(请自己验证!)
在三维中,集合S S S 对应于一个称为平行六面体的对象(一个有倾斜边的三维框,这样每个面都有一个平行四边形)。行定义S S S 的3 × 3 3×3 3 × 3 矩阵 S 的行列式的绝对值给出了平行六面体的三维体积。在更高的维度中,集合S S S 是一个称为n n n 维平行体的对象。
(0, 0) a1 (1, 3) a2 (3, 2) (4, 5) Viewer does not support full SVG 1.1
图 1:(4)中给出的2 × 2 2×2 2 × 2 矩阵A A A 的行列式的图示。 这里,a 1 a_1 a 1 和a 2 a_2 a 2 是对应于A A A 行的向量,并且集合S S S 对应于平行四边形区域。 这个行列式的绝对值,∣ det A ∣ = 7 \left| \text{det} A \right| = 7 ∣ det A ∣ = 7 ,即平行四边形的面积。
在代数上,行列式满足以下三个性质(所有其他性质都遵循这些性质,包括通用公式):
单位阵的行列式为 1, ∣ I ∣ = 1 \left| I \right|= 1 ∣ I ∣ = 1 (几何上,单位超立方体的体积为 1)。
给定一个矩阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n , 如果我们将A A A 中的一行乘上一个标量t ∈ R t \in \mathbb{R} t ∈ R ,那么新矩阵的行列式是t ∣ A ∣ t\left| A \right| t ∣ A ∣
∣ [ — t a 1 T — — a 2 T — ⋮ — a m T — ] ∣ = t ∣ A ∣ \left|\begin{bmatrix}
\text{\textemdash} & t a_1^T & \text{\textemdash} \\
\text{\textemdash} & a_2^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}\right| = t|A| ∣ ∣ ⎣ ⎡ — — — t a 1 T a 2 T ⋮ a m T — — — ⎦ ⎤ ∣ ∣ = t ∣ A ∣
几何上,将集合S S S 的一个边乘以系数t t t ,体积也会增加一个系数t t t 。
如果我们交换任意两行在a i T a_i^T a i T 和a j T a_j^T a j T ,那么新矩阵的行列式是− ∣ A ∣ -\left| A \right| − ∣ A ∣ ,例如:
∣ [ — a 2 T — — a 1 T — ⋮ — a m T — ] ∣ = − ∣ A ∣ \left|\begin{bmatrix}
\text{\textemdash} & a_2^T & \text{\textemdash} \\
\text{\textemdash} & a_1^T & \text{\textemdash} \\
& \vdots & \\
\text{\textemdash} & a_m^T & \text{\textemdash} \\
\end{bmatrix}\right| = -|A| ∣ ∣ ⎣ ⎡ — — — a 2 T a 1 T ⋮ a m T — — — ⎦ ⎤ ∣ ∣ = − ∣ A ∣
你一定很奇怪,满足上述三个性质的函数的存在并不多。事实上,这样的函数确实存在,而且是唯一的(我们在这里不再证明了)。
从上述三个性质中得出的几个性质包括:
对于 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n , ∣ A ∣ = ∣ A T ∣ \left| A \right| = \left| A^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 ∣ \left| AB \right|= \left| A \right|\left| B \right| ∣ A B ∣ = ∣ A ∣ ∣ B ∣
对于 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,如果∣ A ∣ = 0 \left| A \right|= 0 ∣ A ∣ = 0 有且只有当A A A 是奇异的(即不可逆)(如果 A A A 是奇异的,那么它没有满秩,因此它的列是线性相关的。在这种情况下,集合 S S S 对应于 n n n 维空间中的“平面”,因此体积为零。)
对于 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| = 1/\left| A \right| ∣ ∣ A −1 ∣ ∣ = 1/ ∣ A ∣
在给出行列式的一般定义之前,我们定义,对于A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,A i , j ∈ R ( n − 1 ) × ( n − 1 ) A_{\bcancel i, \bcancel j}\in \mathbb{R}^{(n-1) \times (n-1)} 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 ij ∣ ∣ A \ i , \ j ∣ ∣ ( for any j ∈ 1 , … , n ) = j = 1 ∑ n ( − 1 ) i + j a ij ∣ ∣ 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 \left| A \right|= a_{11} ∣ A ∣ = a 11 。如果我们把这个公式完全展开为 A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n ,就等于n ! n! n ! (n n n 阶乘)不同的项。因此,对于大于3 × 3 3×3 3 × 3 的矩阵,我们几乎没有明确地写出完整的行列式方程。然而,3 × 3 3×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|\left[a_{11}\right]\right| &=a_{11}
\\
\left|\left[\begin{array}{ll}{a_{11}} & {a_{12}} \\ {a_{21}} & {a_{22}}\end{array}\right]\right|&=a_{11} a_{22}-a_{12} a_{21}
\\
\left|\left[\begin{array}{l}{a_{11}} & {a_{12}} & {a_{13}} \\ {a_{21}} & {a_{22}} & {a_{23}} \\ {a_{31}} & {a_{32}} & {a_{33}}\end{array}\right]\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 11 ] ∣ ∣ ∣ [ a 11 a 21 a 12 a 22 ] ∣ ∣ ∣ ∣ ⎣ ⎡ a 11 a 21 a 31 a 12 a 22 a 32 a 13 a 23 a 33 ⎦ ⎤ ∣ ∣ = a 11 = a 11 a 22 − a 12 a 21 = 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
矩阵A ∈ R n × n A \in \mathbb{R}^{n \times n} A ∈ R n × n 的经典伴随矩阵 (通常称为伴随矩阵 )表示为adj ( A ) \operatorname{adj}(A) adj ( 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| adj ( A ) ∈ R n × n , ( adj ( A ) ) ij = ( − 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 adj ( A )
虽然这是一个很好的“显式”的逆矩阵公式,但我们应该注意,从数字上讲,有很多更有效的方法来计算逆矩阵。
给定方矩阵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^T Ax 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^{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 ij x j ) = i = 1 ∑ n j = 1 ∑ n A ij 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^{T} A x=\left(x^{T} A x\right)^{T}=x^{T} A^{T} x=x^{T}\left(\frac{1}{2} A+\frac{1}{2} A^{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 T 2 + A − A T 2 , x T A x = x T A + A T 2 x + x T A − A T 2 x = x T A + A T 2 x + 0 A = \frac{A+A^T}{2} + \frac{A-A^T}{2}\\,
\\
x^{T} A x = x^{T}\frac{A+A^T}{2}x + x^{T}\frac{A-A^T}{2}x = x^{T}\frac{A+A^T}{2}x +0 A = 2 A + A T + 2 A − A T , x T A x = x T 2 A + A T x + x T 2 A − A T x = x T 2 A + A T x + 0
第一个等号的是因为是标量的转置与自身相等,而第二个等号是因为是我们平均两个本身相等的量。 由此,我们可以得出结论,只有A A A 的对称部分有助于形成二次型(A + A T A+A^T A + A T 是对称的 )。 出于这个原因,我们经常隐含地假设以二次型出现的矩阵是对称阵。
我们给出以下定义:
对于所有非零向量x ∈ R n x \in \mathbb{R}^n x ∈ R n ,x T A x > 0 x^TAx>0 x T A x > 0 ,对称阵A ∈ S n A \in \mathbb{S}^n A ∈ S n 为正定(PD) 。这通常表示为A ≻ 0 A\succ0 A ≻ 0 (或A > 0 A>0 A > 0 ),并且通常将所有正定矩阵的集合表示为S + + n \mathbb{S}_{++}^n S ++ n 。
对于所有向量x T A x ≥ 0 x^TAx\geq 0 x T A x ≥ 0 ,对称矩阵A ∈ S n A \in \mathbb{S}^n A ∈ S n 是半正定(PSD) 。 这写为A ⪰ 0 A \succeq 0 A ⪰ 0 (或A ≥ 0 A≥0 A ≥ 0 ),并且所有半正定矩阵的集合通常表示为S + n \mathbb{S}_+^n S + n 。
同样,对称矩阵A ∈ S n A \in \mathbb{S}^n A ∈ S n 是负定(ND) ,如果对于所有非零x ∈ R n x \in \mathbb{R}^n x ∈ R n ,则x T A x < 0 x^TAx <0 x T A x < 0 表示为A ≺ 0 A\prec0 A ≺ 0 (或A < 0 A <0 A < 0 )。
类似地,对称矩阵A ∈ S n A \in \mathbb{S}^n A ∈ S n 是半负定(NSD) ,如果对于所有x ∈ R n x \in \mathbb{R}^n x ∈ R n ,则x T A x ≤ 0 x^TAx \leq 0 x T A x ≤ 0 表示为A ⪯ 0 A\preceq 0 A ⪯ 0 (或A ≤ 0 A≤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^TAx_1>0 x 1 T A x 1 > 0 且x 2 T A x 2 < 0 x_2^TAx_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 = 1 n x i a i = 0 Ax=\sum_{i =1}^n x_{i} a_{i}=0 A x = i = 1 ∑ n x i a i = 0
但这意味着对于某些非零向量x x x ,x T A x = 0 x^T Ax = 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 ∈ R n × n G = A^T A \in \Bbb{R}^{n \times n} G = A T A ∈ R n × n (有时称为Gram 矩阵 )总是半正定的。 此外,如果m ≥ n m\geq n m ≥ n (同时为了方便起见,我们假设A A A 是满秩,即rank ( A ) = n \operatorname{rank}(A) = n rank ( A ) = n ,则G = A T A G = A^T A G = A T A 是正定的。
A A T AA^T A A T (即 Gram 矩阵)是半正定矩阵;协方差矩阵要是半正定矩阵
正定矩阵的所有特征值为正实数
半正定矩阵的所有特征值为非负实数
负定矩阵的所有特征值为负实数
半负定矩阵的所有特征值为非正实数
不定矩阵的特征值既有正数也有负数
给定一个方阵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 Ax=\lambda x,x \ne 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 和标量c ∈ C c\in\mathbb{C} c ∈ C ,A ( c x ) = c A x = c λ x = λ ( c x ) A(cx)=cAx=c\lambda x=\lambda(cx) A ( c x ) = c A x = c λ x = λ ( c x ) ,c x cx 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 \ne 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 的前提下):
A A A 的迹等于其特征值之和,也等于对角元素之和(迹的定义)
tr A = ∑ i = 1 n λ i = ∑ i = 1 n A i i \operatorname{tr} A=\sum_{i=1}^{n} \lambda_{i} =\sum_{i=1}^{n} A_{ii} tr A = i = 1 ∑ n λ i = i = 1 ∑ n A ii
A A A 的行列式等于其特征值的乘积
∣ 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 Ax=\lambda x A x = λ x ,两边都左乘A − 1 A^{-1} A − 1 )
对角阵的特征值D = diag ( d 1 , ⋯ d n ) D=\operatorname{diag}(d_1,\cdots d_n) D = diag ( d 1 , ⋯ d n ) 实际上就是对角元素d 1 , ⋯ d n d_1,\cdots d_n d 1 , ⋯ d n
一般而言,一般方阵的特征值和特征向量的结构很难表征。 幸运的是,在机器学习的大多数情况下,处理对称实矩阵就足够了,其特征值和特征向量具有显着的性质。
在本节中,我们假设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 ,对于所有i i i ,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 ∣ ∣ ∣ ] (5) U=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {u_{1}} & {u_{2}} & {\cdots} & {u_{n}} \\ { |} & { |} & {} & { |}\end{array}\right]
\label{5}\tag{5} U = ⎣ ⎡ ∣ u 1 ∣ ∣ u 2 ∣ ⋯ ∣ u n ∣ ⎦ ⎤ ( 5 )
设Λ = diag ( λ 1 , ⋯ , λ n ) \Lambda= \operatorname{diag}(\lambda_1,\cdots,\lambda_n) Λ = diag ( λ 1 , ⋯ , λ n ) 是包含λ 1 , ⋯ , λ n \lambda_1,\cdots,\lambda_n λ 1 , ⋯ , λ n 作为对角线上的元素的对角矩阵。 使用 2.3 节的方程( 2 ) \eqref{2} ( 2 ) 中的矩阵 - 矩阵向量乘法的方法,我们可以验证:
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}
{ |} & { |} & {} & { |} \\
{A u_{1}} & {A u_{2}} & {\cdots} & {A u_{n}} \\
{ |} & { |} & {} & { |}\end{array}\right]=
\left[\begin{array}{ccc}
{ |} & { |} & { } & { |}\\
{\lambda_{1} u_{1}} & {\lambda_{2} u_{2}} & {\cdots} & {\lambda_{n} u_{n}} \\
{ |} & { |} & {} & { |}
\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 diag ( λ 1 , … , λ n ) = U Λ
考虑到正交矩阵U U U 满足U U T = I UU^T=I U U T = I ,利用上面的方程,我们得到:
A = A U U T = U Λ U T (6) A=AUU^T=U\Lambda U^T
\label{6}\tag{6} A = A U U T = U Λ U T ( 6 )
这种A A A 的新的表示形式为U Λ U T U\Lambda U^T U Λ U T ,通常称为矩阵A A A 的对角化 。术语对角化是这样来的:通过这种表示,我们通常可以有效地将对称矩阵A A A 视为对角矩阵--这更容易理解--关于由特征向量U U U 定义的基础, 我们将通过几个例子详细说明。
背景知识:关于另一个基的向量 。
任何正交矩阵U = [ ∣ ∣ ∣ u 1 u 2 ⋯ u n ∣ ∣ ∣ ] U=\left[\begin{array}{cccc}{ |} & { |} & {} & { |} \\ {u_{1}} & {u_{2}} & {\cdots} & {u_{n}} \\ { |} & { |} & {} & { |}\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,\cdots,u_n u 1 , ⋯ , u n 的线性组合,其系数为x ^ 1 , ⋯ , x ^ n \hat x_1,\cdots,\hat x_n x ^ 1 , ⋯ , x ^ n :
x = x ^ 1 u 1 + ⋯ + x ^ n u n = U x ^ x=\hat x_1u_1+\cdots + \hat x_nu_n=U\hat x x = x ^ 1 u 1 + ⋯ + x ^ n u n = U x ^
在第二个等式中,我们使用矩阵和向量相乘的方法,查看式( 1 ) \eqref{1} ( 1 ) 。 实际上,这种x ^ \hat x x ^ 是唯一存在的:
x = U x ^ ⇔ U T x = x ^ x=U \hat{x} \Leftrightarrow U^{T} x=\hat{x} x = U x ^ ⇔ U T x = x ^
换句话说,向量x ^ = U T x \hat x=U^Tx x ^ = U T x 可以作为向量x x x 的另一种表示,与U U U 定义的基有关。
“对角化”矩阵向量乘法 。 通过上面的设置,我们将看到左乘矩阵A A A 可以被视为左乘对角矩阵,也就是特征向量组成的基。 假设x x x 是一个向量,x ^ \hat x x ^ 是以U U U 为基x x x 的表示。设z = A x z=Ax z = A x 为矩阵向量积。现在让我们计算以U U U 为基来表示z z z :
然后,再利用U U T = U T U = I UU^T=U^TU=I U U T = U T U = I 和A = A U U T = U Λ U T A=AUU^T=U\Lambda U^T A = A U U T = U Λ U T ,也就是式( 6 ) \eqref{6} ( 6 ) ,我们得到:
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^{T} z=U^{T} A x=U^{T} U \Lambda U^{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=AAAx q = AAA x 。根据A A A 的元素导出q q q 的分析形式,使用原始的基可能是一场噩ڊ#x68A6;,但使用新的基就容易多了:
q ^ = U T q = U T A A A x = U T U Λ U T U Λ U T U Λ U T x = Λ 3 x ^ = [ λ 1 3 x ^ 1 λ 2 3 x ^ 2 ⋮ λ n 3 x ^ n ] (7) \hat{q}=
U^{T} q=
U^{T} AAA x=
U^{T} U \Lambda U^{T} U \Lambda U^{T} U \Lambda U^{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]
\label{7}\tag{7} q ^ = U T q = U T AAA x = U T U Λ U T U Λ U T U Λ U T x = Λ 3 x ^ = ⎣ ⎡ λ 1 3 x ^ 1 λ 2 3 x ^ 2 ⋮ λ n 3 x ^ n ⎦ ⎤ ( 7 )
“对角化”二次型 。作为直接推论,二次型x T A x x^TAx x T A x 也可以在新的基上简化。
x T A x = x T U Λ U T x = x ^ T Λ x ^ = ∑ i = 1 n λ i x ^ i 2 (8) x^{T} A x=x^{T} U \Lambda U^{T} x=\hat{x}^T \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}
\label{8}\tag{8} x T A x = x T U Λ U T x = x ^ T Λ x ^ = i = 1 ∑ n λ i x ^ i 2 ( 8 )
(回想一下,在旧的表示法中,x T A x = ∑ i = 1 , j = 1 n x i x j A i j x^{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 ij 涉及一个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 \ne 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 ,那么它是不定的。这是因为如果我们让x ^ \hat x x ^ 满足x ^ i = 1 and x ^ k = 0 , ∀ k ≠ i \hat x_i=1 \text{ and } \hat x_k=0, \forall k\ne i x ^ i = 1 and x ^ k = 0 , ∀ k = i ,那么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 ,同样的我们让x ^ \hat x x ^ 满足x ^ j = 1 and x ^ k = 0 , ∀ k ≠ j \hat x_j=1 \text{ and } \hat x_k=0,\forall k\ne j x ^ j = 1 and x ^ k = 0 , ∀ k = j ,那么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
特征值和特征向量经常出现的应用是最大化矩阵的某些函数。特别是对于矩阵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 (9) \max _{x \in \mathbb{R}^{n}} \ x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \quad \text { subject to }\|x\|_{2}^{2}=1
\label{9}\tag{9} x ∈ R n max x T A x = i = 1 ∑ n λ i x ^ i 2 subject to ∥ x ∥ 2 2 = 1 ( 9 )
也就是说,我们要找到(范数 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 对应的唯一特征向量,它是上面那个优化问题( 9 ) \eqref{9} ( 9 ) 的唯一最大值。)
我们可以通过使用对角化技术来证明这一点:注意,通过公式∥ U x ∥ 2 = ( 3 ) ∥ x ∥ 2 \|U x\|_{2}\overset{\eqref{3}}{=}\|x\|_{2} ∥ Ux ∥ 2 = ( 3 ) ∥ 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 ^ T Λ x ^ = ∑ ∗ i = 1 n λ ∗ i x ^ _ i 2 , 也就是式 ( 8 ) x^{T} A x=x^{T} U \Lambda U^{T} x=\hat{x}^T \Lambda \hat{x}=\sum*{i=1}^{n} \lambda*{i} \hat{x}\_{i}^{2} ,\text{也就是式}\eqref{8} x T A x = x T U Λ U T x = x ^ T Λ x ^ = ∑ ∗ i = 1 n λ ∗ i x ^ _ i 2 , 也就是式 ( 8 ) ,我们可以将上面那个优化问题改写为:
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}^{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}^{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 相对应。
虽然前几节中的主题通常在线性代数的标准课程中涵盖,但一个似乎不经常涉及(我们将广泛使用)的主题是微积分对向量设置的扩展。 尽管我们使用的所有实际微积分都相对微不足道,但符号通常会使事情看起来比实际困难得多。 在本节中,我们将介绍矩阵微积分的一些基本定义并提供一些示例。
假设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_{1n}}} \\ {\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 11 ∂ f ( A ) ∂ A 21 ∂ f ( A ) ⋮ ∂ A m 1 ∂ f ( A ) ∂ A 12 ∂ f ( A ) ∂ A 22 ∂ f ( A ) ⋮ ∂ A m 2 ∂ f ( A ) ⋯ ⋯ ⋱ ⋯ ∂ A 1 n ∂ f ( A ) ∂ A 2 n ∂ f ( A ) ⋮ ∂ A mn ∂ 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 ) ) ij = ∂ A ij ∂ f ( A )
请注意 ,∇ A f ( A ) \nabla_{A} f(A) ∇ A f ( A ) 的维度始终与A A A 的维度相同。特殊情况,如果A A A 只是向量A ∈ R n A\in \mathbb{R}^{n} A ∈ R n ,则
∇ x f ( x ) = [ ∂ f ( x ) ∂ x 1 ∂ f ( x ) ∂ x 2 ⋮ ∂ f ( x ) ∂ x n ] \nabla_{x} f(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 f ( x ) = ⎣ ⎡ ∂ x 1 ∂ f ( x ) ∂ x 2 ∂ f ( x ) ⋮ ∂ x n ∂ f ( x ) ⎦ ⎤
重要的是要记住,只有当函数是实值时,即如果函数返回标量值,才定义函数的梯度。例如,A ∈ R m × n A\in \mathbb{R}^{m \times n} A ∈ R m × n 相对于x x x ,我们不能取A x Ax A x 的梯度,因为这个量(输出)是向量值。
直接从偏导数的等价性质得出:
∇ 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 )
For t ∈ R , ∇ x ( t f ( x ) ) = t ∇ x f ( x ) \text{For }t \in \mathbb{R},\nabla_{x}(t f(x))=t \nabla_{x} f(x) For t ∈ R , ∇ x ( t f ( x )) = t ∇ x f ( x )
原则上,梯度是偏导数对多维变量函数的自然延伸。然而,在实践中,由于符号的原因,使用梯度有时是很棘手的。例如,假设A ∈ R m × n A\in \mathbb{R}^{m \times n} A ∈ R m × n 是一个固定系数矩阵,假设b ∈ R m b\in \mathbb{R}^{m} b ∈ R m 是一个固定系数向量。设f : R m → R f: \mathbb{R}^{m} \rightarrow \mathbb{R} f : R m → R 为f ( z ) = z T z f(z)=z^Tz f ( z ) = z T z 定义的函数,因此∇ z f ( z ) = 2 z \nabla_{z}f(z)=2z ∇ z f ( z ) = 2 z 。但现在考虑表达式,
∇ f ( A x ) \nabla f(Ax) ∇ f ( A x )
该表达式应该如何解释? 至少有两种可能性:
在第一个解释中,回想起∇ z f ( z ) = 2 z \nabla_{z}f(z)=2z ∇ z f ( z ) = 2 z 。 在这里,我们将∇ f ( A x ) \nabla f(Ax) ∇ f ( A x ) 解释为评估点A x Ax A x 处的梯度,因此:
∇ f ( A x ) = 2 ( A x ) = 2 A x ∈ R m \nabla f(A x)=2(A x)=2 A x \in \mathbb{R}^{m} ∇ f ( A x ) = 2 ( A x ) = 2 A x ∈ R m
在第二种解释中,我们将数量f ( A x ) f(Ax) f ( A x ) 视为输入变量x x x 的函数。 更正式地说,设g ( x ) = f ( A x ) g(x) =f(Ax) g ( x ) = f ( A x ) 。 然后在这个解释中:
∇ f ( A x ) = ∇ x g ( x ) ∈ R n \nabla f(A x)=\nabla_{x} g(x) \in \mathbb{R}^{n} ∇ f ( A x ) = ∇ x g ( x ) ∈ R n
在这里,我们可以看到这两种解释确实不同。 一种解释产生m m m 维向量作为结果,而另一种解释产生n n n 维向量作为结果(x x x 的维度是n n n ,所以∇ x g ( x ) \nabla_{x} g(x) ∇ x g ( x ) 也是n n n ,上面有讲到)! 我们怎么解决这个问题?
这里,关键是要明确我们要区分的变量。
在第一种情况下,我们将函数f f f 与其参数z z z 进行区分,然后替换参数A x Ax A x 。
在第二种情况下,我们将复合函数g ( x ) = f ( A x ) g(x)=f(Ax) g ( x ) = f ( A x ) 直接与x x x 进行微分。
我们将第一种情况表示为∇ z f ( A x ) \nabla zf(Ax) ∇ z f ( A x ) ,第二种情况表示为∇ x f ( A x ) \nabla xf(Ax) ∇ x f ( A x ) 。
保持符号清晰是非常重要的,以后完成课程作业时候你就会发现。
假设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 ( A x ) \nabla_x ^2 f(A x) ∇ x 2 f ( A 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 ) ) ij = ∂ 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 → R f: \mathbb{R} \rightarrow \mathbb{R} f : R → 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 2 ∂ 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_{2} \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 2 ∂ 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 ) 的每个元素的梯度,而不是整个向量的梯度。
最后,请注意,虽然我们可以对矩阵A ∈ R n A\in \mathbb{R}^{n} A ∈ R n 取梯度,但对于这门课,我们只考虑对向量x ∈ R n x \in \mathbb{R}^{n} x ∈ R n 取黑塞矩阵。
这会方便很多(事实上,我们所做的任何计算都不要求我们找到关于矩阵的黑森方程),因为关于矩阵的黑塞方程就必须对矩阵所有元素求偏导数∂ 2 f ( A ) / ( ∂ A i j ∂ A k ℓ ) \partial^{2} f(A) /\left(\partial A_{i j} \partial A_{k \ell}\right) ∂ 2 f ( A ) / ( ∂ A ij ∂ A k ℓ ) ,将其表示为矩阵相当麻烦。
现在让我们尝试确定几个简单函数的梯度和黑塞矩阵。 应该注意的是,这里给出的所有梯度都是CS229 讲义中给出的梯度的特殊情况。
对于x ∈ R n x \in \mathbb{R}^{n} x ∈ R n , 设f ( x ) = b T x f(x)=b^Tx f ( x ) = b T x 的某些已知向量b ∈ R n b \in \mathbb{R}^{n} b ∈ R n ,则:
f ( x ) = ∑ i = 1 n b i x i f(x)=\sum_{i=1}^{n} b_{i} x_{i} f ( x ) = i = 1 ∑ n b i x i
所以:
∂ f ( x ) ∂ x k = ∂ ∂ x k ∑ i = 1 n b i x i = b k \frac{\partial f(x)}{\partial x_{k}}=\frac{\partial}{\partial x_{k}} \sum_{i=1}^{n} b_{i} x_{i}=b_{k} ∂ x k ∂ f ( x ) = ∂ x k ∂ i = 1 ∑ n b i x i = b k
由此我们可以很容易地看出∇ x b T x = b \nabla_{x} b^{T} x=b ∇ x b T x = b 。 这应该与单变量微积分中的类似情况进行比较,其中∂ / ( ∂ x ) a x = a \partial /(\partial x) a x=a ∂ / ( ∂ x ) a x = a 。
现在考虑A ∈ S n A\in \mathbb{S}^{n} A ∈ S n 的二次函数f ( x ) = x T A x f(x)=x^TAx f ( x ) = x T A x 。 记住这一点:
f ( x ) = ∑ i = 1 n ∑ j = 1 n A i j x i x j f(x)=\sum_{i=1}^{n} \sum_{j=1}^{n} A_{i j} x_{i} x_{j} f ( x ) = i = 1 ∑ n j = 1 ∑ n A ij x i x j
为了取偏导数,我们将分别考虑包括x k x_k x k 和x 2 k x_2^k x 2 k 因子的项:
∂ f ( x ) ∂ x k = ∂ ∂ x k ∑ i = 1 n ∑ j = 1 n A i j x i x j = ∂ ∂ x k [ ∑ i ≠ k ∑ j ≠ k A i j x i x j + ∑ i ≠ k A i k x i x k + ∑ j ≠ k A k j x k x j + A k k x k 2 ] = ∑ i ≠ k A i k x i + ∑ j ≠ k A k j x j + 2 A k k x k = ∑ i = 1 n A i k x i + ∑ j = 1 n A k j x j = 2 ∑ i = 1 n A k i x i \begin{aligned} \frac{\partial f(x)}{\partial x_{k}} &=\frac{\partial}{\partial x_{k}} \sum_{i=1}^{n} \sum_{j=1}^{n} A_{i j} x_{i} x_{j} \\ &=\frac{\partial}{\partial x_{k}}\left[\sum_{i \neq k} \sum_{j \neq k} A_{i j} x_{i} x_{j}+\sum_{i \neq k} A_{i k} x_{i} x_{k}+\sum_{j \neq k} A_{k j} x_{k} x_{j}+A_{k k} x_{k}^{2}\right] \\ &=\sum_{i \neq k} A_{i k} x_{i}+\sum_{j \neq k} A_{k j} x_{j}+2 A_{k k} x_{k} \\ &=\sum_{i=1}^{n} A_{i k} x_{i}+\sum_{j=1}^{n} A_{k j} x_{j}=2 \sum_{i=1}^{n} A_{k i} x_{i} \end{aligned} ∂ x k ∂ f ( x ) = ∂ x k ∂ i = 1 ∑ n j = 1 ∑ n A ij x i x j = ∂ x k ∂ ⎣ ⎡ i = k ∑ j = k ∑ A ij x i x j + i = k ∑ A ik x i x k + j = k ∑ A kj x k x j + A kk x k 2 ⎦ ⎤ = i = k ∑ A ik x i + j = k ∑ A kj x j + 2 A kk x k = i = 1 ∑ n A ik x i + j = 1 ∑ n A kj x j = 2 i = 1 ∑ n A ki x i
最后一个等式,是因为A A A 是对称的(我们可以安全地假设,因为它以二次形式出现)。 注意,∇ x f ( x ) \nabla_{x} f(x) ∇ x f ( x ) 的第k k k 个元素是A A A 和x x x 的第k k k 行的内积。 因此,∇ x x T A x = 2 A x \nabla_{x} x^{T} A x=2 A x ∇ x x T A x = 2 A x 。 同样,这应该提醒你单变量微积分中的类似事实,即∂ / ( ∂ x ) a x 2 = 2 a x \partial /(\partial x) a x^{2}=2 a x ∂ / ( ∂ x ) a x 2 = 2 a x 。
最后,让我们来看看二次函数f ( x ) = x T A x f(x)=x^TAx f ( x ) = x T A x 黑塞矩阵(显然,线性函数b T x b^Tx b T x 的黑塞矩阵为零)。在这种情况下:
∂ 2 f ( x ) ∂ x k ∂ x ℓ = ∂ ∂ x k [ ∂ f ( x ) ∂ x ℓ ] = ∂ ∂ x k [ 2 ∑ i = 1 n A ℓ i x i ] = 2 A ℓ k = 2 A k ℓ \frac{\partial^{2} f(x)}{\partial x_{k} \partial x_{\ell}}=\frac{\partial}{\partial x_{k}}\left[\frac{\partial f(x)}{\partial x_{\ell}}\right]=\frac{\partial}{\partial x_{k}}\left[2 \sum_{i=1}^{n} A_{\ell i} x_{i}\right]=2 A_{\ell k}=2 A_{k \ell} ∂ x k ∂ x ℓ ∂ 2 f ( x ) = ∂ x k ∂ [ ∂ x ℓ ∂ f ( x ) ] = ∂ x k ∂ [ 2 i = 1 ∑ n A ℓ i x i ] = 2 A ℓ k = 2 A k ℓ
因此,应该很清楚∇ x 2 x T A x = 2 A \nabla_{x}^2 x^{T} A x=2 A ∇ x 2 x T A x = 2 A ,这应该是完全可以理解的(同样类似于∂ 2 / ( ∂ x 2 ) a x 2 = 2 a \partial^2 /(\partial x^2) a x^{2}=2a ∂ 2 / ( ∂ x 2 ) a x 2 = 2 a 的单变量事实)。
简要概括起来:
∇ x b T x = b \nabla_{x} b^{T} x=b ∇ x b T x = b
∇ x x T A x = 2 A x \nabla_{x} x^{T} A x=2 A x ∇ x x T A x = 2 A x (如果A A A 是对称阵)
∇ x 2 x T A x = 2 A \nabla_{x}^2 x^{T} A x=2 A ∇ x 2 x T A x = 2 A (如果A A A 是对称阵)
让我们应用上一节中得到的方程来推导最小二乘方程。假设我们得到矩阵A ∈ R m × n A\in \mathbb{R}^{m \times n} A ∈ R m × n (为了简单起见,我们假设A A A 是满秩)和向量b ∈ R m b\in \mathbb{R}^{m} b ∈ R m ,从而使b ∉ R ( A ) b \notin \mathcal{R}(A) b ∈ / R ( A ) 。在这种情况下,我们将无法找到向量x ∈ R n x\in \mathbb{R}^{n} x ∈ R n ,由于A x = b Ax = b A x = b ,因此我们想要找到一个向量x x x ,使得A x Ax A x 尽可能接近 b b b ,用欧几里德范数的平方∥ A x − b ∥ _ 2 2 \|A x-b\|\_{2}^{2} ∥ A x − b ∥_ 2 2 来衡量。
使用公式∥ x ∥ 2 = x T x \|x\|^{2}=x^Tx ∥ x ∥ 2 = x T x ,我们可以得到:
∥ A x − b ∥ 2 2 = ( A x − b ) T ( A x − b ) = x T A T A x − 2 b T A x + b T b \begin{aligned}\|A x-b\|_{2}^{2} &=(A x-b)^{T}(A x-b) \\ &=x^{T} A^{T} A x-2 b^{T} A x+b^{T} b \end{aligned} ∥ A x − b ∥ 2 2 = ( A x − b ) T ( A x − b ) = x T A T A x − 2 b T A x + b T b
根据x x x 的梯度,并利用上一节中推导的性质:
∇ x ( x T A T A x − 2 b T A x + b T b ) = ∇ x x T A T A x − ∇ x 2 b T A x + ∇ x b T b = 2 A T A x − 2 A T b \begin{aligned} \nabla_{x}\left(x^{T} A^{T} A x-2 b^{T} A x+b^{T} b\right) &=\nabla_{x} x^{T} A^{T} A x-\nabla_{x} 2 b^{T} A x+\nabla_{x} b^{T} b \\ &=2 A^{T} A x-2 A^{T} b \end{aligned} ∇ x ( x T A T A x − 2 b T A x + b T b ) = ∇ x x T A T A x − ∇ x 2 b T A x + ∇ x b T b = 2 A T A x − 2 A T b
将最后一个表达式设置为零,然后解出x x x ,得到了正规方程:
x = ( A T A ) − 1 A T b x = (A^TA)^{-1}A^Tb x = ( A T A ) − 1 A T b
这和我们在课堂上得到的相同。
现在让我们考虑一种情况,我们找到一个函数相对于矩阵的梯度,也就是说,对于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 ij ∣ ∣ 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 ij ∣ ∣ A \ i , \ j ∣ ∣ = ( − 1 ) k + ℓ ∣ ∣ A \ k , \ ℓ ∣ ∣ = ( adj ( A ) ) ℓ k
从这里可以知道,它直接从伴随矩阵的性质得出:
∇ A ∣ A ∣ = ( adj ( A ) ) T = ∣ A ∣ A − T \nabla_{A}|A|=(\operatorname{adj}(A))^{T}=|A| A^{-T} ∇ A ∣ A ∣ = ( adj ( A ) ) T = ∣ A ∣ A − T
现在我们来考虑函数f : S + + n → R f : \mathbb{S}_{++}^{n} \rightarrow \mathbb{R} f : S ++ n → R ,f ( A ) = log ∣ A ∣ f(A)=\log |A| 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 ij ∂ log ∣ A ∣ = ∂ ∣ A ∣ ∂ log ∣ A ∣ ∂ A ij ∂ ∣ A ∣ = ∣ A ∣ 1 ∂ A ij ∂ ∣ 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 。
最后,我们使用矩阵演算以直接导致特征值/特征向量分析的方式求解优化问题。 考虑以下等式约束优化问题:
max x ∈ R n x T A x subject to ∥ x ∥ 2 2 = 1 \max _{x \in \mathbb{R}^{n}} x^{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^{T} A x-\lambda x^{T} x L ( x , λ ) = x T A x − λ x T x
其中,λ \lambda λ 被称为与等式约束关联的拉格朗日乘子。可以确定,要使x ⋆ x^{\star} x ⋆ 成为问题的最佳点,拉格朗日的梯度必须在x ⋆ x^\star 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^{T} A x-\lambda x^{T} x\right)=2 A^{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 Ax =\lambda x A x = λ x 。 这表明假设x T x = 1 x^T x = 1 x T x = 1 ,可能最大化(或最小化)x T A x x^T Ax x T A x 的唯一点是A A A 的特征向量。
column vector 列向量
row vector 行向量
inner product 内积
dot product 点积
outer product 外积
linear combination 线性组合
identity matrix 单位矩阵
diagonal matrix 对角矩阵
transpose 转置
symmetric matrix 对称矩阵
anti-symmetric matrix 反对称矩阵
trace 迹
norm 范数
(linearly) independent 线性无关
(linearly) dependent 线性相关
column rank 列秩
row rank 行秩
rank 秩
full rank 满秩
inverse 逆
invertible 可逆的
non-singular 非奇异
non-invertible 不可逆
singular 奇异
orthogonal 正交
normalized 归一化
span 张成
projection 投影
range 值域
columnspace 列空间
nullspace 零空间
orthogonal complements 正交补
determinant 行列式
classical adjoint(adjugate) matrix 经典伴随矩阵
adjoint(adjugate) matrix 伴随矩阵
minor 余子式
cofactor 代数余子式
cofactor matrix 代数余子式矩阵
quadratic form 二次型
positive definite(PD) 正定
positive semidefinitee (PSD) 半正定
negative definite (ND) 负定
negative semidefinite(NSD) 半负定
indefinite 不定
Gram matrix 格拉姆矩阵
eigenvalue 特征值
eigenvector 特征向量
Diagonalizing 对角化
gradient 梯度
Hessian 黑塞矩阵
Lagrangian 拉格朗日
翻译不易,https://github.com/openjw/open/blob/master/MachineLearning/cs229/cs229-linalg.md