目錄
- 前文回顧
- 6.協方差矩陣與主成分分析
- 7.矩陣的奇異值分解
- 8.神經網絡的前向傳播和反向傳播
- 9.矩陣的跡
- 10.特征工程的多項式特征擴展
前文回顧
上一篇文章鏈接:地址
6.協方差矩陣與主成分分析
協方差矩陣是一個對稱矩陣,用于衡量隨機變量之間的線性相關性和方差。給定一個 n n n維隨機向量 X = ( X 1 , X 2 , … , X n ) \boldsymbol{X} = (X_1, X_2, \ldots, X_n) X=(X1?,X2?,…,Xn?),其協方差矩陣表示為 C = { cov ( X i , X j ) } \boldsymbol{C} = \{\text{cov}(X_i, X_j)\} C={cov(Xi?,Xj?)},其中 cov ( X i , X j ) \text{cov}(X_i, X_j) cov(Xi?,Xj?) 表示隨機變量 X i X_i Xi? 和 X j X_j Xj? 的協方差。協方差矩陣是一個 n × n n \times n n×n 的矩陣,其中第 ( i , j ) (i, j) (i,j) 個元素表示 X i X_i Xi? 和 X j X_j Xj? 之間的協方差。對角線上的元素是各個隨機變量的方差,非對角線上的元素則代表了兩個隨機變量之間的協方差
在主成分分析(PCA)中,協方差矩陣扮演著重要的角色。PCA 是一種常用的降維技術,旨在找到數據中最重要的特征(主成分),以便用較低維度的特征表示數據。使用 PCA 進行降維的關鍵步驟之一是計算數據的協方差矩陣。通過計算協方差矩陣,我們可以獲得數據中各個特征之間的相關性信息。協方差矩陣的特征值和特征向量提供了關于數據結構和特征重要性的有用信息,在 PCA 中,我們將協方差矩陣的特征向量作為新的基向量,將數據投影到這些基向量上,構成新的特征空間。通過將特征值排序,我們可以選擇最重要的特征(較大的特征值),從而實現數據維度的降低。這樣可以減少數據的冗余信息,并捕捉到最具代表性的特征
總結來說,協方差矩陣在主成分分析中起著至關重要的作用。它提供了關于數據特征之間關系的信息,幫助我們理解數據的結構并選擇最具代表性的特征,從而實現數據的降維和壓縮
7.矩陣的奇異值分解
矩陣的奇異值分解(Singular Value Decomposition,SVD)是一種重要的矩陣分解技術,它將一個矩陣分解為三個矩陣的乘積。給定一個 m × n m \times n m×n的矩陣 A \boldsymbol{A} A,其SVD表示為:
A = U Σ V T \boldsymbol{A} = \boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^T A=UΣVT
其中, U \boldsymbol{U} U和 V \boldsymbol{V} V是正交矩陣, Σ \boldsymbol{\Sigma} Σ是一個對角矩陣。 U \boldsymbol{U} U的列向量稱為左奇異向量, V \boldsymbol{V} V的列向量稱為右奇異向量, Σ \boldsymbol{\Sigma} Σ的對角線元素稱為奇異值,SVD的主要特點是將原始矩陣分解成了三個部分,每個部分都有其獨特的性質和含義。這使得SVD在矩陣分解和降維中具有廣泛應用,比如:
- 矩陣分解:SVD在矩陣分解中非常有用。通過將矩陣 A \boldsymbol{A} A進行奇異值分解,我們可以得到特征向量矩陣 U \boldsymbol{U} U和 V \boldsymbol{V} V以及奇異值矩陣 Σ \boldsymbol{\Sigma} Σ。這使得我們能夠有效地計算矩陣的逆、偽逆和矩陣方程的解等
- 數據壓縮和降維:SVD也被廣泛應用于數據壓縮和降維。通過保留最大的奇異值和相應的特征向量,我們可以將原始高維數據投影到一個較低維度的空間中,并且盡量保留原始數據的主要信息。這對于處理高維數據、去除冗余信息和減少計算復雜性非常有幫助
- 圖像處理:在圖像處理中,SVD可以用于圖像壓縮和圖像增強等任務。通過對圖像矩陣進行SVD,我們可以提取出圖像的主要特征,并用較低維度的表示來表示圖像
- 推薦系統:在協同過濾推薦系統中,SVD可以用于對用戶-物品評分矩陣進行分解,以獲取用戶和物品的潛在特征。這有助于發現用戶和物品之間的關聯性,并用于生成個性化的推薦
總結來說,矩陣的奇異值分解(SVD)是一種強大且廣泛應用的矩陣分解技術。它在矩陣分解、數據壓縮、降維、圖像處理和推薦系統等領域具有重要作用,并為我們理解和處理復雜的數據提供了有力工具
8.神經網絡的前向傳播和反向傳播
-
前向傳播:
- 輸入向量 x \boldsymbol{x} x 通過與權重矩陣 W \boldsymbol{W} W 的乘法得到隱藏層的輸入: h = W ? x \boldsymbol{h} = \boldsymbol{W} \cdot \boldsymbol{x} h=W?x
- 隱藏層的輸入 h \boldsymbol{h} h 經過激活函數 f ( ? ) f(\cdot) f(?) 得到隱藏層的激活值: a = f ( h ) \boldsymbol{a} = f(\boldsymbol{h}) a=f(h)
- 隱藏層的激活值 a \boldsymbol{a} a 再次與權重矩陣 W ′ \boldsymbol{W}^\prime W′ 進行乘法運算得到輸出層的輸入: o = W ′ ? a \boldsymbol{o} = \boldsymbol{W}^\prime \cdot \boldsymbol{a} o=W′?a
- 輸出層的輸入 o \boldsymbol{o} o 經過激活函數 f ( ? ) f(\cdot) f(?) 得到最終的輸出值: y = f ( o ) \boldsymbol{y} = f(\boldsymbol{o}) y=f(o)
-
反向傳播(基于交叉熵損失函數):
- 計算輸出層的誤差項: δ o = ( y ? t ) ⊙ f ′ ( o ) \boldsymbol{\delta}_o = (\boldsymbol{y} - \boldsymbol{t}) \odot f^\prime(\boldsymbol{o}) δo?=(y?t)⊙f′(o),其中 t \boldsymbol{t} t 是目標值, ⊙ \odot ⊙ 表示逐元素相乘, f ′ ( ? ) f^\prime(\cdot) f′(?) 是激活函數的導數
- 反向傳播輸出層的誤差項到隱藏層: δ a = W ′ T ? δ o ⊙ f ′ ( h ) \boldsymbol{\delta}_a = \boldsymbol{W}^{\prime T} \cdot \boldsymbol{\delta}_o \odot f^\prime(\boldsymbol{h}) δa?=W′T?δo?⊙f′(h)
- 計算權重矩陣 W ′ \boldsymbol{W}^\prime W′ 的梯度: ? W ′ = δ o ? a T \nabla_{\boldsymbol{W}^\prime} = \boldsymbol{\delta}_o \cdot \boldsymbol{a}^T ?W′?=δo??aT
- 計算權重矩陣 W \boldsymbol{W} W 的梯度: ? W = δ a ? x T \nabla_{\boldsymbol{W}} = \boldsymbol{\delta}_a \cdot \boldsymbol{x}^T ?W?=δa??xT
在反向傳播過程中,梯度計算使用了鏈式法則,通過將誤差項逐層傳遞回去,從而計算出權重矩陣的梯度。這些梯度可以用于更新權重矩陣,以最小化損失函數,并不斷優化神經網絡的性能,通過矩陣運算和逐元素操作,神經網絡可以高效地進行前向傳播和反向傳播過程,實現輸入數據的轉換和網絡參數的學習
9.矩陣的跡
矩陣的跡(Trace)是指一個方陣對角線上所有元素的和。對于一個 n × n n \times n n×n矩陣 A \boldsymbol{A} A,其跡表示為 tr ( A ) \text{tr}(\boldsymbol{A}) tr(A),計算方式為:
tr ( A ) = ∑ i = 1 n A i i \text{tr}(\boldsymbol{A}) = \sum_{i=1}^{n} A_{ii} tr(A)=i=1∑n?Aii?
跡有以下特性:
- 跡對矩陣的轉置不變: tr ( A ) = tr ( A T ) \text{tr}(\boldsymbol{A}) = \text{tr}(\boldsymbol{A}^T) tr(A)=tr(AT)
- 跡對矩陣乘法具有結合律: tr ( A B ) = tr ( B A ) \text{tr}(\boldsymbol{AB}) = \text{tr}(\boldsymbol{BA}) tr(AB)=tr(BA)
- 跡對矩陣加法具有可加性: tr ( A + B ) = tr ( A ) + tr ( B ) \text{tr}(\boldsymbol{A} + \boldsymbol{B}) = \text{tr}(\boldsymbol{A}) + \text{tr}(\boldsymbol{B}) tr(A+B)=tr(A)+tr(B)
在矩陣求導和優化中,跡具有一些重要的應用。矩陣求導中的應用有:
- 跡的導數:當我們需要對一個標量函數關于一個矩陣進行求導時,可以將其轉化為對跡的求導。根據跡的性質,我們有 ? ? A tr ( A B ) = B T \frac{\partial}{\partial \boldsymbol{A}} \text{tr}(\boldsymbol{AB}) = \boldsymbol{B}^T ?A??tr(AB)=BT 和 ? ? A tr ( A B A T ) = B A T + B T A \frac{\partial}{\partial \boldsymbol{A}} \text{tr}(\boldsymbol{ABA}^T) = \boldsymbol{BA}^T + \boldsymbol{B}^T \boldsymbol{A} ?A??tr(ABAT)=BAT+BTA 等等
- 鏈式法則:在多元復合函數求導時,跡的性質使得我們能夠使用跡來簡化求導過程。通過將跡運算與矩陣鏈式相乘結合起來,我們可以高效地計算復雜函數的導數
優化中的應用:
- 正則化項:在損失函數中引入跡作為正則化項,可以對模型參數進行約束,避免過擬合或提高模型的穩定性
- 物理意義:在一些優化問題中,跡可以表示系統的某些物理量,例如能量、功率等,從而幫助解決實際問題
總結:矩陣的跡是指方陣對角線上所有元素的和,具有對轉置不變、結合律和可加性等特性。在矩陣求導和優化中,跡被廣泛應用于簡化求導過程、定義正則化項以及表示物理量等方面
10.特征工程的多項式特征擴展
在特征工程中,多項式特征擴展(Polynomial Feature Expansion)是一種將原始特征通過多項式組合生成新的特征的方法。它通過引入原始特征的冪和交互項來捕捉特征之間的非線性關系,從而提供更豐富的特征表示
假設我們有一個包含 n n n個特征的向量 x = ( x 1 , x 2 , … , x n ) \boldsymbol{x} = (x_1, x_2, \ldots, x_n) x=(x1?,x2?,…,xn?),多項式特征擴展可以將其轉化為一個包含多項式特征的向量 y = ( y 1 , y 2 , … , y m ) \boldsymbol{y} = (y_1, y_2, \ldots, y_m) y=(y1?,y2?,…,ym?),其中 m m m是根據所選特征的最高次數和交互項確定的新特征維度
通過線性代數的方法,可以使用以下步驟來實現多項式特征擴展:
- 構建特征矩陣:將原始特征向量 x \boldsymbol{x} x構造成一個 n × 1 n \times 1 n×1的矩陣 X \boldsymbol{X} X
X = [ x 1 x 2 ? x n ] \boldsymbol{X} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} X= ?x1?x2??xn?? ?
計算多項式度數:選擇所需的多項式度數 d d d,確定要生成的多項式特征的最高次數 - 擴展特征矩陣:通過計算原始特征的冪和交互項,將特征矩陣 X \boldsymbol{X} X擴展為一個 n × m n \times m n×m的新特征矩陣 Y \boldsymbol{Y} Y。每一列代表一個多項式特征
Y = [ 1 x 1 x 1 2 … x 1 d x 1 x 2 … 1 x 2 x 2 2 … x 2 d x 2 x 3 … ? ? ? ? ? ? ? 1 x n x n 2 … x n d x n ? 1 x n … ] \boldsymbol{Y} = \begin{bmatrix} 1 & x_1 & x_1^2 & \ldots & x_1^d & x_1x_2 & \ldots \\ 1 & x_2 & x_2^2 & \ldots & x_2^d & x_2x_3 & \ldots \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \ddots \\ 1 & x_n & x_n^2 & \ldots & x_n^d & x_{n-1}x_n & \ldots \end{bmatrix} Y= ?11?1?x1?x2??xn??x12?x22??xn2??……?…?x1d?x2d??xnd??x1?x2?x2?x3??xn?1?xn??……?…? ? - 利用線性代數進行計算:可以使用線性代數中的矩陣乘法來計算特征矩陣的擴展。我們可以將特征矩陣 X \boldsymbol{X} X與一個由多項式系數組成的矩陣相乘,得到擴展后的特征矩陣 Y \boldsymbol{Y} Y,多項式特征擴展使得我們能夠引入更多非線性特征,從而改善模型對數據的擬合能力。然而,要注意的是,高次多項式和大量交互項可能導致特征維度的爆炸,需要謹慎選擇多項式的度數和特征組合