1. 程式人生 > >Deep Learning(Ian Goodfellow) — Chapter2 Linear Algebra

Deep Learning(Ian Goodfellow) — Chapter2 Linear Algebra

  線性代數是機器學習的數學基礎之一,這裡總結一下深度學習花書線性代數一章中機器學習主要用到的知識,並不囊括所有線性代數知識。

2.1 基礎概念

  • Scalars: 一個數;
  • Vctors: 一列數;
  • Matrices: 二位陣列的數,每個元素由兩個下標確定;
  • Tensors: 多維陣列的數。

2.2  矩陣計算

轉置(transpose)(AT)i,j=Aj,i

矩陣乘法C=AB

元素乘法(element product; Hardamard product)

B">AB

點乘(dot product): 向量xy的點乘: xTy

單位矩陣(identic matrix)In, 斜對角的元素值是1,其他地方都是0

逆矩陣(inverse matrix):

    

2.3  線性相關和生成子空間

線性組合(linear combination)

  • 將矩陣A看作是不同的列向量的組合[d1,d2,...,dn],每個列向量代表一個方向,x可以代表在每個方向上移動的距離,那麼Ax=b可以理解成原點如何在AA指定的各個方向上移動,最後到達
b">b點。
  • Ax即為線性組合,組合的物件是各個列向量,方式是x的元素。
  • 生成空間(span):對所有的x,生成的點Ax的集合,即為A的生成空間。如果一組向量中的任意一個向量都不能表示成其他向量的線性組合,那麼這組向量稱為線性無關(linearly independent)。如果某個向量是一組向量中某些向量的線性組合,那麼我們將這個向量加入這組向量後不會增加這組向量的生成子空間。這意味著,如果一個矩陣的列空間涵蓋整個Rm ,那麼該矩陣必須包含至少一組m 個線性無關的向量。

    2.4  範數

    範數(Norm)

    2.5  矩陣和向量

    對角陣(diagnal matrix):除了對角線上的元素不為0,其他元素都為0。可以表示為diag(v)

    對稱陣(symmetric matrix)A=AT

    單位向量(unit vector)

    正交(orthogonal)

    2.6  特徵分解

    特徵分解

      我們可以想象矩陣A實際上是將空間在其本徵向量的方向上各自拉伸了對應的本徵值的尺度。

    2.7  奇異值分解(singular value decomposition)

      SVD全稱是Single Value Decomposition奇異值分解。和特徵分解類似,它也是將矩陣分解為更基本的組合乘積,而且SVD更具有普適性,對於矩陣本身的要求很少,基本上所有實數矩陣都可以做SVD分解,而特徵分解對於非對稱矩陣是無能為力的。

      

      這些矩陣中的每一個經定義後都擁有特殊的結構。矩陣U 和V 都定義為正交矩陣,而矩陣D 定義為對角矩陣。注意,矩陣D 不一定是方陣。對角矩陣D 對角線上的元素被稱為矩陣A 的奇異值(singular value)。矩陣U 的列向量被稱為左奇異向量(left singular vector),矩陣V 的列向量被稱右奇異向量(right singular vector)。事實上,我們可以用與A 相關的特徵分解去解釋A 的奇異值分解。A 的左奇異向量(left singular vector)是AA⊤ 的特徵向量。A 的右奇異向量(right singular vector)是A⊤ A 的特徵向量。A 的非零奇異值是A⊤ A 特徵值的平方根,同時也是AA⊤ 特徵值的平方根。

    2.8   跡運算

    行列式(Determinant)

    • det(A),是一個將一個matrix對映到一個實數的function。
    • 行列式的值等於矩陣的所有特徵值的乘積。
    • 行列式,記作det(A),是一個將方陣A 對映到實數的函式。行列式等於矩陣特徵值的乘積。行列式的絕對值可以用來衡量矩陣參與矩陣乘法後空間擴大或者縮小了多少。如果行列式是0,那麼空間至少沿著某一維完全收縮了,使其失去了所有的體積。如果行列式是1,那麼這個轉換保持空間體積不變。

      本章還有一個主成分析(PCA)的例子,準備之後講經典機器學習無監督演算法的時候再一併總結,放到第五章比較合適。

     

    參考文獻:

    https://zhuanlan.zhihu.com/p/38431213

    http://www.deeplearningbook.org/

    https://applenob.github.io/deep_learning_1.html