算法工程師的數學基礎|線性代數中的矩陣

【算法工程師的數學基礎】系列將會從線性代數、微積分、數值優化、概率論、信息論五個方面進行介紹,感興趣的歡迎關注【搜索與推薦Wiki】公衆號,獲得最新文章。

《算法工程師的數學基礎》已更新:

線性代數主要包含向量、向量空間(或稱線性空間)以及向量的線性變換和有限維的線性方程組。本篇文章主要介紹線性代數部分中的矩陣知識。


線性映射

線性映射(linear map) 是指從線性空間VV到線性空間WW的一個映射函數:fWf \rightarrow W,並滿足:對於VV中任何兩個向量uuvv以及任何標量cc,有:
f(u+v)=f(u)+f(v)f(cv)=cf(v) f(u+v) = f(u) + f(v) \\ f(cv) = cf(v)
兩個有限維歐式空間的映射函數f:RnRmf: R^n \rightarrow R^m可以表示爲:
y=Ax=Δ[a11x1+a12x2+...+a1nxna21x1+a22x2+...+a2nxn...am1x1+am2x2+...+amnxn] y = Ax \overset{ \Delta }{=} \begin{bmatrix} a_{11} x_1 + a_{12}x_2 + ... + a_{1n}x_n \\ a_{21} x_1 + a_{22}x_2 + ... + a_{2n}x_n \\ . \\ . \\ . \\ a_{m1} x_1 + a_{m2}x_2 + ... + a_{mn}x_n \end{bmatrix}
其中AA定義爲mnm*n的矩陣(matrix),是一個由mmnn列元素排列成的矩形陣列。一個矩陣的第ii行,第jj列上的元素表示爲AijA_{ij}

矩陣操作

如果AABB都是 mnm*n的矩陣,則AABB的加法結果也是 mnm*n的矩陣,其每個元素都是AABB對應位置元素相加。

[A+B]ij=aij+bij [A+B]_{ij} = a_{ij} + b_{ij}

乘積 假設有兩個AABB分別表示兩個線性映射g:RmRkg: R^m \rightarrow R^kf:RnRmf: R^n \rightarrow R^m,則其複合線性映射:
(gf)(x)=g(f(x))=g(Bx)=A(B(x))=(AB)(x) (g \circ f)(x) = g(f(x)) = g(Bx) = A(B(x)) = (AB)(x)
其中ABAB表示矩陣AABB的乘積,定義爲:
[AB]ij=k=1maikbkj [AB]_{ij} = \sum_{k=1}^{m}a_{ik}b_{kj}
兩個矩陣的乘積僅當第一個矩陣的列數和第二個矩陣的行數相等時才能定義。如果AAkmk*mBBmnm*n,這ABA*B的結果是一個knk*n的矩陣。

矩陣的乘法滿足結合律和分配律:

  • 結合律:(AB)C=A(BC)(AB)C = A(BC)
  • 分配律:(A+B)C=AC+BC,C(A+B)=CA+CB(A+B)C = AC+BC, C(A+B)=CA + CB

Hadamard積 AABB的Hadamard積,也稱爲逐點乘積,爲AABB中對應的元素相乘。
[AB]ij=aijbij [A \odot B]_{ij} = a_{ij} b_{ij}
一個標量cc與矩陣AA乘積爲AA的相應位置的元素與cc的乘積:
[cA]ij=caij [cA]_{ij} = ca_{ij}

轉置 mnm*n矩陣AA的轉置(transposition)是一個nmn*m的矩陣,記爲ATA^TATA^T的第ii行第jj列的元素是原矩陣AA的第jj行第ii列的元素
[AT]ij=[A]ji [A^T]_{ij}=[A]_{ji}

向量化 矩陣的向量化是將矩陣表示爲一個列向量。這裏vec是向量化算子。設A=[aij]mnA=[a_{ij}]_{m*n},則:
vec(A)=[a11,a21,...,am1,a12,a22,...,am2,...,a1n,...,amn]T vec(A) = [a_{11}, a_{21},...,a_{m1},a_{12},a_{22},...,a_{m2},...,a_{1n},...,a{mn}]^T

方塊矩陣AA的對角線元素之和稱爲它得跡(trace),記爲tr(A)tr(A)。儘管矩陣得乘法不滿足交換律,但它們得跡相同,即tr(AB)=tr(BA)tr(AB)=tr(BA)

相信讀者看到這裏,肯定會有疑問,這麼簡單的「跡」,有什麼特殊意義的?因爲跡是有所有矩陣特徵值的和,在求矩陣特徵值的時候特別重要。

行列式 方塊矩陣AA的行列式是一個將其映射到標量的函數,記作det(A)det(A)A|A|。行列式可以看做是有向面積或體積的概念在歐氏空間的推廣。在nn維歐式空間中,行列式描述的是一個線性變換對體積所造成的影響。

