深度學習系列筆記(二)
目錄 - 深度學習系列筆記(二)
- 線性代數複習
- 向量索引
- 向量補集中的索引
- 張量(tensor)
- 廣播(broadcasting)
- 矩陣元素對應乘積(element-wise product)
- 範數(norm)
- 對角矩陣(diagonal matrix)
- 特征分解(eigendecomposition)
- 奇異值分解(singular value decomposition, SVD)
- Moore-Penrose 僞逆(Moore-Penrose pseudoinverse)
- 迹運算
- 行列式
- 線性代數複習
- 向量索引
- 向量補集中的索引
- 張量(tensor)
- 廣播(broadcasting)
- 矩陣元素對應乘積(element-wise product)
- 範數(norm)
- 對角矩陣(diagonal matrix)
- 特征分解(eigendecomposition)
- 奇異值分解(singular value decomposition, SVD)
- Moore-Penrose 僞逆(Moore-Penrose pseudoinverse)
- 迹運算
- 行列式
線性代數複習
向量索引
我們定義一個包含向量中元素索引的集合,然後将集合寫在腳标處,表示索引向量中的元素。比如,指定 x_1、x_3、x_6 ,我們定義集合S={1,3,6} ,然後寫作 x_S 。
向量補集中的索引
我們用符号 - 表示集合的補集中的索引。比如,x_{-1}表示 x 中除 x_1 外的所有元素,x_{-S} 表示 x 中除 x_1、x_3、x_6 外的所有元素構成的向量。
張量(tensor)
一個數組中的元素分布在若幹維坐标的規則網格中。
廣播(broadcasting)
在深度學習中,我們允許矩陣和向量相加,産生另一個矩陣:C=A+b ,其中 C_{i,j}=A_{i,j}+b_j 。也就是說,向量 b 和矩陣 A 的每一行相加。這種簡寫方法使我們無需在加法操作前定義一個将向量 b 複制到每一行而生成的矩陣,這種隐式地複制向量 b 到很多位置的方式成為廣播。
矩陣元素對應乘積(element-wise product)
兩個矩陣中對應元素的乘積,也叫 Hadamard乘積(Hadamard product),記為 A ⊙B 。 保持 n 維向量不變的機關矩陣記作 I_n 。
範數(norm)
範數形式上的定義如下:
\begin{Vmatrix} x \end{Vmatrix}_p = ( \sum\limits_i \begin{vmatrix} x_i \end{vmatrix}_p)^\tfrac{1}{p}
其中 p ∈ R,p≥1 。範數(包括 L^p 範數)是将向量映射到非負值的函數。直覺上來說,向量 x的範數衡量從原點到點 x的距離。更嚴格地說,範數是滿足下列性質的任意函數:
- f(x)=0 ⇒ x=0
- f(x+y)\leq;f(x) + f(y) (三角不等式(triangle inequality))
- ∀ \alpha ∈ R ,f(\alpha x)=|\alpha|f(x)
當 p=2 時, L^2 範數稱為歐幾裡得範數(Euclidean norm)。它表示從原點出發到向量 x 确定點的歐幾裡得距離。可簡化表示為 \begin{Vmatrix} x \end{Vmatrix} ,平方 L^2 範數可簡單地通過點積 x^Tx 計算。
平方 L^2 範數對 x 中每個元素的導數隻取決于對應的元素, 而 L^2 範數對每個元素的導數和整個向量相關。
平方 L^2 範數在原點附近增長得十分緩慢。
在某些機器學習的應用中,區分恰好是零的元素和非零但值很小的元素是很重要的。在這些情況下,我們轉而使用在各個位置斜率相同,同時保持簡單的數學形式的函數:L^1 範數。 L^1 範數可簡化如下:
\begin{Vmatrix} x \end{Vmatrix} _1 = \sum\limits_i |x_i|
當機器學習問題中零和非零元素之間的差異非常重要時,通常會使用 L^1 範數。每當 x 中某個元素從 0 增加 \epsilon ,對應的 L^1 範數也會增加 \epsilon 。
最大範數(max norm):表示向量中具有最大幅值的元素的絕對值:
\begin{Vmatrix} x \end{Vmatrix}_\infty = \max_i\limits |x|_i
使用Frobenius範數衡量矩陣的大小
\begin{Vmatrix} A \end{Vmatrix}F = \sqrt{\sum\limits{i,j}A_{i,j}^2}
其類似于向量的L^2範數。
兩個向量的點積可以用範數來表示: x^Ty=\begin{Vmatrix} x\end{Vmatrix}_2\begin{Vmatrix} y\end{Vmatrix}_2cos\theta ,其中 \theta 表示 x 和 y 之間的夾角。
對角矩陣(diagonal matrix)
我們用 diag(v) 表示對角元素由向量 v 中元素給定的一個對角方陣。
diag(v)x=v\odot x
假設對角方陣的逆矩陣存在,當且僅當對角元素都是非零值,在這種情況下,diag(v)^{-1}= ([1/v_1,...,...,1/v_n]^T))。
并非所有的對角矩陣都是方陣,長方形的矩陣也有可能是對角矩陣。
對于一個長方形對角矩陣 D 而言,乘法 Dx 會涉及 x 中每個元素的縮放,如果 D 是瘦長型矩陣,那麼在縮放後的末尾添加一些零;如果 D 是胖寬型矩陣,那麼在縮放後去掉最後一些元素。
機關向量是具有機關範數的向量,即 \begin{Vmatrix} x \end{Vmatrix}_2 = 1 。
如果兩個向量都有非零範數,那麼這兩個向量之間的夾角是90°。
标準正交:R^n 中,至多有 n 個範數非零向量互相正交,且範數都是 1 。
正交矩陣指行向量和列向量是分别标準正交的方陣。 A^TA=AA^T=I ,這意味着 A^{-1}=A^T
特征分解(eigendecomposition)
A 的特征分解可以記為: A=Vdiag(\lambda)V^{-1} 。
每個實對稱矩陣都可以分解成特征向量和特征值: A=Q\Lambda Q^T 。其中 Q 是 A 的特征向量組成的正交矩陣,\Lambda 是對角矩陣。
雖然任意一個實對稱矩陣A都有特征分解,但是特征分解可能并不唯一。主要是因為可能存在相同的特征值,但是如果規定\Lambda的元素按照降序排列,那麼在該約定下特征分解唯一。
矩陣是奇異的,當且僅當含有零特征值。
奇異值分解(singular value decomposition, SVD)
每個實數矩陣都有一個奇異值分解,但不一定有特征分解。
奇異值分解将矩陣分解成三個矩陣的乘積:A=UDV^T ,假設A是一個m \times n的矩陣, 那麼U是一個m\times m的矩陣,D是一個m\times n的矩陣,V是一個n\times n的矩陣。U和V都定義為正交矩陣,D為對角矩陣,注意D不一定是方陣。
對角矩陣D對角線上的元素稱為矩陣A的奇異值。
A的非零奇異值是A^TA特征值的平方根,同時也是AA^T特征值的平方根。
SVD最有用的性質可能是拓展矩陣求逆到非方矩陣上。
Moore-Penrose 僞逆(Moore-Penrose pseudoinverse)
矩陣A的僞逆定義為:A^+= \lim\limits_{a\searrow0} (A^TA +\alpha I)^{-1}A^T
僞逆的計算公式: A^+=VD^+U^T ,對角矩陣D的僞逆D^+是其非零元素取到數之後再轉置得到的。
當矩陣A的列數多于行數時,使用僞逆求解線性方程是衆多可能解法中的一種。特别地,x=A^+y是方程所有可行解中歐幾裡得範數\begin{Vmatrix} x \end{Vmatrix}_2最小的一個。當行數多于列數時,可能沒有解,此時通過求僞逆得到的x使得Ax和y的歐幾裡得距離\begin{Vmatrix} Ax-y\end{Vmatrix}_2最小.
迹運算
迹運算傳回的是矩陣對角元素的和: Tr(A)=\sum\limits_{i} A_{i,i}。
迹運算提供了另一種描述矩陣Frobenius範數的方式: \begin{Vmatrix} A \end{Vmatrix}_F = \sqrt{Tr(AA^T)} 。
Tr(A)=Tr(A^T)
當矩陣相乘可以更換矩陣位置時(可以相乘時),Tr(ABC)=Tr(CAB)=Tr(BCA) 或者更一般地: Tr(\prod\limits_{i=1}^n F^{(i)})=Tr(F^{(n)}\prod\limits_{n=1}^{n-1}F^{(i)}).即使循環置換後矩陣乘積得到的矩陣形狀變了,迹運算的結果依然不變。
标量在迹運算之後依然是它自己:a=Tr(a) 。
行列式
det(A)=\prod\limits_{i=1}^n \lambda_i
行列式的絕對值可以用來衡量矩陣參與矩陣乘法後空間擴大或者縮小了多少。如果行列式是0,那麼空間至少沿着某一維完全收縮了,使其失去了所有的體積。如果行列式是1,那麼這個轉換保持空間體積不變。
參考文獻: 《深度學習》