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 拉格朗日