Deep Learning(花書)教材筆記-Math and Machine Learning Basics(線性代數拾遺)
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\)
3) \(L^0\) Norm
0範式表示矢量中非0的元素的個數。其實0範式這個說法是不嚴謹的,因為它不滿足第三個條件,but whatever~
4) \(L^∞\) Norm
無窮大範式,也叫max norm,它表示矢量中所有元素絕對值的最大值,即
\[||x||_∞=max |x_i|\]
5) F norm
F norm全稱是Frobenius Norm,其表達式如下:
\[||A||_F=\sqrt{\sum_{i,j}A_{i,j}^2} \]
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(特征值): \(λ\),它們滿足如下等式:
\[Av=λv\]
(特征向量當然也可以在右邊,但是通常更習慣於放在右邊。)
假設矩陣\(A\)有n個線性獨立的特征向量\(\{v^{(1)}, ..., v^{(n)}\}\)以及對應的特征值\(\{ λ_1, ...,λ_n \}\)。記
\(V=[v^{(1)}, ..., v^{(n)}],λ=[λ_1, ...,λ_n ]\),則矩陣A的特征分解如下:
\[A=Vdiag(λ)V^{-1}\]
另外實對稱矩陣的特征分解用得比較多,表達式為\(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=UDV^T\]
假設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的偽逆定義如下:
\[A^+=lim_{α\searrow{0}}(A^TA+αI)^{-1}A^T\]。
上面的公式實際很少用,一般都是使用SVD的公式,即
\[A^+=VD^+U^T\]
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}\)
Deep Learning(花書)教材筆記-Math and Machine Learning Basics(線性代數拾遺)