【算法工程師的數學基礎】系列將會從線性代數、微積分、數值優化、概率論、信息論五個方面進行介紹,感興趣的歡迎關注【搜索與推薦Wiki】公衆號,獲得最新文章。
《算法工程師的數學基礎》已更新:
線性代數主要包含向量、向量空間(或稱線性空間)以及向量的線性變換和有限維的線性方程組。本篇文章主要介紹線性代數部分中的矩陣知識。
線性映射
線性映射(linear map) 是指從線性空間V到線性空間W的一個映射函數:f→W,並滿足:對於V中任何兩個向量u和v以及任何標量c,有:
f(u+v)=f(u)+f(v)f(cv)=cf(v)
兩個有限維歐式空間的映射函數f:Rn→Rm可以表示爲:
y=Ax=Δ⎣⎢⎢⎢⎢⎢⎢⎡a11x1+a12x2+...+a1nxna21x1+a22x2+...+a2nxn...am1x1+am2x2+...+amnxn⎦⎥⎥⎥⎥⎥⎥⎤
其中A定義爲m∗n的矩陣(matrix),是一個由m行n列元素排列成的矩形陣列。一個矩陣的第i行,第j列上的元素表示爲Aij。
矩陣操作
加 如果A和B都是 m∗n的矩陣,則A和B的加法結果也是 m∗n的矩陣,其每個元素都是A和B對應位置元素相加。
[A+B]ij=aij+bij
乘積 假設有兩個A和B分別表示兩個線性映射g:Rm→Rk和f:Rn→Rm,則其複合線性映射:
(g∘f)(x)=g(f(x))=g(Bx)=A(B(x))=(AB)(x)
其中AB表示矩陣A和B的乘積,定義爲:
[AB]ij=k=1∑maikbkj
兩個矩陣的乘積僅當第一個矩陣的列數和第二個矩陣的行數相等時才能定義。如果A爲k∗m,B爲m∗n,這A∗B的結果是一個k∗n的矩陣。
矩陣的乘法滿足結合律和分配律:
- 結合律:(AB)C=A(BC)
- 分配律:(A+B)C=AC+BC,C(A+B)=CA+CB
Hadamard積 A和B的Hadamard積,也稱爲逐點乘積,爲A和B中對應的元素相乘。
[A⊙B]ij=aijbij
一個標量c與矩陣A乘積爲A的相應位置的元素與c的乘積:
[cA]ij=caij
轉置 m∗n矩陣A的轉置(transposition)是一個n∗m的矩陣,記爲AT,AT的第i行第j列的元素是原矩陣A的第j行第i列的元素
[AT]ij=[A]ji
向量化 矩陣的向量化是將矩陣表示爲一個列向量。這裏vec是向量化算子。設A=[aij]m∗n,則:
vec(A)=[a11,a21,...,am1,a12,a22,...,am2,...,a1n,...,amn]T
跡 方塊矩陣A的對角線元素之和稱爲它得跡(trace),記爲tr(A)。儘管矩陣得乘法不滿足交換律,但它們得跡相同,即tr(AB)=tr(BA)
相信讀者看到這裏,肯定會有疑問,這麼簡單的「跡」,有什麼特殊意義的?因爲跡是有所有矩陣特徵值的和,在求矩陣特徵值的時候特別重要。
行列式 方塊矩陣A的行列式是一個將其映射到標量的函數,記作det(A)或∣A∣。行列式可以看做是有向面積或體積的概念在歐氏空間的推廣。在n維歐式空間中,行列式描述的是一個線性變換對體積所造成的影響。
一個n∗n的方塊矩陣A的行列式定義爲:
det(A)=σ∈Sn∑sgn(σ)i=1∏nai,σ(i)
其中 Sn 是 {1,2,...,n}的所有排列的集合,σ是一種一個排列,σ(i)是元素i在排列σ中的位置,sgn(σ)表示排列σ的符號差,定義爲:
(σ)={10
當σ中的逆序對有偶數個是爲1,當σ中的逆序對有奇數個是0
其中逆序對的定義爲:在排列σ中,如果有序數對(i,j)滿足1≤i<j≤n但σ(i)>σ(j),則其爲σ的一個逆序對。
秩 一個矩陣A的列秩是A的線性無關的列向量數量,行秩是A的線性無關的行向量數量。一個矩陣的列秩和行秩總是相等的,簡稱爲秩(rank)。
一個m∗n的矩陣的秩最大爲min(m,n)。兩個句子的乘積AB的秩rank(AB)≤min(rank(A),rank(B))。
範數 矩陣的範數有很多種形式,其中常用的lp範數定義爲:
∣∣A∣∣p=(i=1∑mj=1∑n∣aij∣p)1/p
矩陣類型
對稱矩陣(symmetric) 指其轉置等於自己的矩陣,即滿足A=AT。
稀疏矩陣(sparse matrix) 矩陣中分佈有大量的元素 0,即非 0 元素非常少,這類矩陣稱爲稀疏矩陣。如下:
⎣⎡000101020⎦⎤
上(下)三角矩陣 一個 m∗m的矩陣的對角線稱爲主對角線,如果除主對角線之外的元素全部爲0,則主對角線下的矩陣稱爲上三角矩陣,主對角線上的矩陣稱爲下三角矩陣
對角矩陣(diagonal matrix) 是一個主對角線之外的元素皆爲0的矩陣。對角線上的元素可以爲0或其他值。一個n∗n的對角矩陣A滿足:
[A]ij=0ifi=j,∀i,j∈{1,...,n}
對角矩陣A也可以記爲diag(a),a爲一個n維向量,並滿足:
[A]ij=ai
n∗n的對角矩陣A=diag(a)和n維向量b的乘積爲一個n維向量
Ab=diag(a)b=a⊙b
其中⊙表示點乘,即(a⊙b)i=aibi
單位矩陣(identity matrix) 是一種特殊的對角矩陣,其主對角線元素爲1,其餘元素爲0。 n階單位矩陣In,是一個n∗n的方塊矩陣,可以記爲In=diag(1,1,1,...)
一個m∗n的矩陣A和單位矩陣的乘積等於其本身
AIn=ImA=A
逆矩陣 對於一個 n∗n的方塊矩陣A,如果存在另一個方塊矩陣B使得
AB=BA=In
爲單位矩陣,則稱A是可逆的。矩陣B稱爲A的逆矩陣(inverse matrix),記爲A−1
一個方陣的行列式等於0當且僅當該方陣不可逆。
正定矩陣(positive-definite matrix) 對於一個n∗n的對稱矩陣A,如果對於所有的非零向量x∈Rn,都滿足xTAx>0,則A爲正定矩陣。如果xTAx≥0,則A是半正定矩陣。
正交矩陣(orthogonal matrix) 正交矩陣 A爲一個方塊矩陣,其逆矩陣等於其轉置矩陣。
AT=A−1
等價於AT=AAT=In
Gram矩陣 向量空間中一組向量v1,v2,...,vn的Gram矩陣,G是內積的對稱矩陣,其元素Gij爲viTvj
特徵值與特徵矢量
如果一個標量 λ 和一個非零向量v滿足:
Av=λv
則 λ和v分別稱爲矩陣A的特徵值(eigenvalue)和特徵向量(eigenvector)
矩陣分解
一個矩陣通常可以用一些比較簡單的矩陣來表示,稱爲矩陣分解(matrix decomposition,matrix factorization)
奇異值分解 一個m∗n的矩陣A的奇異值分解(Singualr Value Decomposition,SVD)定義爲:
A=UDVT
其中U,V 分別爲m∗m,n∗n的正交矩陣,D爲m∗n的對角矩陣,其對角線上的元素稱爲奇異值(singular value)
特徵分解 一個n∗n的方塊矩陣A的特徵分解(Eigendecomposition)定義爲:
A=QBQ−1
其中Q爲n∗n的方塊矩陣,其每一列都爲A的特徵向量,B爲對角陣,其每一個對角元素A的特徵值。
如果A爲對稱矩陣,則A可以被分解爲:
A=QBQT
其中 Q爲正交陣。
好了,線性代數中的矩陣介紹和相關概念已經介紹完畢了,歡迎轉發分享,讓更多的人看到!
掃一掃 關注微信公衆號!號主 專注於搜索和推薦系統,嘗試使用算法去更好的服務於用戶,包括但不侷限於機器學習,深度學習,強化學習,自然語言理解,知識圖譜,還不定時分享技術,資料,思考等文章!