1. 程式人生 > >Deep Learning(花書)教材筆記-Math and Machine Learning Basics(線性代數拾遺)

Deep Learning(花書)教材筆記-Math and Machine Learning Basics(線性代數拾遺)

有一個 -a forall align svd分解 滿足 opera mach 最大

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,它表示矢量中所有元素絕對值的最大值,即
\[||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}\)

技術分享圖片



MARSGGBO?原創





2018-12-01



Deep Learning(花書)教材筆記-Math and Machine Learning Basics(線性代數拾遺)