一個nnn*n的方塊矩陣AA的行列式定義爲:
det(A)=σSnsgn(σ)i=1nai,σ(i) det(A)=\sum_{\sigma \in S_n} sgn(\sigma) \prod_{i=1}^{n} a_{i,\sigma(i)}
其中 SnS_n{1,2,...,n}\{ 1,2,...,n \}的所有排列的集合,σ\sigma是一種一個排列,σ(i)\sigma(i)是元素ii在排列σ\sigma中的位置,sgn(σ)sgn(\sigma)表示排列σ\sigma的符號差,定義爲:
(σ)={10 (\sigma) = \left\{\begin{matrix} 1 \\ 0 \end{matrix}\right.
σ\sigma中的逆序對有偶數個是爲1,當σ\sigma中的逆序對有奇數個是0

其中逆序對的定義爲:在排列σ\sigma中,如果有序數對(i,j)(i,j)滿足1i<jn1 \leq i < j \leq nσ(i)>σ(j)\sigma(i) > \sigma(j),則其爲σ\sigma的一個逆序對。

一個矩陣AA的列秩是AA的線性無關的列向量數量,行秩是AA的線性無關的行向量數量。一個矩陣的列秩和行秩總是相等的,簡稱爲秩(rank)。

一個mnm*n的矩陣的秩最大爲min(m,n)min(m,n)。兩個句子的乘積ABAB的秩rank(AB)min(rank(A),rank(B))rank(AB) \leq min( rank(A), rank(B))

範數 矩陣的範數有很多種形式,其中常用的lpl_p範數定義爲:
Ap=(i=1mj=1naijp)1/p ||A||_p = ( \sum_{i=1}^{m} \sum_{j=1}^{n} |a_{ij}|^p )^{1/p}

矩陣類型

對稱矩陣(symmetric) 指其轉置等於自己的矩陣,即滿足A=ATA=A^T

稀疏矩陣(sparse matrix) 矩陣中分佈有大量的元素 0,即非 0 元素非常少,這類矩陣稱爲稀疏矩陣。如下:
[010002010] \begin{bmatrix} 0 & 1 & 0 \\ 0& 0 & 2 \\ 0& 1 & 0 \end{bmatrix}

上(下)三角矩陣 一個 mmm*m的矩陣的對角線稱爲主對角線,如果除主對角線之外的元素全部爲0,則主對角線下的矩陣稱爲上三角矩陣,主對角線上的矩陣稱爲下三角矩陣

上(下)三角矩陣

對角矩陣(diagonal matrix) 是一個主對角線之外的元素皆爲0的矩陣。對角線上的元素可以爲0或其他值。一個nnn*n的對角矩陣AA滿足:
[A]ij=0  ifij,i,j{1,...,n} [A]_{ij} = 0 \, \, if \, i\neq j, \forall i,j \in \{1,...,n\}
對角矩陣AA也可以記爲diag(a)diag(a)aa爲一個nn維向量,並滿足:
[A]ij=ai [A]_{ij} = a_i
nnn*n的對角矩陣A=diag(a)A=diag(a)nn維向量bb的乘積爲一個nn維向量
Ab=diag(a)b=ab Ab = diag(a)b = a \odot b
其中\odot表示點乘,即(ab)i=aibi(a \odot b)_i = a_i b_i

單位矩陣(identity matrix) 是一種特殊的對角矩陣,其主對角線元素爲1,其餘元素爲0。 nn階單位矩陣InI_n,是一個nnn *n的方塊矩陣,可以記爲In=diag(1,1,1,...)I_n=diag(1,1,1,...)

一個mnm*n的矩陣AA和單位矩陣的乘積等於其本身
AIn=ImA=A AI_n = I_mA = A

逆矩陣 對於一個 nnn*n的方塊矩陣AA,如果存在另一個方塊矩陣BB使得
AB=BA=In AB = BA = I_n
爲單位矩陣,則稱AA是可逆的。矩陣BB稱爲AA的逆矩陣(inverse matrix),記爲A1A^{-1}

一個方陣的行列式等於0當且僅當該方陣不可逆。

正定矩陣(positive-definite matrix) 對於一個nnn*n的對稱矩陣AA,如果對於所有的非零向量xRnx \in R^n,都滿足xTAx>0x^T A_x > 0,則AA爲正定矩陣。如果xTAx0x^T A_x \geq 0,則AA是半正定矩陣。

正交矩陣(orthogonal matrix) 正交矩陣 AA爲一個方塊矩陣,其逆矩陣等於其轉置矩陣。

AT=A1 A^T = A^{-1}
等價於AT=AAT=InA^T=AA^T=I_n

Gram矩陣 向量空間中一組向量v1,v2,...,vnv_1, v_2, ..., v_n的Gram矩陣,GG是內積的對稱矩陣,其元素GijG_{ij}viTvjv_i^T v_j

特徵值與特徵矢量

如果一個標量 λ\lambda 和一個非零向量vv滿足:
Av=λv Av = \lambda v
λ\lambdavv分別稱爲矩陣AA的特徵值(eigenvalue)和特徵向量(eigenvector)

矩陣分解

一個矩陣通常可以用一些比較簡單的矩陣來表示,稱爲矩陣分解(matrix decomposition,matrix factorization)

奇異值分解 一個mnm*n的矩陣AA的奇異值分解(Singualr Value Decomposition,SVD)定義爲:
A=UDVT A = UDV^T
其中U,VU,V 分別爲mm,nnm*m, n*n的正交矩陣,DDmnm*n的對角矩陣,其對角線上的元素稱爲奇異值(singular value)

特徵分解 一個nnn*n的方塊矩陣AA的特徵分解(Eigendecomposition)定義爲:
A=QBQ1 A= QBQ^{-1}
其中QQnnn*n的方塊矩陣,其每一列都爲AA的特徵向量,BB爲對角陣,其每一個對角元素AA的特徵值。

如果AA爲對稱矩陣,則AA可以被分解爲:
A=QBQT A = QBQ^T
其中 QQ爲正交陣。

好了,線性代數中的矩陣介紹和相關概念已經介紹完畢了,歡迎轉發分享,讓更多的人看到!


掃一掃 關注微信公衆號!號主 專注於搜索和推薦系統,嘗試使用算法去更好的服務於用戶,包括但不侷限於機器學習,深度學習,強化學習,自然語言理解,知識圖譜,還不定時分享技術,資料,思考等文章!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章