1. 程式人生 > >機器學習之特徵值/特徵向量的解析和應用

機器學習之特徵值/特徵向量的解析和應用

機器學習中,矩陣的特徵值/特徵向量理論有著非常廣泛的應用,比如資料降維 [1],人臉識別 [2]等。本文主要介紹特徵值/特徵向量。

1. 特徵值

定義: 給定n×nn\times n階方陣AA,如果存在數值λ\lambdann維非零向量x\vec{x},使得Ax=λxA\vec{x}=\lambda\vec{x},則稱數值λ\lambda為方陣AA的特徵值,向量x\vec{x}為方針AA的屬於特徵值λ\lambda的特徵向量。其中,特徵值λ\lambda可以為零,且屬於同一個特徵值的特徵向量並不唯一。譬如,若x\vec{x} 是方陣AA的特徵值λ

\lambda的特徵向量,則kxk\vec{x}也是方陣AA的特徵值λ\lambda的特徵向量。

計算: 已知nn階方陣A=(ai,j)A=\left ( a_{i,j} \right ),則方陣AA的特徵多項式φ(λ)\varphi \left ( \lambda \right ),如下,

φ(λ)=det(λIA)\varphi \left ( \lambda \right ) = det\left ( \lambda I-A \right )

=det(λa1,1a1,2...a1,na2,1λa2,2.

..a2,n............an,1an,2...λan,n)=det\begin{pmatrix} \lambda-a_{1,1} & -a_{1,2} & ... & -a_{1,n}\\ -a_{2,1} & \lambda-a_{2,2} & ... & -a_{2,n}\\ ... & ... & ... & ...\\ -a_{n,1} & -a_{n,2} & ... & \lambda -a_{n,n} \end{pmatrix}

不妨令特徵多項式φ(λ)=0\varphi \left ( \lambda \right )=0,得到特徵方程 [3],如下,

φ(λ)=det(λIA)=0\varphi \left ( \lambda \right ) = det\left ( \lambda I-A \right ) = 0

不妨令λ\lambda為方陣AA的特徵值,得到齊次線性方程組 [4],如下,

(λIA)x=0\left ( \lambda I-A \right )\vec{x}=0

該齊次線性方程組的非零解x\vec{x}即為矩陣AA對應於特徵值λ\lambda 的特徵向量。

舉例: 給定方陣A=[210131012]A=\begin{bmatrix} 2 & 1 & 0\\ 1 & 3 & 1\\ 0 & 1 & 2\end{bmatrix},求方陣AA的特徵值及其特徵向量。

方陣AA的特徵方程,如下,

φ(λ)=det(λIA)=λ2101λ3101λ2=0\varphi \left ( \lambda \right ) = det\left ( \lambda I-A \right ) = \begin{vmatrix} \lambda -2 & -1 & 0\\ -1 & \lambda -3 & -1\\ 0 & -1 & \lambda -2 \end{vmatrix}=0

根據行列式展開/拉普拉斯公式 [5],將高階行列式展開為低階行列式進行計算。得到方陣AA的特徵值分別如下,

λ1=1\lambda_1 = 1λ2=2\lambda_2 = 2λ3=4\lambda_3 = 4

分別將上述各個特徵值代入方陣AA的齊次線性方程組(λIA)x=0\left ( \lambda I-A \right )\vec{x}=0,得到相應特徵向量,如下,

x1=(111)\vec{x}_1=\begin{pmatrix} 1\\ -1\\ 1 \end{pmatrix}x2=(101)\vec{x}_2=\begin{pmatrix} 1\\ 0\\ -1 \end{pmatrix}x3=(121)\vec{x}_3=\begin{pmatrix} 1\\ 2\\ 1 \end{pmatrix}.

應用: 通過特徵值特徵向量可以將方陣分解為形式如下:AQεQ1A\rightarrow Q\varepsilon Q^{-1},其中ε\varepsilon 是方陣AA的特徵值組成的對角方陣,QQ是其對應特徵向量組成的方陣。特徵向量表示矩陣各種線性變換,其對應特徵值表示該線性變換的程度。不難想象,高維空間下的一個方陣表示高維空間下的一系列線性變換的集合,這些變換包含很多不同程度,不同方向的變換。因此,為了精簡高維空間變換問題,同時保留儘可能多的變換資訊,我們可以通過特徵值特徵向量分解高維矩陣的方法來近似地描述該方陣。

2. 奇異值分解

特徵值分解是一個提取方陣重要特徵資訊的不錯的方法,但是它僅僅侷限於方陣形式,因為方陣才有逆矩陣。但是在現實世界中,我們看到的大多數矩陣形式都不是方陣,譬如說,一個班級有NN個學生, 每個學生有MM門成績,這樣構成了一個N×MN\times M的矩陣就不是方陣。問:如何描述這樣一個非方陣形式的矩陣的重要特徵?奇異值分解就可以用來幹這事的,我們如下講解。

定義: 給定n×mn\times m階矩陣AA,計算ATAA^{T}A的特徵值特徵向量,如下,

ATAv=λvA^{T}A\vec{v}=\lambda \vec{v}

得到特徵值λi\lambda_{i},以及特徵向量ui\vec{u}_{i},其中構成右奇異酉矩陣Un×xU_{n\times x}

根據上述特徵值特徵向量,進一步地,

σi=λi\sigma_{i}=\sqrt{\lambda_{i}}