I. Linear Algebra
1. 基礎概念回顧
- scalar: 標量
- vector: 矢量,an array of numbers.
- matrix: 矩陣, 2-D array of numbers.
- tensor: 張量, 更高維的一組數據集合。
- identity Matricx:單位矩陣
- inverse Matrix:逆矩陣,也稱非奇異函數。當矩陣A的行列式\(|A|≠0\)時,則存在\(A^{-1}\).
2. Span
3. Norm
\(L^p\) norm 定義如右: \(||x||_p=(\sum_i|x_i|^p)^{\frac{1}{p}}\) for \(p∈R,p≥1\).
任何滿足如下條件的函數都可視為norm:
- \(f(x)=0 \, \Rightarrow x=0\)
- \(f(x+y)≤f(x)+f(y)\) (三角不等式)
- \(\forall α ∈R,f(αx)=|α|f(x)\)
1) \(L^2\) Norm
最常用的是二范式,即\(L^2\) norm,也稱為Euclidean norm(歐幾里得范數)。因為在機器學習中常用到求導,二范式求導之后只與輸入數據本身有關,所以比較實用。
2) \(L^1\) Norm
但是二范式在零點附近增長很慢,而且有的機器學習應用需要在零點和非零點之間進行區分,此時二范式顯得力不從心,所以我們可以選擇一范式,即\(L^1\) norm,其表達式為:\(||x||_1=\sum_i|x_i|\).
3) \(L^0\) Norm
0范式表示矢量中非0的元素的個數。其實0范式這個說法是不嚴謹的,因為它不滿足第三個條件,but whatever~
4) \(L^∞\) Norm
無窮大范式,也叫max norm,它表示矢量中所有元素絕對值的最大值,即
5) F norm
F norm全稱是Frobenius Norm,其表達式如下:
4.特殊矩陣和向量
1) Diagonal matrix(對角矩陣)
定義: a matrix \(D\) is diagonal if and only if \(D_{i,j}=0\) for all \(i≠j\).
仔細看定義!!!這里並沒有說必須是squre matrix(方陣),所以對角矩陣不一定是方陣,rectangle matrix也有可能是對角矩陣(只要對角線上不為0,其余部分都為0)。
2) Orthogonal Matrix(正交矩陣)
定義: 若\(A^TA=AA^T=I\),那么n階實矩陣A則為正交矩陣。
注意矩陣A必須為方陣,另外有定義可知 \(A^{-1}=A^T\)
3) Orthonomal Matrix(標准正交矩陣)
定義: 滿足正交矩陣的要求,且為x和y均為unit vector(單位矢量)。
5. Eigendecomposition(特征分解)
很多數學概念其實都可以分解成很小的組成部分,然后通過觀察這些組成進而找出它們可能存在的通用的性質。例如對於一個整數12,我們會試着把它分解成12=2×2×3,由這個表達式我們可以得到一些有用的結論,例如12不能被5整除,任何數乘以12后都能被3整除等等。
很自然地,對於矩陣,我們也想看看他是否也能被拆分呢,所以就引入了特征分解的概念,通過特征分解我們會得到矩陣\(A\)的(一組)eigenvector(特征向量): \(v\) 和 eigenvalue(特征值): \(λ\),它們滿足如下等式:
(特征向量當然也可以在右邊,但是通常更習慣於放在右邊。)
假設矩陣\(A\)有n個線性獨立的特征向量\(\{v^{(1)}, ..., v^{(n)}\}\)以及對應的特征值\(\{ λ_1, ...,λ_n \}\)。記
\(V=[v^{(1)}, ..., v^{(n)}],λ=[λ_1, ...,λ_n ]\),則矩陣A的特征分解如下:
另外實對稱矩陣的特征分解用得比較多,表達式為\(A=Q\Lambda Q^{-1}\),\(Q\)表示由特征向量組成的正交矩陣,\(\Lambda\)表示對角矩陣,注意\(Q\)和\(\Lambda\)的值是一一對應的。
- 當一個矩陣的特征值都為正時,該矩陣則為positive definite(正定矩陣).
- 當一個矩陣的特征值都大於等於0時,該矩陣則為positive semidefinite(半正定矩陣).
- 當一個矩陣的特征值都為負時,該矩陣則為negative definite(負定矩陣).
- 當一個矩陣的特征值都小於等於0時,該矩陣則為negative semidefinite(半負定矩陣).
6. Singular Value Decomposition(奇異值分解)
Singular Value Decomposition (SVD) 可以把一個矩陣分解得到 singular vectors和singular values。SVD可以像特征值分解一樣幫助我們對一個矩陣進行分析,並且SVD適用性更廣。每個實矩陣都能做SVD,但是不一定能做特征值分解。比如說如果一個矩陣不是方陣,那么就不能做特征分解,但是我們可以做SVD。
SVD分解后的矩陣表達式如下:
假設A是一個m×n矩陣,那么U定義為m×m矩陣,D是m×n矩陣,V是n×n矩陣。
除此以外
- 矩陣U和V都是orthogonal matrix,其中矩陣U的列向量是left-singular vectors,矩陣V的列向量是right-singular vectors。矩陣A的left-singular vectors是矩陣\(A^TA\)的特征向量,right-singular vectors是矩陣\(AA^T\)的特征向量。矩陣A的非零奇異值是矩陣\(AA^T\)或者\(A^TA\)的平方根。
- 矩陣D是diagonal matrix,注意不一定是方陣。D對角線上的即為矩陣A的奇異值(singular value)。
講這么多,肯定對SVD還沒有一個直觀的理解,下面一節會介紹SVD的應用。
7. Moore-Penrose Pseudoinverse
我們在求一個矩陣的逆(matrix inverse)的時候,一般都需要規定這個矩陣是方陣。
假設有一個線性方程\(Ax=y\),為了解出這個方程,我們很直觀地希望能夠造出一個left-inverse矩陣B和A相乘,從而求出x,即\(x=By\)。
如果A是一個非方陣的矩陣,當它的row大於column時,很有可能此時無解;而當row小於column時,可能有多解。
Moore-Penrose Pseudoinverse就是為了解決這個問題的,矩陣A的偽逆定義如下:
U,D,V是上節中提到的矩陣A的奇異分解。\(D^+\)是矩陣D的偽逆,它是首先將D的非零元素取倒數得到一個矩陣,然后將這個矩陣轉置之后就得到了\(D^+\)。
當矩陣A的row比column少時,使用偽逆可以得到很多解。但是,\(x=A^+y\)這個解是所有解中有最小Euclidean norm(\(||x||_2\))的。
當矩陣A的row比column多時,可能無解。但是使用偽逆求得的解x ,能使得\(Ax\)盡可能的接近\(y\),也就是說能使得\(||Ax-y||_2\)最小。
8. Trace Operator(跡)
trace運算符是將矩陣對角線上的所有元素求和,即\(Tr(A)=\sum_iA_{i,i}\)
