一、一些線性代數概念1. 餘子式
行列式的階越低越容易計算,於是很自然地提出,能否把高階行列式轉換為低階行列式來計算,為此,引入了餘子式和代數餘子式的概念。在 n 階行列式中,把所在的第i行與第 j 列劃去後,所留下來的 n − 1 階行列式叫元的餘子式。數學表示上計作
1.1.1 行列式餘子式餘子式定義
行列式等於它任意一行(列)的各元素與其對應的代數式餘子式乘積之和。
1.1.2 矩陣餘子式設 A 為一個 m×n 的矩陣,k為一個介於1和 m 之間的整數,並且 m ≤ n。 A的一個 k階子式是在A中選取 k 行 k列之後所產生的 k 個交點組成的方塊矩陣的行列式。
A的一個 k階餘子式是 A去掉了m−k行與 n−k列之後得到的 k×k矩陣的行列式 。由於一共有k種方法來選擇該保留的行,有k種方法來選擇該保留的列,因此A的k階餘子式一共有
個。
如果 m = n ,那麼 A 關於一個 k階子式的餘子式,是 A去掉了這個 k階子式所在的行與列之後得到的 (n-k)×(n-k)矩陣的行列式,簡稱為 A的 k 階餘子式。
2. 秩秩是線性代數術語,線上性代數中,一個矩陣A的列秩是 A的線性無關的縱列的極大數目。類似地,行秩是 A的線性無關的橫行的極大數目。方陣的列秩和行秩總是相等的,因此它們可以簡單地稱作矩陣 A的秩。通常表示為 rk(A) 或 rank A。
二、線性組合 (linear combination)s變數是對變數x的加權線性”混合”。因此,將s定義為變數的線性組合。可以將線性組合的概念推廣到向量中。定義每個
是一個向量,因此,它們的線性組合s也是一個向量。當然.每個向量必須有相同數量的元素。請注意,s的每個分量都是一個由被組合向量的相對應元素構成的線性組合。
1. 標量的線性組合形式上,一組向量的線性組合,是指每個向量乘以對應標量係數之後的和,即:
定義標量為2,4,1,5,權重為0.1,0.4,0.25,0.25。求其線性組合s。解:線性組合
2. 向量的線性組合3. 生成子空間一組向量的生成子空間(span)是原始向量線性組合後所能抵達的點的集合。確定 A x = b 是否有解,相當於確定向量b 是否在 A 列向量的生成子空間中。這個特殊的生成子空間被稱為 A 的列空間 (column space)或者 A的值域(range)。
4. 線性相關線上性代數里,向量空間的一組元素中,若沒有向量可用有限個其他向量的線性組合所表示,則稱為線性無關或線性獨立 (linearly independent),反之稱為線性相關(linearly dependent)。例如在三維歐幾里得空間R的三個向量(1, 0, 0),(0, 1, 0)和(0, 0, 1)線性無關;但(2, −1, 1),(1, 0, 1)和(3, −1, 2)線性相關,因為第三個是前兩個的和。
5. 方陣(square)m=n的矩陣方陣的左逆和右逆是相等的。
6. 奇異的方陣(singular)奇異矩陣是線性代數的概念,就是該矩陣的秩不是滿秩。首先,看這個矩陣是不是方陣(即行數和列數相等的矩陣。若行數和列數不相等,那就談不上奇異矩陣和非奇異矩陣)。然後,再看此矩陣的行列式|A|是否等於0,若等於0,稱矩陣A為奇異矩陣;若不等於0,稱矩陣A為非奇異矩陣。 同時,由|A|≠0可知矩陣A可逆,這樣可以得出另外一個重要結論:
可逆矩陣就是非奇異矩陣非奇異矩陣也是可逆矩陣如果A為奇異矩陣,則 A X = 0 AX=0 AX=0有無窮解, A X = b AX=b AX=b有無窮解或者無解。如果A為非奇異矩陣,則 A X = 0 AX=0 AX=0有且只有唯一零解, A X = b AX=b AX=b有唯一解。三、範數有時我們需要衡量一個向量的大小。在機器學習中,我們經常使用稱為**範數(norm)**的函式來衡量向量大小。形式上, L p L^p Lp範數定義為:
其中 p ∈ R p ≥ 1 。範數(包括 L^p 範數) ,是將向量對映到非負值的函式。直觀上來說,向量x的範數衡量從原點到點x的距離。更嚴格地說,範數是滿足下列性質的任意函式:
即要滿足:
非負性齊次性三角不等式當 p=2時, L^2 範數稱為歐幾里得範數( Euclidean norm)。它表示從原點出發到向量x確定的點的歐幾里得距離。 L^2 範數在機器學習中出現得十分頻繁,經常簡化表示為 ||x||,略去了下標2.平方 L^2 範數也經常用來衡量向量的大小,可以簡單地透過點積 x^Tx 計算。
最大範數表示向量中具有最大幅值的元素的絕對值。
Python numpy計算範數
import numpy as npa=np.array([[complex(1,-1),3],[2,complex(1,1)]]) print(a)print("矩陣2的範數")print(np.linalg.norm(a,ord=2) ) #計算矩陣2的範數print("矩陣1的範數")print(np.linalg.norm(a,ord=1) ) #計算矩陣1的範數print("最大範數")print(np.linalg.norm(a,ord=np.inf) )
四、特殊的矩陣和向量1. 對角矩陣(diagonal matrix)只在主對角線上含有非零元素,其它位置都是0。對角線上元素全為1的對角矩陣稱為單位矩陣。
2. 對稱矩陣(symmetric)轉置和自己相等的矩陣,即
3. 單位向量(unit vector)具有**單位範數(unit norm)的向量,即:
如果 X^Ty=0 ,那麼向量 x 和向量 y 互相正交。如果兩個向量都有非零範數,那麼這兩個向量之間的夾角是
90度。在R^n 中 , 至 多 有n個範數非零向量互相正交。如果這些向量不但互相正交,則且範數都為1,那麼我們稱它們是標準正交(orthonormal)。
4. 正交矩陣(orthogonal matrix)指行向量和列向量是分別標準正交的方陣,即:
這意味著:
五、特徵分解(eigendercomposition)特徵分解是使用最廣的矩陣分解之一,即我們將矩陣分解成一組特徵向量和特徵值。方陣A的特徵向量(eigenvector)是指與A相乘後相當於對該向量進行縮放的非零向量 v v v:
其中 λ \lambda λ 稱為這個特徵向量對應的特徵值(eigenvalue)。(類似地,我們也可以定義左特徵向量(left eigenvector):
但是通常我們更關注右特徵向量(right eigenvector))。如果 v 是 A 的特徵向量,那麼任何縮放後的向量
也是 A的特徵向量。此外,sv和v有相同的特徵值。基於這個原因,通常我們只考慮單位特徵向量。
假設矩陣 A 有n個線性無關的特徵向量
,對應著特徵值
。我們將特徵向量連線成一個矩陣,使得每一列是一個特徵向量:
。類似地,我們也可以將特徵值連線成一個向量
。因此 A的特徵分解(eigendecomposition)可以記作:
我們常常希望將矩陣分解(decompose)成特徵值和特徵向量。這樣可以幫助我們分析矩陣的特定性質,就像質因數分解有助於我們理解整數。不是每一個矩陣都可以分解成特徵值和特徵向量。在某些情況下,特徵分解存在,但是會涉及複數而非實數。深度學習中通常只需要分解一類有簡單分解的矩陣。具體來講,每個實對稱矩陣都可以分解成實特徵向量和實特徵值:
其中Q是A的特徵向量組成的正交矩陣, ∧是對角矩陣。特徵值
對應的特徵向量是矩陣Q的第i列,記作
。因為Q是正交矩陣,我們可以將A看作沿方向 v^{(i)}延展 λ_i倍的空間。雖然任意一個實對稱矩陣A都有特徵分解,但是特徵分解可能並不唯一。如果兩個或多個特徵向量擁有相同的特徵值,那麼在由這些特徵向量產生的生成子空間中,任意一組正交向量都是該特徵值對應的特徵向量。因此,我們可以等價地從這些特徵向量中構成Q作為替代。按照慣例,我們通常按降序排列 ∧的元素,在該約定下,特徵分解唯一,當且僅當所有的特徵值都是唯一的。
矩陣的特徵分解給了我們很多關於矩陣的有用資訊。矩陣是奇異的,當且僅當含有零特徵值。實對稱的特徵分解也可以用於最佳化二次方程
,其中限制||x||2=1。當x等於A的某個特徵向量時,f將返回對應的特徵值。在限制條件下,函式f的最大值是最大特徵值,最小值是最小特徵值。所有特徵值是正數的矩陣稱為正定(positive definite),所有特徵值都是非負數的矩陣稱為半正定(positive semidefiite)。同樣地,所有特徵值都是負數的矩陣稱為負定(negative definite);所有特徵值都是非正數的矩陣稱為半負定(pegative semidefinite)。半正定矩陣受到關注是因為它們保證
。此外,正定矩陣還保證
。
六、奇異值分解奇異值分解(Singular Value Decomposition)是線性代數中一種重要的矩陣分解,奇異值分解則是特徵分解在任意矩陣上的推廣。在訊號處理、統計學等領域有重要應用。奇異值分解在某些方面與對稱矩陣或Hermite矩陣基於特徵向量的對角化類似。然而這兩種矩陣分解儘管有其相關性,但還是有明顯的不同。譜分析的基礎是對稱陣特徵向量的分解,而奇異值分解則是譜分析理論在任意矩陣上的推廣。
七、Moore-Penrose 偽逆對於非方陣矩陣而言,其逆矩陣沒有定義。假設在下面的問題中。我們希望透過矩陣A的左逆B來求解線性方程:
等式兩邊左乘左逆B後,我們得到:
取決於問題的形式,我們可能無法設計一個唯一的對映A對映到B。
如果矩陣A的行數大於列數,那麼上述方程可能沒有解。如果矩陣A的行數小於列數,那麼上述矩陣可能有多個解。
Moore-Penrose偽逆(Moore-Penrose pseudoinverse)使我們在這類問題上取得了一定進展。矩陣A的偽逆定義為:
計算偽逆的實際演算法沒有基於這個定義,而是使用下面的公式:
其中,矩陣 U 、 D 和 V是矩陣A奇異值分解後得到的矩陣。對角矩陣D的偽逆 D ^+是其非零元素取倒數之後再轉置得到的。當矩陣A的列數多於行數時,使用偽逆求解線性方程組是眾多可能解法中的一種。特別地,
是方程所有可行解中歐幾里得範數
最小的一個。當矩陣A的函式多於列數時,可能沒有解。在這種情況下,透過偽逆得到的x使得Ax和y的歐幾里得距離
最小。
八、跡運算矩陣(方陣)跡運算返回的是矩陣對角元素的和
跡運算提供了另一種描述矩陣Frobenius範數的方式:
跡運算在轉置運算下是不變的:
標量在跡運算等於自身:
九、行列式行列式,記作
,是一個將方陣A對映到實數的函式。行列式等於矩陣特徵值的乘積。行列式的絕對值可以用來衡量矩陣參與矩陣乘法後空間擴大或者縮小了多少。如果行列式是0,那麼空間至少沿某一維完全收縮了,使其失去了所有的體積;如果行列式是1,那麼這個轉換保持空間體積不變。
文章參考
百度百科《Deep Learning 深度學習》 人民郵電出版社https://blog.csdn.net/weixin_36670529/article/details/100597077