1. 程式人生 > >深度學習/機器學習入門基礎數學知識整理(一):線性代數基礎,矩陣,範數等

深度學習/機器學習入門基礎數學知識整理(一):線性代數基礎,矩陣,範數等

前面大概有2年時間,利用業餘時間斷斷續續寫了一個機器學習方法系列,和深度學習方法系列,還有一個三十分鐘理解系列(一些趣味知識);新的一年開始了,今年給自己定的學習目標——以補齊基礎理論為重點,研究一些基礎課題;同時逐步繼續寫上述三個系列的文章。

最近越來越多的研究工作聚焦研究多層神經網路的原理,本質,我相信深度學習並不是無法掌控的“鍊金術”,而是真真實實有理論保證的理論體系;

本篇打算摘錄整理一些最最基本的資料知識,包括線性代數,矩陣求導,凸函式等,一方面便於自己平時查用,一方面也給讀者想入門的有一個初步的介紹。

1.線性代數

線性代數作為數學中的一個重要的分支,我感覺是一般人學習機器學習或者深度學習演算法的必備知識,作為博主這樣的CS出身的工科生,學了線性代數、微積分、概率論這些基礎課程,平時也就夠用了,再複雜的一些數學分支涉及的很少。(這一部分摘錄自[1],加上我自己的一些理解)

1.1 標量,向量,矩陣和張量

  • 標量(scalar):一個標量就是一個單獨的數。用斜體表示標量,如 sR.
  • 向量(vector):一個向量是一列數,我們用粗體的小寫名稱表示向量。比如
    x,將向量x 寫成方括號包含的縱柱:

    x=x1x2xn
  • 矩陣(matrix):矩陣是二維陣列,我們通常賦予矩陣粗體大寫變數名稱,比如
    A​ 。如果一個矩陣高度是m​,寬度是n​,那麼說ARm×n 。一個矩陣可以表示如下:

A=[x11x21x12x22]
  • 張量(tensor):某些情況下,我們會討論不止維座標的陣列。如果一組陣列中的元素分佈在若干維座標的規則網路中,就將其稱為張量。用A​ 表示,如張量中座標為(i,j,k)​的元素記作A

    i,j,k

  • 轉置(transpose):矩陣的轉置是以對角線為軸的映象,這條從左上角到右下角的對角線稱為主對角線(main diagonal)。將矩陣A的轉置表示為AT。定義如下: (A)i,j=Aj,i

A=x11x21x31x12x22x32A=[x11x21x21x22x31x32]

1.2 矩陣和向量相乘

  • 矩陣乘法:矩陣運算中最重要的操作之一。兩個矩陣A和B 的矩陣乘積(matrix product)是第三個矩陣C 。矩陣乘法中A 的列必須和 B的行數相同。即如果矩陣 A的形狀是 m×n,矩陣B的形狀是 n×p,那麼矩陣 C的形狀就是 m×p。即

    C=
    A×B
    具體的地,其中的乘法操作定義為 Ci,j=kAi,kBk,j矩陣乘積服從分配律,結合律,但是矩陣乘法沒有交換律,
A(B+C)=AB+ACA(BC)=(AB)CABBA
  • 點積(dot product)兩個相同維數的向量x和y的點積可看作是矩陣乘積 xTy

  • 矩陣乘積的轉置 (向量也是一種特殊的矩陣)

    (AB)=BAxy=(xy)=yx

1.3 單位矩陣和逆矩陣
矩陣A的矩陣逆被記作 A1,被定義為如下形式:

A1A=AA1=InInA=A
線性無關(linearly independent): 如果一組向量中的任意一個向量都不能表示成其他向量的線性組合,那麼這組向量被稱之為線性無關。要想使矩陣可逆,首先必須矩陣是一個方陣(square),即 m=n,其次,所有的列向量都是線性無關的。一個列向量線性相關的方陣被稱為 奇異的(singular)。

1.4 範數
需要衡量一個向量的大小,在機器學習中,我們使用稱為範數(norm)的函式來衡量向量大小,形式上, Lp範數如下[5]:

||x||p=(i|xi|p)1ppR,p1
範數是將向量對映到非負值的函式。直觀上來說,向量 x的範數就是衡量從原點到 x的距離。更嚴格來說,範數滿足下列性質的函式:
f(x)=0x=0