深度學習中的基本資料結構,基本上都是用向量或矩陣表示的,因此:
深度學習的基礎學科之一:就是線性代數。
深度學習中的線性代數知識主要包括以下部分:
1、標量、向量、矩陣和張量:
這4個變數很好理解: 分別表示 乙個數、 一維空間(一條線)、 二維(乙個平面)、多於二維(立體或超立體等);
2、矩陣的乘法和內積:
這個在深度學習的基礎, 必須了解矩陣的乘法和矩陣的內積。
公式就不列舉了, 很簡單。
注意一點, 內積也叫點積, 對應元素相乘求和。 這個在 svm(支援向量機)有特殊重要性, 還牽扯到核函式, 感興趣的可自行科普, 或關注我的另一篇svm的文章。
3、轉置、逆矩陣、線性相關等了解即可;
4、範數:
這個在深度學習中 至關重要:
範數的根本作用: 衡量乙個向量的大小;
範數的幾種不同表示:
最常用的是l2範數,即: 歐幾里得範數, 表示從原點出發到向量x確定點的歐幾里得距離, 就是你最熟悉的各元素 平方和 取根號;
l1範數: 向量中每個點的絕對值之和。它有乙個很重要的性質: 在各個位置(包括零點)的斜率相同。
l0範數: 向量中非零元素的個數;
還有個不常用的無窮範數。
注重注意一點:
範數就是表示向量的大小, 深度學習中最常用的就是l2範數 的平方, 為什麼要用l2範數的平方(個元素的平方和),而不用l2範數呢? 個人感覺原因有以下兩點
1) l2範數對某個點xi的導數,不止與xi 有關,而且還有整個向量有關; 而l2範數的平方 對xi的導數, 則只與xi本身有關;
2) l2範數的平方 可以方便的通過點積xt ×x (x的轉置與x的內積)來表示;
因此l2範數廣泛用於,比如 正則化(防止過擬合)等;
但l2範數的平方有乙個缺點: 那就是在0附近, 他的增速非常緩慢(小數的平方 變得更小了), 但在機器學子中, 區分非零元素和零元素有很重要。 因此才有了l1範數的發揮餘地, l1範數 通常用於 稀疏 演算法。
5、 特徵分解:
類似與乙個數 24=2*3*4 , 將乙個24分解維三個數的乘積。
乙個矩陣可以分解成三個矩陣的乘積:
1) 特徵值分解:
a=q×b×qt
q是有a的特徵向量組成的正交矩陣; b是a的特徵值組成的對角矩陣; qt表示q的轉置(單位正交矩陣 的轉置和 逆 是相同的)
具體細節可自行取查閱,
含義就是: 乙個矩陣a 可以分解成有特徵值和特徵向量組成的三個矩陣的乘積。
但這有乙個條件, 那就是a是實對稱矩陣。 因此這也大大限制了它的應用。
2)奇異值分解:
a=u×d×vt
u和v向量分別是 被稱為 左奇異向量和右奇異向量, d為a的奇異值, 它其實是at×a的特徵值的平方根。
具體細節自行科普;
對於任何矩陣,都可以奇異值分解, 它在pca演算法 降維中廣泛應用。
目前matlab或者opencv中都有 直接的函式呼叫, 可以講乙個矩陣 奇異值分解。
6、 跡運算 了解即可
跡: 對角元素之和。
個人感覺比較重要的三部分是: 矩陣的運算, 範數和 矩陣分解。
數學基礎 線性代數
1 矩陣正定性的判斷,hessian 矩陣正定性在梯度下降中的應用 若矩陣所有特徵值均不小於0,則判定為半正定,若矩陣所有特徵值均大於0,則判定為正定,在判斷優化演算法的可行性時hessian 矩陣的正定性起了很大的作用,若hessian 正定,則函式的二階偏導恆大於0,函式的變化率處於遞增狀態,在...
數學 線性代數
前言 這篇部落格是對 馬同學 線性代數 以問答形式的總結。除此之外,一些好的參考資料。axax ax的值域是由a r m na in r a rm n 的列向量張成的,若a aa的列向量滿秩 即等於n nn 則張成空間的秩等於x xx定義域空間的秩 因為由矩陣乘法,x本身處在秩為n nn的空間中 則...
數學 線性代數
0x01 行列式的計算 某行 列 加上或減去另一行 列 的幾倍,行列式不變。行 列 乘k,等於k乘此行列式。互換兩行 列 行列式變號。0x02 計算的題型和套路 只有兩個數字,對角線是乙個 套公式 x a n 1 x n 1 a x a n 1 x n 1 a x0,x1,x 2 xn 1 xn x...