對
人工智能數學課高等數學線性微積分數學教程 的學習筆記。主要用於快速回憶已學的數學知識點,不適合基礎學習。
博客園 中同步更新。
1. 數學內容概述
人工智能是應用數學,需要的數學知識包括:
微積分
主要內容:導數與求導公式,一階導數與函數的單調性,一元函數極值判定法則,高階導數,二階導數與函數的凹凸性,一元導數泰勒展開。
主要用微 分部分,求函數極值 ,即機器學習庫中的求解器 (solver) 的功能;
推薦書籍:高等數學(第七版,同濟大學數學系),數學分析新講(張築生)
知識點:
線性代數
主要內容:向量及其運算,矩陣及其運算,張量,行列式,二次型,特徵值與特徵向量。
推薦書籍:工程數學線性代數(同濟大學數學系)
知識點:
數據一般都是向量、矩陣或張量。
概率論
主要內容:隨機事件與概率,條件概率和貝葉斯公式,隨機變量,隨機變量的期望和方差,常用概率分佈(正態分佈,均勻分佈,伯努利二項分佈),隨機向量(聯合概率密度函數等),協方差和協方差矩陣,最大似然估計。
將所處理的樣本數據看作隨機變量/向量,用概率論的觀點對問題進行建模。
推薦書籍:概率論與數理統計(第四版)
知識點:
最優化
推薦書籍:凸優化(作者:Stephen Boyd, Lieven Vandenberghe著 王書寧,許鋆,黃曉霖譯),非線性規劃(第2版,作者:Dimitri P. Bertsekas 著 宋士吉、張玉利、賈慶山 譯)
凸優化問題
其他
微分幾何,泛函分析和識別函數,離散數學(圖論)。
2. 一元函數微分學
- 導數
- 導數的定義
f ′ ( x 0 ) = lim Δ x → 0 f ( x 0 + Δ x ) − f ( x 0 ) Δ x {f}'\left ( x_0 \right )= \lim\limits_{\Delta x\rightarrow 0}\frac{f( x_0+\Delta x )-f(x_0)}{\Delta x} f ′ ( x 0 ) = Δ x → 0 lim Δ x f ( x 0 + Δ x ) − f ( x 0 )
- 左導數、右導數和右導數
ReLu函數 Activation Function
max ( 0 , x ) \max(0,x) max ( 0 , x )
- 幾何意義與物理意義
幾何意義,切線的斜率(一元函數)
物理意義,瞬時速度
f ′ ( t ) = lim Δ t → 0 Δ s Δ t f'(t)=\lim\limits_{\Delta t\rightarrow 0}\frac {\Delta s}{\Delta t} f ′ ( t ) = Δ t → 0 lim Δ t Δ s
- 求導公式
- 基本函數
( x a ) ′ = a x a − 1 (x^a)'=ax^{a-1} ( x a ) ′ = a x a − 1
( a x ) ′ = a x ln a (a^x)'=a^x\ln a ( a x ) ′ = a x ln a ; ( e x ) ′ = e x (e^x)'=e^x ( e x ) ′ = e x
( l o g a x ) ′ = 1 ln a 1 x (log_a x)'=\frac{1}{\ln a}\frac{1}{x} ( l o g a x ) ′ = ln a 1 x 1 ; ( ln x ) ′ = 1 x (\ln x)'=\frac{1}{x} ( ln x ) ′ = x 1
定義 :lim n → + ∞ ( 1 + 1 n ) n = e \lim\limits_{n\rightarrow+\infty}(1+\frac{1}{n})^n=e n → + ∞ lim ( 1 + n 1 ) n = e ; lim x → 0 sin x x = 1 \lim\limits_{x\rightarrow0}\frac{\sin x}{x}=1 x → 0 lim x sin x = 1 ; lim n → 0 ( 1 + n ) 1 n = e \lim\limits_{n\rightarrow0}(1+n)^\frac{1}{n}=e n → 0 lim ( 1 + n ) n 1 = e
- 四則運算法則
( f ( x ) + g ( x ) ) ′ = f ′ ( x ) + g ′ ( x ) (f(x)+g(x))'=f'(x)+g'(x) ( f ( x ) + g ( x ) ) ′ = f ′ ( x ) + g ′ ( x )
( f ( x ) g ( x ) ) ′ = f ′ ( x ) g ( x ) + f ( x ) g ′ ( x ) (f(x)g(x))'=f'(x)g(x)+f(x)g'(x) ( f ( x ) g ( x ) ) ′ = f ′ ( x ) g ( x ) + f ( x ) g ′ ( x )
( f ( x ) g ( x ) ) ′ = f ′ ( x ) g ( x ) − f ( x ) g ′ ( x ) g 2 ( x ) (\frac{f(x)}{g(x)})'=\frac{f'(x)g(x)-f(x)g'(x)}{g^2(x)} ( g ( x ) f ( x ) ) ′ = g 2 ( x ) f ′ ( x ) g ( x ) − f ( x ) g ′ ( x )
- 複合函數求導法則
( f ( g ( x ) ) ) ′ = f ′ ( g ) g ′ ( x ) (f(g(x)))'=f'(g)g'(x) ( f ( g ( x ) ) ) ′ = f ′ ( g ) g ′ ( x ) 鏈式求導法則
- 用途
求極值,backpropagation 激活函數
sigmoid函數 :σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ ( x ) = 1 + e − x 1 ; σ ′ ( x ) = [ 1 − σ ( x ) ] σ ( x ) \sigma'(x)=[1-\sigma(x)]\sigma(x) σ ′ ( x ) = [ 1 − σ ( x ) ] σ ( x )
tanh (雙曲正切)函數 :tanh ( x ) = sinh x cosh x = e x − e − x e x + e − x \tanh(x)=\frac{\sinh x}{\cosh x}=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh ( x ) = cosh x sinh x = e x + e − x e x − e − x
tanh ′ ( x ) = 1 − tanh 2 ( x ) \tanh'(x)=1-\tanh^2(x) tanh ′ ( x ) = 1 − tanh 2 ( x )
- 高階導數
對導數再次求導:f ( n ) ( x ) f^{(n)}(x) f ( n ) ( x )
- 導數與函數單調性關係
導數大於0,單調增;導數小於0,單調減。
- 極值定理
極值處函數的導數(若有)等於0,導數等於0處不一定是極值。
極值點是函數圖像的某段子區間內上極大值或者極小值點的**橫座標 **。極值點出現在函數的駐點(導數爲0的點)或不可導點處(導函數不存在,也可以取得極值,此時駐點不存在)。
- 導數與函數凹凸性
注 :中國大陸數學界某些機構關於函數凹凸性定義和國外的定義是相反 的。
國外定義中,凸函數是向下凸 的(不同於我們傳統意義上的"凸")。
凹凸函數定義:
設函數 f f f 爲定義在區間 I I I 上的函數,若對 ( a , b ) (a,b) ( a , b ) 上任意兩點 x 1 x_1 x 1 、 x 2 x_2 x 2 ,恆有:
(1) f ( x 1 + x 2 2 ) > f ( x 1 ) + f ( x 2 ) 2 f(\frac{x_1+x_2}{2})>\frac{f(x_1)+f(x_2)}{2} f ( 2 x 1 + x 2 ) > 2 f ( x 1 ) + f ( x 2 ) ,則稱 f f f 爲 ( a , b ) (a,b) ( a , b ) 上的凹函數或者上凸函數或者 A 型函數;
(2) f ( x 1 + x 2 2 ) < f ( x 1 ) + f ( x 2 ) 2 f(\frac{x_1+x_2}{2})<\frac{f(x_1)+f(x_2)}{2} f ( 2 x 1 + x 2 ) < 2 f ( x 1 ) + f ( x 2 ) ,則稱 f f f 爲 ( a , b ) (a,b) ( a , b ) 上的凸函數或者下凸函數或者 V 型函數;
f ′ ′ ( x ) > 0 f''(x)>0 f ′ ′ ( x ) > 0 二階導數大於0——凸 (convex) 函數;反之,凹 (concave) 函數
f ′ ( x ) = 0 f'(x)=0 f ′ ( x ) = 0 駐點;
f ′ ′ ( x ) = 0 f''(x)=0 f ′ ′ ( x ) = 0 ,若該曲線圖形的函數在拐點(連續曲線的凹弧與凸弧的分界點)有二階導數,則二階導數在拐點處異號(由正變負或由負變正)或不存在。
- 一元函數泰勒展開
多項式函數來近似一個可導函數。
f ( x ) = f ( x 0 ) 0 ! + f ′ ( x 0 ) 1 ! ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + . . . + f n ( x 0 ) n ! ( x − x 0 ) n + R n ( x )
f(x)=\frac{f(x_0)}{0!}+\frac{f'(x_0)}{1!}(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+...+\frac{f^{n}(x_0)}{n!}(x-x_0)^n + R_n(x)
f ( x ) = 0 ! f ( x 0 ) + 1 ! f ′ ( x 0 ) ( x − x 0 ) + 2 ! f ′ ′ ( x 0 ) ( x − x 0 ) 2 + . . . + n ! f n ( x 0 ) ( x − x 0 ) n + R n ( x )
f ( x ) = f ( x k ) + ( x − x k ) f ′ ( x k ) + 1 2 ( x − x k ) 2 f ′ ′ ( x k ) + o n
f(x)=f(x_k)+(x-x_k)f'(x_k)+\frac{1}{2}(x-x_k)^2f''(x_k)+o^n
f ( x ) = f ( x k ) + ( x − x k ) f ′ ( x k ) + 2 1 ( x − x k ) 2 f ′ ′ ( x k ) + o n
機器學習中求極值用的,梯度下降法(保留泰勒展開一階項),牛頓法(保留泰勒展開二階項)。
3. 線性代數基礎
- 向量
- 向量的範數
範數:∥ x ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p \left \| \boldsymbol{x} \right \|_p=\left ( \sum\limits_{i=1}^{n}\left | x_i \right |^p \right )^\frac{1}{p} ∥ x ∥ p = ( i = 1 ∑ n ∣ x i ∣ p ) p 1 ; p p p 爲整數,向量變成標量;
1 範數是絕對值加和,記爲 L 1 L1 L 1 : ∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ \left \| \boldsymbol{x} \right \|_1=\sum\limits_{i=1}^n \left | x_i \right | ∥ x ∥ 1 = i = 1 ∑ n ∣ x i ∣ ,曼哈頓距離;
2 範數是向量長度,向量的模,記爲 L 2 L2 L 2 : ∥ x ∥ 2 = ∑ i = 1 n ( x i ) 2 \left \| \boldsymbol{x} \right \|_2=\sqrt{\sum\limits_{i=1}^n \left ( x_i \right )^2} ∥ x ∥ 2 = i = 1 ∑ n ( x i ) 2 ,歐式距離;
應用:L 1 L1 L 1 正則項:∑ i = 1 n ∣ w i ∣ \sum\limits_{i=1}^n \left | w_i \right | i = 1 ∑ n ∣ w i ∣ ;L 2 L2 L 2 正則項:∑ i = 1 n ∣ w i ∣ 2 \sum\limits_{i=1}^n \left |w_i \right |^2 i = 1 ∑ n ∣ w i ∣ 2 ;正則項越小,模型容錯性越強,防止過擬合;
- 特殊向量
0 向量:np.zeros()
; 全 1 向量:np.ones()
;
稀疏向量(Sparse vector);稠密向量(Dense vector);one-hot 編碼;
單位向量,長度爲1;
- 矩陣
二維數組,方陣,對稱矩陣:a i j = a j i a_{ij}=a_{ji} a i j = a j i
單位陣:np.identity()
、np.eye()
矩陣運算:加減、數乘、轉置(a.T
、a.transpose(1,0)
)
矩陣的乘法:a*b
a/b
(按對應位相乘除),np.dot(a,b)
是把第一個矩陣的每一行和第二個矩陣的每一列做內積。
A + B + C = A + ( B + C ) A+B+C=A+(B+C) A + B + C = A + ( B + C ) ; ( A B ) C = A ( B C ) (AB)C=A(BC) ( A B ) C = A ( B C ) ; ( A + B ) C = A C + B C (A+B)C=AC+BC ( A + B ) C = A C + B C ; 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 B ) T = B T A T (AB)^T=B^TA^T ( A B ) T = B T A T
- 逆矩陣
假設一個矩陣 A A A (方陣),有 A B = B A = I AB=BA=I A B = B A = I , B = A − 1 B=A^{-1} B = A − 1
( A B ) − 1 = B − 1 A − 1 (AB)^{-1}=B^{-1}A^{-1} ( A B ) − 1 = B − 1 A − 1 ,( A − 1 ) − 1 = A (A^{-1})^{-1}=A ( A − 1 ) − 1 = A ,( A T ) − 1 = ( A − 1 ) T (A^T)^{-1}=(A^{-1})T ( A T ) − 1 = ( A − 1 ) T
np.linalg.inv(A)
(linear algebra)
- 行列式
∣ a 11 a 12 a 21 a 22 ∣ = a 11 a 22 − a 12 a 21
\begin{vmatrix}a_{11} & a_{12} \\a_{21} & a_{22}\end{vmatrix}=a_{11}a_{22}-a_{12}a_{21}
∣ ∣ ∣ ∣ a 1 1 a 2 1 a 1 2 a 2 2 ∣ ∣ ∣ ∣ = a 1 1 a 2 2 − a 1 2 a 2 1
∣ 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 13 a 22 a 31 − a 12 a 21 a 33 − a 11 a 23 a 32
\begin{vmatrix}a_{11}& a_{12} &a_{13}\\a_{21}& a_{22} &a_{23}\\ a_{31}& a_{32} &a_{33}\end{vmatrix}=a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}-a_{13}a_{22}a_{31}-a_{12}a_{21}a_{33}-a_{11}a_{23}a_{32}
∣ ∣ ∣ ∣ ∣ ∣ a 1 1 a 2 1 a 3 1 a 1 2 a 2 2 a 3 2 a 1 3 a 2 3 a 3 3 ∣ ∣ ∣ ∣ ∣ ∣ = a 1 1 a 2 2 a 3 3 + a 1 2 a 2 3 a 3 1 + a 1 3 a 2 1 a 3 2 − a 1 3 a 2 2 a 3 1 − a 1 2 a 2 1 a 3 3 − a 1 1 a 2 3 a 3 2
行列式性質 :∣ A B ∣ = ∣ A ∣ ∣ B ∣ \left | AB \right |=\left | A \right |\left | B \right | ∣ A B ∣ = ∣ A ∣ ∣ B ∣ , ∣ A − 1 ∣ = ∣ A ∣ − 1 \left | A^{-1} \right |=\left | A \right |^{-1} ∣ ∣ A − 1 ∣ ∣ = ∣ A ∣ − 1 ,∣ α A ∣ = α n ∣ A ∣ \left | \alpha A \right |=\alpha ^n\left | A \right | ∣ α A ∣ = α n ∣ A ∣
np.linalg.det(A)
4. 多元函數的微分學
- 偏導數
其他的自變量固定不動,對其中某一個變量求導數。
∂ f ∂ x i = lim Δ x i → 0 f ( x 1 , . . . , x i + Δ x i , . . . , x n ) − f ( x 1 , . . . , x i , . . . , x n ) Δ x i
\frac{\partial f}{\partial x_i}=\lim \limits_{\Delta x_i\rightarrow 0}\frac{f\left ( x_1,...,x_i+\Delta x_i,...,x_n \right )-f\left ( x_1,...,x_i,...,x_n \right )}{\Delta x_i}
∂ x i ∂ f = Δ x i → 0 lim Δ x i f ( x 1 , . . . , x i + Δ x i , . . . , x n ) − f ( x 1 , . . . , x i , . . . , x n )
from sympy import diff, symbols
x, y = symbols( 'x y' )
f = x** 2 + x* y - y** 2
diff( f, x)
>> > 2 * x + y
- 高階偏導數
依次對每一個變量反覆求導
高階導數和求導次序無關:∂ 2 f ∂ x ∂ y = ∂ 2 f ∂ y ∂ x \frac{\partial ^2f}{\partial x\partial y}=\frac{\partial ^2f}{\partial y\partial x} ∂ x ∂ y ∂ 2 f = ∂ y ∂ x ∂ 2 f ;
diff(f,x,2)
= ∂ 2 f ∂ 2 x \frac{\partial ^2f}{\partial^2 x} ∂ 2 x ∂ 2 f
diff(f,y).subs(y,2)
= ∂ f ∂ y ∣ y = 2 \frac{\partial f}{\partial y}\Big |_{y=2} ∂ y ∂ f ∣ ∣ ∣ y = 2
- 梯度
∇ f ( x ) = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , ⋯ , ∂ f ∂ x n ) T
\nabla f(\boldsymbol{x})=\left ( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2},\cdots,\frac{\partial f}{\partial x_n}\right )^T
∇ f ( x ) = ( ∂ x 1 ∂ f , ∂ x 2 ∂ f , ⋯ , ∂ x n ∂ f ) T
- 雅克比矩陣
一階偏導數構成的矩陣,簡化求導公式。
一個函數 f f f 把 n n n 維向量 x \boldsymbol{x} x 映射爲 k k k 維向量 y \boldsymbol{y} y :y = f ( x ) \boldsymbol{y}=f(\boldsymbol{x}) y = f ( x )
[ ∂ y 1 ∂ x 1 ∂ y 1 ∂ x 2 ⋯ ∂ y 1 ∂ x n ∂ y 2 ∂ x 1 ∂ y 2 ∂ x 2 ⋯ ∂ y 2 ∂ x n ⋯ ⋯ ⋯ ⋯ ∂ y k ∂ x 1 ∂ y k ∂ x 2 ⋯ ∂ y k ∂ x n ]
\begin{bmatrix}
\frac{\partial y_1}{\partial x_1} & \frac{\partial y_1}{\partial x_2} & \cdots & \frac{\partial y_1}{\partial x_n}\\
\frac{\partial y_2}{\partial x_1} & \frac{\partial y_2}{\partial x_2} & \cdots & \frac{\partial y_2}{\partial x_n} \\
\cdots & \cdots & \cdots & \cdots\\
\frac{\partial y_k}{\partial x_1} & \frac{\partial y_k}{\partial x_2} & \cdots & \frac{\partial y_k}{\partial x_n}
\end{bmatrix}
⎣ ⎢ ⎢ ⎢ ⎡ ∂ x 1 ∂ y 1 ∂ x 1 ∂ y 2 ⋯ ∂ x 1 ∂ y k ∂ x 2 ∂ y 1 ∂ x 2 ∂ y 2 ⋯ ∂ x 2 ∂ y k ⋯ ⋯ ⋯ ⋯ ∂ x n ∂ y 1 ∂ x n ∂ y 2 ⋯ ∂ x n ∂ y k ⎦ ⎥ ⎥ ⎥ ⎤
第 k k k 行就是 y k y_k y k 對 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x 1 , x 2 , ⋯ , x n 求偏導。
- Hessian 矩陣
[ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 ⋯ ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 ⋯ ∂ 2 f ∂ x 2 ∂ x n ⋯ ⋯ ⋯ ⋯ ∂ 2 f ∂ x n ∂ x 1 ∂ 2 f ∂ x n ∂ x 2 ⋯ ∂ 2 f ∂ x n 2 ]
\begin{bmatrix}
\frac{\partial^2 f}{{\partial x_1}^2} & \frac{\partial^2 f}{\partial x_1\partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1\partial x_n}\\
\frac{\partial^2 f}{\partial x_2\partial x_1} & \frac{\partial^2 f}{{\partial x_2}^2} & \cdots & \frac{\partial^2 f}{\partial x_2\partial x_n} \\
\cdots & \cdots & \cdots & \cdots\\
\frac{\partial^2 f}{\partial x_n\partial x_1} & \frac{\partial^2 f}{\partial x_n\partial x_2} & \cdots & \frac{\partial^2 f}{{\partial x_n}^2}
\end{bmatrix}
⎣ ⎢ ⎢ ⎢ ⎡ ∂ x 1 2 ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ⋯ ∂ x n ∂ x 1 ∂ 2 f ∂ x 1 ∂ x 2 ∂ 2 f ∂ x 2 2 ∂ 2 f ⋯ ∂ x n ∂ x 2 ∂ 2 f ⋯ ⋯ ⋯ ⋯ ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x n ∂ 2 f ⋯ ∂ x n 2 ∂ 2 f ⎦ ⎥ ⎥ ⎥ ⎤
- 極值判別法則
一元函數:f ( x ) f(x) f ( x ) 一階導數等於0處有極值,當 f ( x ) f(x) f ( x ) 的二階導數大於0時是極小值,當二階導數小於0時是極大值,參考 x 2 x^2 x 2 。
多元函數的極值判別 法則:看 Hessian 矩陣在 f ( x ) f(\boldsymbol{x}) f ( x ) 的二階導數等於0處,即駐點處。
若 Hessian 矩陣是正定,函數在該點有極小值;
若 Hessian 矩陣是負定,函數在該點有極大值;
若 Hessian 矩陣不定,則還需要看更高階導數。
矩陣正定:對於任意向量 x ≠ 0 ⃗ \boldsymbol{x}\ne \vec{0} x = 0 ,都有 x T A x > 0 \boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x}>0 x T A x > 0 ,則是正定矩陣,如果是 ≥ \ge ≥ ,則是半正定矩陣。
判斷原則:
矩陣特徵值 全部大於0;
矩陣所有的順序主子式都大於0;
矩陣合同於單位陣。
5. 線性代數高級
- 二次型
純二次項構成的函數,把含有 n n n 個變量的二次齊次函數稱爲二次型:
f ( x 1 , x 2 , ⋯ , x n ) = a 11 x 1 2 + a 22 x 2 2 + ⋯ + a n n x n 2 + 2 a 12 x 1 x 2 + 2 a 13 x 1 x 3 + ⋯ + 2 a n − 1 , n x n − 1 x n
f\left ( x_1,x_2,\cdots,x_n \right )=a_{11}x_1^2+a_{22}x_2^2+\cdots+a_{nn}x_n^2+2a_{12}x_1x_2+2a_{13}x_1x_3+\cdots+2a_{n-1,n}x_{n-1}x_{n}
f ( x 1 , x 2 , ⋯ , x n ) = a 1 1 x 1 2 + a 2 2 x 2 2 + ⋯ + a n n x n 2 + 2 a 1 2 x 1 x 2 + 2 a 1 3 x 1 x 3 + ⋯ + 2 a n − 1 , n x n − 1 x n
它其實是向量和矩陣相乘的結果:x T A x = ∑ i = 1 n ∑ j = 1 n a i j x i x j \boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x}=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}a_{ij}x_ix_j x T A x = i = 1 ∑ n j = 1 ∑ n a i j x i x j ,A \boldsymbol{A} A 即二次型矩陣。
( x 1 , ⋯ , x n ) [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋯ ⋯ ⋯ ⋯ a n 1 a n 2 ⋯ a n n ] ( x 1 ⋯ ⋯ x n )
\left ( x_1,\cdots,x_n \right )\begin{bmatrix}
a_{11} & a_{12} & \cdots & a_{1n}\\
a_{21} & a_{22} & \cdots & a_{2n}\\
\cdots & \cdots & \cdots & \cdots\\
a_{n1} & a_{n2} & \cdots & a_{nn}
\end{bmatrix}\begin{pmatrix}
x_1\\
\cdots\\
\cdots\\
x_n
\end{pmatrix}
( x 1 , ⋯ , x n ) ⎣ ⎢ ⎢ ⎡ a 1 1 a 2 1 ⋯ a n 1 a 1 2 a 2 2 ⋯ a n 2 ⋯ ⋯ ⋯ ⋯ a 1 n a 2 n ⋯ a n n ⎦ ⎥ ⎥ ⎤ ⎝ ⎜ ⎜ ⎛ x 1 ⋯ ⋯ x n ⎠ ⎟ ⎟ ⎞
機器學習中常見形式,比如是一次型:f ( x ; w ) = w T x + b f(\boldsymbol{x};\boldsymbol{w})=\boldsymbol{w}^T\boldsymbol{x}+b f ( x ; w ) = w T x + b ,或者二次型:f ( x ; w ) = x T w x + b f(\boldsymbol{x};\boldsymbol{w})=\boldsymbol{x}^T\boldsymbol{w}\boldsymbol{x}+b f ( x ; w ) = x T w x + b 。
回看 Hessian 矩陣:對於二次型函數,f ( x ) = x T A x f(\boldsymbol{x})=\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x} f ( x ) = x T A x :
f ( x ) > 0 , x ≠ 0 , x ∈ R f(\boldsymbol{x})>0,x\ne0,x\in \mathbb{R} f ( x ) > 0 , x = 0 , x ∈ R ,則 f f f 爲正定二次型,A A A 爲正定矩陣;
f ( x ) ≥ 0 , x ≠ 0 , x ∈ R f(\boldsymbol{x})\ge0,x\ne0,x\in \mathbb{R} f ( x ) ≥ 0 , x = 0 , x ∈ R ,則 f f f 爲半正定二次型,A A A 爲半正定矩陣;
f ( x ) < 0 , x ≠ 0 , x ∈ R f(\boldsymbol{x})<0,x\ne0,x\in \mathbb{R} f ( x ) < 0 , x = 0 , x ∈ R ,則 f f f 爲負定二次型,A A A 爲負定矩陣;
f ( x ) ≤ 0 , x ≠ 0 , x ∈ R f(\boldsymbol{x})\le0,x\ne0,x\in \mathbb{R} f ( x ) ≤ 0 , x = 0 , x ∈ R ,則 f f f 爲半負定二次型,A A A 爲半負定矩陣;
以上皆不是,不定。
- 特徵值和特徵向量
矩陣與向量的乘法相當於對向量做了一個線性變換,變換後不一定和原來在一條直線上 。
設 A \boldsymbol{A} A 是 n n n 階方陣,若存在數 λ \lambda λ 和非零 n n n 維向量 x \boldsymbol{x} x ,使得 A x = λ x \boldsymbol{A}\boldsymbol{x}=\lambda \boldsymbol{x} A x = λ x 成立,則稱 λ \lambda λ 是矩陣 A \boldsymbol{A} A 的一個特徵值 (characteristic value) 或本徵值 (eigenvalue)。
A x = λ x ⇒ ( A − λ I ) x = 0 \boldsymbol{Ax}=\lambda \boldsymbol{x} \Rightarrow \left ( \boldsymbol{A}-\lambda \boldsymbol{I }\right )\boldsymbol{x}=0 A x = λ x ⇒ ( A − λ I ) x = 0 ,有非零解的充要條件 是係數行列式 ∣ λ I − A ∣ = 0 \left | \lambda \boldsymbol{I}-\boldsymbol{A} \right |=0 ∣ λ I − A ∣ = 0
∣ λ I − A ∣ = λ n + α 1 λ n − 1 + α 2 λ n − 2 + ⋯ + α n − 1 λ + α n \left | \lambda \boldsymbol{I}-\boldsymbol{A} \right |=\lambda ^n+\alpha _1\lambda ^{n-1}+\alpha _2\lambda ^{n-2}+\cdots+\alpha _{n-1}\lambda+\alpha _n ∣ λ I − A ∣ = λ n + α 1 λ n − 1 + α 2 λ n − 2 + ⋯ + α n − 1 λ + α n
5 次和 5 次以上代數方程沒有求根公式,工程上計算矩陣特徵值使用 QR 算法。
t r ( A ) = ∑ i = 1 n a i i = λ 1 + λ 2 + ⋯ + λ n = ∑ i = 1 n λ i tr(\boldsymbol{A}) = \sum\limits_{i=1}^{n}a_{ii}=\lambda _1+\lambda _2+\cdots+\lambda _n=\sum\limits_{i=1}^{n}\lambda _i t r ( A ) = i = 1 ∑ n a i i = λ 1 + λ 2 + ⋯ + λ n = i = 1 ∑ n λ i ,∏ i = 1 n λ i = ∣ A ∣ \prod\limits_{i=1}^{n}\lambda _i=\left | \boldsymbol{A} \right | i = 1 ∏ n λ i = ∣ A ∣
np.linalg.eig(X)
- 特徵值分解
n × n n\times n n × n 矩陣 A \boldsymbol{A} A 的 n n n 個特徵值 λ 1 ≤ λ 2 ≤ ⋯ ≤ λ n \lambda_1\le\lambda_2\le\cdots\le\lambda_n λ 1 ≤ λ 2 ≤ ⋯ ≤ λ n ,以及這 n n n 個特徵值所對應的特徵向量 ( w 1 w 2 ⋯ w n ) \begin{pmatrix}w_1 & w_2 & \cdots & w_n \end{pmatrix} ( w 1 w 2 ⋯ w n ) ,那麼矩陣 A \boldsymbol{A} A 可以用特徵分解表示:$ \boldsymbol{A}=\boldsymbol{W}\boldsymbol{\Sigma}\boldsymbol{W}^{-1}$。特徵向量可被正交單位化從而使 W \boldsymbol{W} W 爲正交矩陣。
定理1:設 M \boldsymbol{M} M 爲 n × n n\times n n × n 的矩陣,其特徵值爲 λ 1 , λ 2 , ⋯ , λ n \lambda_1,\lambda_2,\cdots,\lambda_n λ 1 , λ 2 , ⋯ , λ n ,特徵向量爲 V 1 , V 2 , ⋯ , V n \boldsymbol{V}_1,\boldsymbol{V}_2,\cdots,\boldsymbol{V}_n V 1 , V 2 , ⋯ , V n ,形成線性無關集合,以每個特徵向量爲列構成矩陣 A = [ V 1 V 2 ⋯ V n ] \boldsymbol{A}= \begin{bmatrix}\boldsymbol{V}_1 & \boldsymbol{V}_2 & \cdots & \boldsymbol{V}_n \end{bmatrix} A = [ V 1 V 2 ⋯ V n ] 。矩陣 A \boldsymbol{A} A 可以將矩陣 M \boldsymbol{M} M 對角化,乘積矩陣 A − 1 M A \boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A} A − 1 M A 的主對角元素是矩陣 M \boldsymbol{M} M 的特徵值:
A − 1 M A = ( λ 1 0 ⋯ 0 0 λ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ n )
\boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A}=\begin{pmatrix}\lambda_1 & 0 & \cdots & 0\\ 0 & \lambda_2 &\cdots & 0\\ \vdots & \vdots & \ddots &\vdots \\
0 & 0 & \cdots & \lambda_n \end{pmatrix}
A − 1 M A = ⎝ ⎜ ⎜ ⎜ ⎛ λ 1 0 ⋮ 0 0 λ 2 ⋮ 0 ⋯ ⋯ ⋱ ⋯ 0 0 ⋮ λ n ⎠ ⎟ ⎟ ⎟ ⎞
反之,若存在可逆矩陣 A \boldsymbol{A} A ,使 A − 1 M A \boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A} A − 1 M A 爲對角矩陣,則矩陣 A \boldsymbol{A} A 的列等於矩陣 M \boldsymbol{M} M 的特徵向量, A − 1 M A \boldsymbol{A}^{-1}\boldsymbol{M}\boldsymbol{A} A − 1 M A 的主對角元素爲矩陣 M \boldsymbol{M} M 的特徵值。
正交矩陣 P − 1 = P T \boldsymbol{P}^{-1}=\boldsymbol{P}^T P − 1 = P T ,行和列相互之間是正交的。
特徵分解 (Eigendecomposition),又稱譜分解 (Spectral decomposition),只有可對角化矩陣纔可以作特徵分解。一個矩陣可以拆分成一個正交陣和對角矩陣以及正交陣的逆的乘積。
- 多元函數的泰勒展開
f ( x ) = f ( x k ) + [ ∇ f ( x k ) ] T ( x − x k ) + 1 2 ( x − x k ) T H ( x k ) ( x − x k ) + o n
f(\boldsymbol{x})=f(\boldsymbol{x}_k)+[\nabla f(\boldsymbol{x}_k)]^T(\boldsymbol{x}-\boldsymbol{x}_k)+\frac {1}{2}(\boldsymbol{x}-\boldsymbol{x}_k)^TH(\boldsymbol{x}_k)(\boldsymbol{x}-\boldsymbol{x}_k)+\boldsymbol{o}^n
f ( x ) = f ( x k ) + [ ∇ f ( x k ) ] T ( x − x k ) + 2 1 ( x − x k ) T H ( x k ) ( x − x k ) + o n
注:∇ f ( x k ) \nabla f(\boldsymbol{x}_k) ∇ f ( x k ) 是梯度,H ( x k ) H(\boldsymbol{x}_k) H ( x k ) 是 Hessian 矩陣,x T A x ⇒ a x 2 \boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x }\Rightarrow ax^2 x T A x ⇒ a x 2 。
- 矩陣和向量的求導公式
∇ ( w T x ) = w \nabla (\boldsymbol{w}^T\boldsymbol{x})=\boldsymbol{w} ∇ ( w T x ) = w
∇ ( x T A x ) = ( A + A T ) x \nabla (\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x})= (\boldsymbol{A}+\boldsymbol{A}^T)\boldsymbol{x} ∇ ( x T A x ) = ( A + A T ) x
∇ 2 ( x T A x ) = A + A T \nabla ^2 (\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x})= \boldsymbol{A}+\boldsymbol{A}^T ∇ 2 ( x T A x ) = A + A T 二階導即再對 x \boldsymbol{x} x 求導。
- 奇異值分解 (SVD)
可以應用於任意形狀的矩陣,區別於譜分解;
A = U Σ V T \boldsymbol{A}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T A = U Σ V T ,其中 A \boldsymbol{A} A 是 m × n m\times n m × n 的矩陣, U \boldsymbol{U} U , V \boldsymbol{V} V 都是正交矩陣,Σ \boldsymbol{\Sigma} Σ 是對角陣 m × n m\times n m × n ;
U \boldsymbol{U} U 是 A A T \boldsymbol{A}\boldsymbol{A}^T A A T 正交化特徵向量構成的 m × m m\times m m × m 矩陣,V \boldsymbol{V} V 是 A T A \boldsymbol{A}^T\boldsymbol{A} A T A 正交化特徵向量構成的 n × n n\times n n × n 矩陣;
Σ \boldsymbol{\Sigma} Σ 是 m × n m\times n m × n 的矩陣,除了主對角線上的元素 (奇異值) 以外全部爲0, U \boldsymbol{U} U , V \boldsymbol{V} V 都是酉矩陣,即 U T U = I \boldsymbol{U}^T\boldsymbol{U}=\boldsymbol{I} U T U = I , V T V = I \boldsymbol{V}^T\boldsymbol{V}=\boldsymbol{I} V T V = I
- 求解奇異值分解
n × n n\times n n × n 方陣 A T A \boldsymbol{A}^T\boldsymbol{A} A T A 求 n n n 個特徵向量:( A T A ) v i = λ i v i (\boldsymbol{A}^T\boldsymbol{A})\boldsymbol{v}_i=\lambda_i\boldsymbol{v}_i ( A T A ) v i = λ i v i ,將所有特徵向量張成 n × n n\times n n × n 的矩陣 V \boldsymbol{V} V ,其中每個特徵向量叫 A \boldsymbol{A} A 的右奇異向量;
m × m m\times m m × m 方陣 A A T \boldsymbol{A}\boldsymbol{A}^T A A T 求 m m m 個特徵向量:( A A T ) u i = λ i u i (\boldsymbol{A}\boldsymbol{A}^T)\boldsymbol{u}_i=\lambda_i\boldsymbol{u}_i ( A A T ) u i = λ i u i ,將所有特徵向量張成 m × m m\times m m × m 的矩陣 U \boldsymbol{U} U ,其中每個特徵向量叫 A \boldsymbol{A} A 的左奇異向量;
A = U Σ V T ⇒ A V = U Σ V T V ⇒ A V = U Σ ⇒ A v i = σ i u i ⇒ σ i = A v i / u i
\boldsymbol{A}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T\Rightarrow
\boldsymbol{A}\boldsymbol{V}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T\boldsymbol{V}\Rightarrow
\boldsymbol{A}\boldsymbol{V}=\boldsymbol{U}\boldsymbol{\Sigma}\Rightarrow
\boldsymbol{A}\boldsymbol{v}_i=\boldsymbol{\sigma}_i\boldsymbol{u}_i\Rightarrow
\boldsymbol{\sigma}_i=\boldsymbol{A}\boldsymbol{v}_i/\boldsymbol{u}_i
A = U Σ V T ⇒ A V = U Σ V T V ⇒ A V = U Σ ⇒ A v i = σ i u i ⇒ σ i = A v i / u i
A T A = V Σ 2 V T , A A T = U Σ 2 U T
\boldsymbol{A}^T\boldsymbol{A}=\boldsymbol{V}\boldsymbol{\Sigma}^2\boldsymbol{V}^T,\boldsymbol{A}\boldsymbol{A}^T=\boldsymbol{U}\boldsymbol{\Sigma}^2\boldsymbol{U}^T
A T A = V Σ 2 V T , A A T = U Σ 2 U T
A T A \boldsymbol{A}^T\boldsymbol{A} A T A 特徵值與奇異值:σ i = λ i \sigma_i=\sqrt{\lambda_i} σ i = λ i
- 奇異值分解的性質
奇異值矩陣中按照從大到小排列,且減少得特別快,即可以用最大的 k k k 個奇異值和對應的左右奇異向量來近似描述矩陣:
A m × n = U m × m Σ m × n V n × n T ≈ U m × k Σ k × k V n × k T \boldsymbol{A}_{m\times n}=\boldsymbol{U}_{m\times m}\boldsymbol{\Sigma}_{m\times n}\boldsymbol{V}_{n\times n}^T\approx \boldsymbol{U}_{m\times k}\boldsymbol{\Sigma}_{k\times k}\boldsymbol{V}_{n\times k}^T A m × n = U m × m Σ m × n V n × n T ≈ U m × k Σ k × k V n × k T
大的矩陣用三個小矩陣近似描述;
若 Σ \boldsymbol{\Sigma} Σ 中有 k k k 個非0值:σ 1 ≥ σ 2 ≥ ⋯ ≥ σ k > 0 \sigma_1\ge \sigma_2\ge\cdots\ge\sigma_k>0 σ 1 ≥ σ 2 ≥ ⋯ ≥ σ k > 0 ,則此時乘回去即是 A \boldsymbol{A} A ;
- SVD 的應用
- 數據壓縮
import numpy as np
u, sigma, v = np. linalg. svd( arr)
new_arr = np. mat( u[ : , 0 : 2 ] ) * np. mat( np. diag( sigma[ 0 : 2 ] ) ) * np. mat( v[ 0 : 2 , : ] )
np. rint( new_arr)
- PCA 降維
PCA (principal components analysis) 主成分分析
總體方差:σ 2 = ∑ ( X − μ ) 2 N \sigma^2=\frac{\sum(X-\mu)^2}N σ 2 = N ∑ ( X − μ ) 2 ,樣本方差:s 2 = ∑ ( X − X ˉ ) n − 1 s^2=\frac{\sum (X-\bar{X})}{n-1} s 2 = n − 1 ∑ ( X − X ˉ ) ,
D ( X ) = E [ ( X − E ( X ) ) 2 ] = E ( X 2 ) − [ E ( X ) ] 2 D(X)=E[(X-E(X))^2]=E(X^2)-[E(X)]^2 D ( X ) = E [ ( X − E ( X ) ) 2 ] = E ( X 2 ) − [ E ( X ) ] 2 ,
D ( X ± Y ) = D ( X ) + D ( Y ) ± 2 C o v ( X , Y ) D(X\pm Y)=D(X)+D(Y)\pm2Cov(X,Y) D ( X ± Y ) = D ( X ) + D ( Y ) ± 2 C o v ( X , Y ) ,C o v ( X , Y ) = E { [ X − E ( X ) ] [ Y − E ( Y ) ] } Cov(X,Y)=E\{[X-E(X)][Y-E(Y)]\} C o v ( X , Y ) = E { [ X − E ( X ) ] [ Y − E ( Y ) ] }
左奇異向量壓縮行,右奇異向量壓縮列,即取奇異值較大的左奇異向量或右奇異向量與原數據相乘。
- 協調過濾
- 矩陣求逆
奇異值求倒數:A = U Σ V T ⇒ A − 1 = V Σ − 1 U T \boldsymbol{A}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T\Rightarrow \boldsymbol{A}^{-1}=\boldsymbol{V}\boldsymbol{\Sigma}^{-1}\boldsymbol{U}^T A = U Σ V T ⇒ A − 1 = V Σ − 1 U T
6. 概率論
- 基本概念
用概率論建模,假設它服從某種概率分佈
隨機事件 (必然事件,不可能事件) 和隨機事件概率
隨機事件獨立:p ( b ∣ a ) = p ( b ) p(b|a)=p(b) p ( b ∣ a ) = p ( b ) , p ( a , b ) = p ( a ) p ( b ) p(a,b)=p(a)p(b) p ( a , b ) = p ( a ) p ( b ) , p ( a 1 , ⋯ , a n ) = ∏ i = 1 n p ( a i ) p(a_1,\cdots,a_n)=\prod\limits_{i=1}^{n}p(a_i) p ( a 1 , ⋯ , a n ) = i = 1 ∏ n p ( a i )
隨機變量:(1) 離散;(2) 連續,概率密度函數 f ( x ) ≥ 0 , ∫ − ∞ + ∞ f ( x ) d x = 1 f(x)\ge0,\int_{-\infty}^{+\infty}f(x)dx=1 f ( x ) ≥ 0 , ∫ − ∞ + ∞ f ( x ) d x = 1
F ( y ) = p ( x ≤ y ) = ∫ − ∞ y f ( x ) d x , ∫ x 1 x 2 f ( x ) d x = F ( x 2 ) − F ( x 1 ) F(y)=p(x\le y)=\int_{-\infty}^{y}f(x)dx,\int_{x_1}^{x_2}f(x)dx=F(x_2)-F(x_1) F ( y ) = p ( x ≤ y ) = ∫ − ∞ y f ( x ) d x , ∫ x 1 x 2 f ( x ) d x = F ( x 2 ) − F ( x 1 )
- 條件概率和貝葉斯公式
對於兩個隨機事件 a a a 和 b b b ,在 a a a 發生的情況下 b b b 發生的概率爲 p ( b ∣ a ) = p ( a , b ) p ( a ) p(b|a)=\frac{p(a,b)}{p(a)} p ( b ∣ a ) = p ( a ) p ( a , b )
貝葉斯公式 :p ( a ∣ b ) = p ( a ) p ( b ∣ a ) p ( b ) p(a|b)=\frac{p(a)p(b|a)}{p(b)} p ( a ∣ b ) = p ( b ) p ( a ) p ( b ∣ a ) ,a a a 爲因,b b b 是果,知道原因後結果發生的概率是先驗概率,貝葉斯公式得到的是後驗概率。
p ( b ) p ( a ∣ b ) = p ( a , b ) = p ( a ) p ( b ∣ a ) p(b)p(a|b)=p(a,b)=p(a)p(b|a) p ( b ) p ( a ∣ b ) = p ( a , b ) = p ( a ) p ( b ∣ a )
最大化後驗概率 MAP
- 數學期望和方差
數學期望就是概率意義的平均值
E ( x ) = ∑ x i p ( x i ) , E ( x ) = ∫ − ∞ + ∞ x f ( x ) d x E(x)=\sum x_ip(x_i),E(x)=\int_{-\infty}^{+\infty}xf(x)dx E ( x ) = ∑ x i p ( x i ) , E ( x ) = ∫ − ∞ + ∞ x f ( x ) d x
方差反應數據的波動程度
D ( x ) = ∑ ( x i − E ( x ) ) 2 p ( x i ) D(x)=\sum (x_i-E(x))^2p(x_i) D ( x ) = ∑ ( x i − E ( x ) ) 2 p ( x i )
D ( x ) = ∫ − ∞ + ∞ ( x − E ( x ) ) 2 f ( x ) d x D(x)=\int_{-\infty}^{+\infty} (x-E(x))^2f(x)dx D ( x ) = ∫ − ∞ + ∞ ( x − E ( x ) ) 2 f ( x ) d x
有關性質
E ( a + b X ) = a + b E X E(a+bX)=a+bEX E ( a + b X ) = a + b E X
V a r X = E ( X − μ ) 2 = E ( X 2 ) − ( E ( X ) ) 2 VarX=E(X-\mu)^2=E(X^2)-(E(X))^2 V a r X = E ( X − μ ) 2 = E ( X 2 ) − ( E ( X ) ) 2
- 常用分佈
正態分佈:σ \sigma σ 越大越矮胖
f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2
f(x)=\frac{1}{\sqrt{2\pi }\sigma }e^{-\frac{(x-\mu )^2}{2\sigma ^2}}
f ( x ) = 2 π σ 1 e − 2 σ 2 ( x − μ ) 2
均勻分佈:
f ( x ) = { 1 b − a a ≤ x ≤ b 0 x < a , x > b
f(x)=\left\{\begin{matrix}
\frac{1}{b-a}\quad a\le x\le b\\
0\quad x<a,x>b
\end{matrix}\right.
f ( x ) = { b − a 1 a ≤ x ≤ b 0 x < a , x > b
二項分佈
p ( x = 1 ) = p , p ( x = 0 ) = 1 − p
p(x=1)=p,p(x=0)=1-p
p ( x = 1 ) = p , p ( x = 0 ) = 1 − p
- 隨機向量
隨機變量推廣至隨機向量
離散型:p ( x = x i ) p(\boldsymbol{x}=\boldsymbol{x}_i) p ( x = x i ) 向量取值爲某一向量
連續型:f ( x ) ≥ 0 , ∭ f ( x ) d x = 1 f(\boldsymbol{x})\ge 0, \iiint f(\boldsymbol{x})d\boldsymbol{x}=1 f ( x ) ≥ 0 , ∭ f ( x ) d x = 1 ,二維時:f ( x 1 , x 2 ) ≥ 0 , f ( x ) ≥ 0 , ∫ − ∞ + ∞ f ( x 1 , x 2 ) d x 1 d x 2 = 1 f(x_1,x_2)\ge 0, f(x)\ge0,\int_{-\infty}^{+\infty}f(x_1,x_2)dx_1dx_2=1 f ( x 1 , x 2 ) ≥ 0 , f ( x ) ≥ 0 , ∫ − ∞ + ∞ f ( x 1 , x 2 ) d x 1 d x 2 = 1
隨機變量的獨立性:f ( x 1 , x 2 , ⋯ , x n ) = f ( x 1 ) f ( x 2 ) ⋯ f ( x n ) f(x_1,x_2,\cdots,x_n)=f(x_1)f(x_2)\cdots f(x_n) f ( x 1 , x 2 , ⋯ , x n ) = f ( x 1 ) f ( x 2 ) ⋯ f ( x n )
隨機向量的常見分佈:正態分佈
f ( x ) = 1 ( 2 π ) n 2 ∣ Σ ∣ 1 2 e − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) , x ∈ R n
f(x)=\frac{1}{(2\pi)^{n\over 2}\left | \Sigma \right |^{1\over 2}}e^{-\frac{1}{2}(x-\mu)^T\Sigma ^{-1}(x-\mu)}\ ,x\in \mathbb{R}^n
f ( x ) = ( 2 π ) 2 n ∣ Σ ∣ 2 1 1 e − 2 1 ( x − μ ) T Σ − 1 ( x − μ ) , x ∈ R n
Σ \Sigma Σ 是協方差矩陣。
- 協方差
對於兩個隨機變量:
c o v ( x 1 , x 2 ) = E ( ( x 1 − E ( x 1 ) ) ( x 2 − E ( x 2 ) ) ) c o v ( x 1 , x 2 ) = E ( x 1 x 2 ) − E ( x 1 ) E ( x 2 )
cov(x_1,x_2)=E((x_1-E(x_1))(x_2-E(x_2)))\\
cov(x_1,x_2)=E(x_1x_2)-E(x_1)E(x_2)
c o v ( x 1 , x 2 ) = E ( ( x 1 − E ( x 1 ) ) ( x 2 − E ( x 2 ) ) ) c o v ( x 1 , x 2 ) = E ( x 1 x 2 ) − E ( x 1 ) E ( x 2 )
協方差矩陣
[ x 1 x 1 x 1 x 2 ⋯ x 1 x n x 2 x 1 ⋱ ⋯ x 2 x n ⋮ ⋮ ⋱ ⋮ x n x 1 ⋯ ⋯ x n x n ]
\begin{bmatrix}
x_1x_1 & x_1x_2 & \cdots & x_1x_n\\
x_2x_1 & \ddots & \cdots & x_2x_n\\
\vdots & \vdots & \ddots & \vdots \\
x_nx_1 & \cdots & \cdots & x_nx_n
\end{bmatrix}
⎣ ⎢ ⎢ ⎢ ⎡ x 1 x 1 x 2 x 1 ⋮ x n x 1 x 1 x 2 ⋱ ⋮ ⋯ ⋯ ⋯ ⋱ ⋯ x 1 x n x 2 x n ⋮ x n x n ⎦ ⎥ ⎥ ⎥ ⎤
- 最大似然估計
最大似然估計(maximum likelihood estimation, MLE),估計參數;
總似然:L ( θ ) = ∏ i = 1 l p ( x i ; θ ) L(\theta )= \prod\limits_{i=1}^{l}p(x_i;\theta ) L ( θ ) = i = 1 ∏ l p ( x i ; θ )
對數總似然:ln L ( θ ) = ln ∏ i = 1 l p ( x i ; θ ) = ∑ i = 1 l ln p ( x i ; θ ) \ln L(\theta )= \ln\prod\limits_{i=1}^{l}p(x_i;\theta )=\sum\limits_{i=1}^{l}\ln p(x_i;\theta ) ln L ( θ ) = ln i = 1 ∏ l p ( x i ; θ ) = i = 1 ∑ l ln p ( x i ; θ )
max ∑ i = 1 l ln p ( x i ; θ ) \max \sum\limits_{i=1}^{l}\ln p(x_i;\theta ) max i = 1 ∑ l ln p ( x i ; θ ) ,對 θ \theta θ 求導讓它對於0
7. 最優化
- 基本概念
求 f ( x ) f(x) f ( x ) 的極大值或極小值,x x x 是優化變量,就是自變量,f ( x ) f(x) f ( x ) 是目標函數,可能帶有約束條件,滿足約束並在定義域內的集合叫可行域;
max f ( x ) ⇔ min f ( x ) g i ( x ) = 0 , i = 1 , ⋯ , m h j ( x ) ≤ 0 j = 1 , ⋯ , n
\max f(x) \Leftrightarrow\min f(x)\\
g_i(x)=0,\quad i=1,\cdots,m\\
h_j(x)\le 0\quad j=1,\cdots,n
max f ( x ) ⇔ min f ( x ) g i ( x ) = 0 , i = 1 , ⋯ , m h j ( x ) ≤ 0 j = 1 , ⋯ , n
局部極小值:任意在 x 0 x_0 x 0 的領域存在,f ( x ) ≥ f ( x 0 ) , ∀ x ∈ δ ( x 0 ) f(x)\ge f(x_0), \forall x\in \delta (x_0) f ( x ) ≥ f ( x 0 ) , ∀ x ∈ δ ( x 0 )
通過大量實踐發現在高維度的優化問題中,局部極小值 (local minimum)和全局極小值沒有太大的區別,甚至有時候有更好的泛化能力。
爲什麼要迭代求解?(求導困難,求根困難),(初始值,逼近)
- 梯度下降法
x k + 1 = x k − γ ∇ f ( x k )
\boldsymbol{x}_{k+1}=\boldsymbol{x}_k-\gamma \nabla f(\boldsymbol{x}_k)
x k + 1 = x k − γ ∇ f ( x k )
推導:
利用多元函數的泰勒展開公式:f ( x ) − f ( x 0 ) ≈ [ ∇ f ( x 0 ) ] T ( x − x 0 ) f(\boldsymbol{x})-f(\boldsymbol{x}_0)\approx[\nabla f(\boldsymbol{x}_0)]^T(\boldsymbol{x}-\boldsymbol{x}_0) f ( x ) − f ( x 0 ) ≈ [ ∇ f ( x 0 ) ] T ( x − x 0 )
X T Y = ∣ X ∣ ⋅ ∣ Y ∣ ⋅ cos θ X^TY=|X|\cdot|Y|\cdot\cos\theta X T Y = ∣ X ∣ ⋅ ∣ Y ∣ ⋅ cos θ ,cos θ = − 1 \cos\theta=-1 cos θ = − 1 下降幅度最大
爲了使得下降幅度最大,向量 x − x 0 \boldsymbol{x}-\boldsymbol{x}_0 x − x 0 (不一定是單位向量) 的方向和梯度方向相反:v = − ∇ f ( x 0 ) ∥ ∇ f ( x 0 ) ∥ \boldsymbol{v}=-\frac{\nabla f(\boldsymbol{x}_0)}{\left \| \nabla f(\boldsymbol{x}_0) \right \|} v = − ∥ ∇ f ( x 0 ) ∥ ∇ f ( x 0 )
x = x 0 − η ∇ f ( x 0 ) ∥ ∇ f ( x 0 ) ∥ \boldsymbol{x}=\boldsymbol{x}_0-\eta\frac{\nabla f(\boldsymbol{x}_0)}{\left \| \nabla f(\boldsymbol{x}_0) \right \|} x = x 0 − η ∥ ∇ f ( x 0 ) ∥ ∇ f ( x 0 ) ,分母是標量可併入 η \eta η ,即 x = x 0 − η ∇ f ( x 0 ) \boldsymbol{x}=\boldsymbol{x}_0-\eta\nabla f(\boldsymbol{x}_0) x = x 0 − η ∇ f ( x 0 )
η \eta η 是步長,不能太大,否則不滿足約等於條件。
- 牛頓法
x k + 1 = x − H k − 1 g k
\boldsymbol{x}_{k+1}=\boldsymbol{x}-\boldsymbol{H}_k^{-1}\boldsymbol{g}_k
x k + 1 = x − H k − 1 g k
思想:找梯度爲0的點。
推導:
多元函數的泰勒展開公式展開二次以上的項
f ( x ) = f ( x 0 ) + [ ∇ f ( x 0 ) ] T ( x − x 0 ) + 1 2 ( x − x 0 ) T H ( x 0 ) ( x − x 0 ) + o ( x − x 0 )
f(\boldsymbol{x})=f(\boldsymbol{x}_0)+[\nabla f(\boldsymbol{x}_0)]^T(\boldsymbol{x}-\boldsymbol{x}_0)+\frac {1}{2}(\boldsymbol{x}-\boldsymbol{x}_0)^TH(\boldsymbol{x}_0)(\boldsymbol{x}-\boldsymbol{x}_0)+\boldsymbol{o}(\boldsymbol{x}-\boldsymbol{x}_0)
f ( x ) = f ( x 0 ) + [ ∇ f ( x 0 ) ] T ( x − x 0 ) + 2 1 ( x − x 0 ) T H ( x 0 ) ( x − x 0 ) + o ( x − x 0 )
取近似
f ( x ) ≈ f ( x 0 ) + [ ∇ f ( x 0 ) ] T ( x − x 0 ) + 1 2 ( x − x 0 ) T H ( x 0 ) ( x − x 0 )
f(\boldsymbol{x})\approx f(\boldsymbol{x}_0)+[\nabla f(\boldsymbol{x}_0)]^T(\boldsymbol{x}-\boldsymbol{x}_0)+\frac {1}{2}(\boldsymbol{x}-\boldsymbol{x}_0)^TH(\boldsymbol{x}_0)(\boldsymbol{x}-\boldsymbol{x}_0)
f ( x ) ≈ f ( x 0 ) + [ ∇ f ( x 0 ) ] T ( x − x 0 ) + 2 1 ( x − x 0 ) T H ( x 0 ) ( x − x 0 )
由於 ( w T x ) ′ = w (\boldsymbol{w}^T\boldsymbol{x})'=\boldsymbol{w} ( w T x ) ′ = w ,( x T A x ) ′ = ( A + A T ) x (\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x})'= (\boldsymbol{A}+\boldsymbol{A}^T)\boldsymbol{x} ( x T A x ) ′ = ( A + A T ) x ,故有:
∇ f ( x ) ≈ ∇ f ( x 0 ) + H ( x 0 ) ( x − x 0 ) = g + H ( x − x 0 )
\nabla f(\boldsymbol{x})\approx \nabla f(\boldsymbol{x}_0)+H(\boldsymbol{x}_0)(\boldsymbol{x}-\boldsymbol{x}_0)=\boldsymbol{g}+\boldsymbol{H}(\boldsymbol{x}-\boldsymbol{x}_0)
∇ f ( x ) ≈ ∇ f ( x 0 ) + H ( x 0 ) ( x − x 0 ) = g + H ( x − x 0 )
令 ∇ f ( x ) = 0 \nabla f(\boldsymbol{x})=0 ∇ f ( x ) = 0 ,如果 Hessian 矩陣可逆,則有
g + H ( x − x 0 ) = 0 ⇒ x − x 0 = − H − 1 g
\boldsymbol{g}+\boldsymbol{H}(\boldsymbol{x}-\boldsymbol{x}_0)=0\\
\Rightarrow \boldsymbol{x}-\boldsymbol{x}_0=-\boldsymbol{H}^{-1}\boldsymbol{g}
g + H ( x − x 0 ) = 0 ⇒ x − x 0 = − H − 1 g
對比:
x k + 1 = x k − η ⋅ g k x k + 1 = x k − η ⋅ H k − 1 ⋅ g k
\boldsymbol{x}_{k+1}=\boldsymbol{x}_k-\eta\cdot\boldsymbol{g}_k\\
\boldsymbol{x}_{k+1}=\boldsymbol{x}_k-\eta\cdot\boldsymbol{H}^{-1}_k\cdot\boldsymbol{g}_k
x k + 1 = x k − η ⋅ g k x k + 1 = x k − η ⋅ H k − 1 ⋅ g k
牛頓法步長設定不好就有可能不收斂,不是迭代就一定使得函數值下降,一般用 line search 的技術,選擇一些值如 1 0 − 4 , 1 0 − 6 10^{-4},10^{-6} 1 0 − 4 , 1 0 − 6 ,看哪個步長使得 f ( x k + 1 ) f(\boldsymbol{x}_{k+1}) f ( x k + 1 ) 更小。
牛頓法收斂更快。
- 座標下降法
分治 (分而治之) 法的思想:保持其他不動,只優化其中一個,優化完了之後再回來重新優化。
計算量小
- 數值優化算法面臨的問題
駐點不一定是極值點
局部極值問題;
鞍點問題,如 x 3 x^3 x 3 ,在這一點 Hessian 矩陣不定,
- 凸優化問題
前面數值優化面臨兩個問題,對這類問題進行限定:
優化變量的可行域必須是凸集;
優化函數必須是個凸函數。
同時滿足這兩個條件的叫凸優化問題,才能說局部極小值就是全局極小值。
- 凸集
定義:對於一個點的集合 C C C ,有屬於它的兩個點 x , y x,y x , y ,它們兩點連線中任意一點也屬於該集合:θ x + ( 1 − θ ) y ∈ C , 0 ≤ θ ≤ 1 \theta x+(1-\theta)y\in C,0\le\theta\le1 θ x + ( 1 − θ ) y ∈ C , 0 ≤ θ ≤ 1
典型的凸集:
歐式空間 R n \mathbb{R}^n R n :x , y ∈ R n ⇒ θ x + ( 1 − θ ) y ∈ R n \boldsymbol{x},\boldsymbol{y} \in \mathbb{R}^n\Rightarrow \theta \boldsymbol{x} +(1-\theta)\boldsymbol{y}\in \mathbb{R}^n x , y ∈ R n ⇒ θ x + ( 1 − θ ) y ∈ R n ;很多可行域就是歐式空間,即凸集;
仿射子空間:{ x ∈ R n : A x = b } \left \{ \boldsymbol{x}\in\mathbb{R}^n:\boldsymbol{A}\boldsymbol{x}=\boldsymbol{b} \right \} { x ∈ R n : A x = b } ,x \boldsymbol{x} x 是 n n n 維歐式空間的向量,滿足線性方程的解;所有等式約束構成的集合是凸集,不會構建非線性等式約束;
多面體:{ x ∈ R n : A x ≤ b } \left \{ \boldsymbol{x}\in\mathbb{R}^n:\boldsymbol{A}\boldsymbol{x}\le\boldsymbol{b} \right \} { x ∈ R n : A x ≤ b } ,線性不等式的解;一組線性不等式約束,也是凸集。
凸集的交集也是凸集 ⋂ i = 1 k C i \bigcap\limits_{i=1}^{k}C_i i = 1 ⋂ k C i ,並集不一定是凸集。
- 凸函數
定義:函數上任意兩點它們的連線 (即割線) 上的值比對應的函數上的值要大,f ( θ x + ( 1 − θ ) y ) < θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x+(1-\theta )y)<\theta f(x)+(1-\theta )f(y) f ( θ x + ( 1 − θ ) y ) < θ f ( x ) + ( 1 − θ ) f ( y )
凸函數的證明:
利用定義
利用一階導數:
一元函數:f ( y ) ≥ f ( x ) + f ′ ( x ) ( y − x ) f(y)\ge f(x)+f'(x)(y-x) f ( y ) ≥ f ( x ) + f ′ ( x ) ( y − x )
多元函數:f ( y ) ≥ f ( x ) + ∇ f ( x ) T ( y − x ) f(\boldsymbol{y})\ge f(\boldsymbol{x})+\nabla f(\boldsymbol{x})^T(\boldsymbol{y}-\boldsymbol{x}) f ( y ) ≥ f ( x ) + ∇ f ( x ) T ( y − x )
二階判別法:
一元函數:f ′ ′ ( x ) ≥ 0 f''(x)\ge 0 f ′ ′ ( x ) ≥ 0
多元函數:Hessian 矩陣半正定,> 0 >0 > 0 是嚴格凸函數
如果每個函數 f i ( x ) f_i(x) f i ( x ) 都是凸函數,那麼它們的非負線性組合 f ( x ) = ∑ i = 1 k w i f i ( x ) , w i ≥ 0 f(x)=\sum\limits_{i=1}^{k}w_if_i(x),w_i\ge 0 f ( x ) = i = 1 ∑ k w i f i ( x ) , w i ≥ 0 也是凸函數。
- 凸優化的性質
目標函數是凸函數,可行域是凸集,則局部最優解一定是全局最優解。
證明:(反證法)
假設有一點 x x x 是局部最小值,但不是全局最小值,則存在另一個點 y y y 是全局最小值,這時 f ( y ) < f ( x ) f(y)<f(x) f ( y ) < f ( x ) 。
證明 x x x 的領域有一個點 z z z 比 x x x 小即可,取 z = θ y + ( 1 − θ ) x , θ = δ 2 ∥ x − y ∥ 2 z=\theta y+(1-\theta)x,\theta=\frac{\delta}{2\|x-y\|_2} z = θ y + ( 1 − θ ) x , θ = 2 ∥ x − y ∥ 2 δ 即可。
- 凸優化一般的表述形式
min f ( x ) , x ∈ C
\min f(x),x\in C
min f ( x ) , x ∈ C
或者
min f ( x ) c i ( x ) ≤ 0 , i = 1 , ⋯ , m h j ( x ) = 0 , j = 1 , ⋯ , k
\min f(x)\\
c_i(x)\le0,i=1,\cdots,m\\
h_j(x)=0,j=1,\cdots,k
min f ( x ) c i ( x ) ≤ 0 , i = 1 , ⋯ , m h j ( x ) = 0 , j = 1 , ⋯ , k
- 拉格朗日乘數法
將一個有n 個變量與k 個約束條件的最優化問題轉換爲一個有n + k個變量的方程組的極值問題,其變量不受任何約束;
(1) 等式約束條件
min f ( x ) s . t . h k ( x ) = 0 k = 1 , 2 , ⋯ , l
\min f(\boldsymbol{x})\\
s.t.\quad h_k(\boldsymbol{x})=0 \quad k=1,2,\cdots,l
min f ( x ) s . t . h k ( x ) = 0 k = 1 , 2 , ⋯ , l
求解步驟:
定義拉格朗日函數:
F ( x , λ ) = f ( x ) + ∑ k = 1 l λ k h k ( x )
F(\boldsymbol{x},\boldsymbol{\lambda})=f(\boldsymbol{x})+\sum\limits_{k=1}^l\lambda_kh_k(\boldsymbol{x})
F ( x , λ ) = f ( x ) + k = 1 ∑ l λ k h k ( x )
解變量的偏導方程:
∂ F ∂ x i = 0 , ⋯ , ∂ F ∂ λ k = 0 , ⋯
\frac{\partial F}{\partial x_i}=0,\cdots,\frac{\partial F}{\partial \lambda _k}=0,\cdots
∂ x i ∂ F = 0 , ⋯ , ∂ λ k ∂ F = 0 , ⋯
或者說是分別對 x \boldsymbol{x} x 和 λ \boldsymbol{\lambda} λ 求梯度,然後解方程組
∇ x f + ∑ k = 1 l λ k ∇ x h k = 0 h k ( x ) = 0
\nabla_xf+\sum\limits_{k=1}^l\lambda_k\nabla_xh_k=0\\
h_k(\boldsymbol{x})=0
∇ x f + k = 1 ∑ l λ k ∇ x h k = 0 h k ( x ) = 0
(2) 帶不等式約束條件
可參考KKT條件。
- 拉格朗日對偶
min f ( x ) g i ( x ) ≤ 0 , i = 1 , ⋯ , m h j ( x ) = 0 , j = 1 , ⋯ , k
\min f(x)\\
g_i(x)\le0,i=1,\cdots,m\\
h_j(x)=0,j=1,\cdots,k
min f ( x ) g i ( x ) ≤ 0 , i = 1 , ⋯ , m h j ( x ) = 0 , j = 1 , ⋯ , k
構建一個廣義 (包括不等式約束) 的拉格朗日函數:
L ( x , α , β ) = f ( x ) + ∑ i = 1 m α i g i ( x ) + ∑ j = 1 k β i h j ( x ) , α i ≥ 0
L(x,\alpha,\beta)=f(x)+\sum\limits_{i=1}^m\alpha_ig_i(x)+\sum\limits_{j=1}^k\beta_ih_j(x),\alpha_i\ge 0
L ( x , α , β ) = f ( x ) + i = 1 ∑ m α i g i ( x ) + j = 1 ∑ k β i h j ( x ) , α i ≥ 0
問題轉化爲:
p ∗ = min x max α , β , α i ≥ 0 L ( x , α , β ) = min x θ p ( x )
p^*=\min_x \max_{\alpha,\beta,\alpha_i\ge 0}L(x,\alpha,\beta)=\min_x\theta_p(x)
p ∗ = x min α , β , α i ≥ 0 max L ( x , α , β ) = x min θ p ( x )
理解可參考:【數學】拉格朗日對偶,從0到完全理解
無論如何,p ∗ p^* p ∗ 都不會小於 max α , β , α i ≥ 0 L ( x , α , β ) \max\limits_{\alpha,\beta,\alpha_i\ge 0}L(x,\alpha,\beta) α , β , α i ≥ 0 max L ( x , α , β ) 。
- KKT 條件
min f ( x ) g i ( x ) ≤ 0 , i = 1 , ⋯ , q h j ( x ) = 0 , j = 1 , ⋯ , p
\min f(x)\\
g_i(x)\le0,i=1,\cdots,q\\
h_j(x)=0,j=1,\cdots,p
min f ( x ) g i ( x ) ≤ 0 , i = 1 , ⋯ , q h j ( x ) = 0 , j = 1 , ⋯ , p
L ( x , λ , μ ) = f ( x ) + ∑ j = 1 p λ j h j ( x ) + ∑ i = 1 q μ i g i ( x )
L(x,\lambda,\mu)=f(x)+\sum\limits_{j=1}^p\lambda_jh_j(x)+\sum\limits_{i=1}^q\mu_ig_i(x)
L ( x , λ , μ ) = f ( x ) + j = 1 ∑ p λ j h j ( x ) + i = 1 ∑ q μ i g i ( x )
KKT 條件:
∇ x L ( x ∗ ) = ∇ f ( x ∗ ) + ∑ j = 1 p λ i ∗ ∇ h j ( x ∗ ) + ∑ i = 1 q μ i ∗ ∇ g i ( x ∗ ) = 0 μ i ∗ ≥ 0 μ i ∗ g i ( x ∗ ) = 0 h j ( x ∗ ) = 0 g i ( x ∗ ) ≤ 0
\nabla_x L(x^*)=\nabla f(x^*) +\sum\limits_{j=1}^p\lambda_i^*\nabla h_j(x^*)+\sum\limits_{i=1}^q\mu_i^*\nabla g_i(x^*)=0\\
\mu_i^*\ge0\\
\mu_i^*g_i(x^*)=0\\
h_j(x^*)=0\\
g_i(x^*)\le0
∇ x L ( x ∗ ) = ∇ f ( x ∗ ) + j = 1 ∑ p λ i ∗ ∇ h j ( x ∗ ) + i = 1 ∑ q μ i ∗ ∇ g i ( x ∗ ) = 0 μ i ∗ ≥ 0 μ i ∗ g i ( x ∗ ) = 0 h j ( x ∗ ) = 0 g i ( x ∗ ) ≤ 0