日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 默认站点!

默认站点

當前位置: 首頁 >

机器学习与高维信息检索 - Note 7 - 核主成分分析(Kernel Principal Component Analysis,K-PCA)

發布時間:2023/11/27 34 豆豆
默认站点 收集整理的這篇文章主要介紹了 机器学习与高维信息检索 - Note 7 - 核主成分分析(Kernel Principal Component Analysis,K-PCA) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Note 7 - 核主成分分析(Kernel Principal Component Analysis)

核主成分分析

  • Note 7 - 核主成分分析(Kernel Principal Component Analysis)
    • 7.1 用內積表示的線性PCA(Linear PCA expressed with inner products)
    • 7.2 向核PCA過渡 (Transition to Kernel PCA)
    • Definition 7.1 正定核 (Positive Definite Kernel)

標準PCA通過將觀察到的數據投射到一個線性子空間來降低其維度。選擇投影的方式是使以平方的標準歐氏準則衡量的誤差最小,這也可以解釋為減少白高斯噪聲的一種方式。一個非常重要的應用是將PCA作為分類的預處理,因為分類器在減少噪聲的特征空間中表現更好。

標準PCA的主要缺點是,它嚴重依賴數據的近似線性結構。在許多應用中,這是一個過于嚴格的假設。核PCA(K-PCA)是標準PCA的一個擴展,它沒有這些缺點。K-PCA的關鍵思想是,它隱含地假設存在一個非線性映射

?:Rp→H,(7.1)\phi: \mathbb{R}^{p} \rightarrow \mathcal{H}, \tag{7.1} ?:RpH,(7.1)
其中H\mathcal{H}H是一個非常高維的向量空間(甚至可能是無限維的),其內積為1??,??{ }^{1}\langle\cdot, \cdot\rangle1??,??。我們無妨把H\mathcal{H}H看作是一些RP\mathbb{R}^{P}RP,有非常大的PPP。作為一個初步的步驟,我們重新表述眾所周知的標準PCA,使其只涉及我們數據的內積。

1{ }^{1}1 形式上,希爾伯特空間H\mathcal{H}H是一個實數或復數內積空間,就內積所引導的距離函數而言,它也是一個完整的公制空間。

7.1 用內積表示的線性PCA(Linear PCA expressed with inner products)

X∈Rp×n\mathbf{X} \in \mathbb{R}^{p \times n}XRp×n為居中的數據矩陣(這將是下面推導的一個關鍵假設),讓K:=X?X\mathbf{K}:=\mathbf{X}^{\top} \mathbf{X}K:=X?X(n×n)(n \times n)(n×n)矩陣,由數據的所有內積組成。更確切地說,(i,j)(i, j)(i,j)項是K\mathbf{K}Kiii和第jjj觀測值的內積xi?xj\mathbf{x}_{i}^{\top} \mathbf{x}_{j}xi??xj?

回顧一下,如果X=UΣV?\mathbf{X}=\mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^{\top}X=UΣV?是數據矩陣的SVD。那么數據向量y∈Rp\mathbf{y} \in \mathbb{R}^{p}yRp的前kkk主分量是由Uk?\mathbf{U}_{k}^{\top}Uk??給出的。在目前的情況下,只給出了內積,因此不可能直接得到Uk\mathbf{U}_{k}Uk?。然而,K\mathbf{K}K的特征值分解允許對這個問題有一個優雅的解決方案。記住,我們有 K:=X?X\mathbf{K}:=\mathbf{X}^{\top} \mathbf{X}K:=X?X 并用它的SVD代替X\mathbf{X}X。我們得到

K=VΣ?ΣV?.?(7.2)\mathbf{K}=\mathbf{V} \boldsymbol{\Sigma}^{\top} \boldsymbol{\Sigma} \mathbf{V}^{\top} \text {. }\tag{7.2} K=VΣ?ΣV?.?(7.2)

記住,V\mathbf{V}V是正交的,Σ?Σ\boldsymbol{\Sigma}^{\top} \boldsymbol{\Sigma}Σ?Σ是對角的。因此,方程(7.2)是K\mathbf{K}K的特征值分解(EVD),由于EVD的唯一性,通過計算K\mathbf{K}Kkkk最大特征值與它們各自的特征向量,我們得到σ12,?,σk2\sigma_{1}^{2}, \cdots, \sigma_{k}^{2}σ12?,?,σk2?Vk\mathbf{V}_{k}Vk?。我們將假設σk>0\sigma_{k}>0σk?>0,否則我們可以減少目標子空間的維度而不損失任何數據信息。為了簡單起見,我們定義對角矩陣Σk=diag?(σ1,…,σk)\Sigma_{k}=\operatorname{diag}\left(\sigma_{1}, \ldots, \sigma_{k}\right)Σk?=diag(σ1?,,σk?)

這使我們能夠對于一個給定的觀測值 y\mathbf{y}y只需使用內積就可以計算出 Uk?y\mathbf{U}_{k}^{\top} \mathbf{y}Uk??y的主成分。對于一個新的測量值y\mathbf{y}y,我們有

Vk?X?y=Vk?VΣU?y=[Ik∣0]ΣU?y=[Σk∣0]U?y=ΣkUk?y.(7.3)\begin{aligned} \mathbf{V}_{k}^{\top} \mathbf{X}^{\top} \mathbf{y} &=\mathbf{V}_{k}^{\top} \mathbf{V} \boldsymbol{\Sigma} \mathbf{U}^{\top} \mathbf{y} \\ &=\left[I_{k} \mid 0\right] \boldsymbol{\Sigma} \mathbf{U}^{\top} \mathbf{y} \\ &=\left[\boldsymbol{\Sigma}_{k} \mid 0\right] \mathbf{U}^{\top} \mathbf{y} \\ &=\boldsymbol{\Sigma}_{k} \mathbf{U}_{k}^{\top} \mathbf{y} . \end{aligned} \tag{7.3}Vk??X?y?=Vk??VΣU?y=[Ik?0]ΣU?y=[Σk?0]U?y=Σk?Uk??y.?(7.3)

將此方程與Σk?1\Sigma_{k}^{-1}Σk?1?相乘,我們可以得到

Uk?y=Σk?1Vk?X?y=Σk?1Vk?[x1?y?xn?y].(7.4)\mathbf{U}_{k}^{\top} \mathbf{y}=\boldsymbol{\Sigma}_{k}^{-1} \mathbf{V}_{k}^{\top} \mathbf{X}^{\top} \mathbf{y}=\boldsymbol{\Sigma}_{k}^{-1} \mathbf{V}_{k}^{\top}\left[\begin{array}{c} \mathbf{x}_{1}^{\top} \mathbf{y} \\ \vdots \\ \mathbf{x}_{n}^{\top} \mathbf{y} \end{array}\right] . \tag{7.4}Uk??y=Σk?1?Vk??X?y=Σk?1?Vk??????x1??y?xn??y?????.(7.4)

注意,這個方程的右邊可以通過只涉及數據的內積的數據來計算,即Gram-matrix K\mathbf{K}K和內積xn?y\mathbf{x}_{n}^{\top} \mathbf{y}xn??y

使數據居中
到目前為止,我們已經假定數據是居中的,也就是說,Gram-matrix K\mathbf{K}K來自居中化的數據。這個假設很關鍵,因為否則方程(7.4)的推導將不成立。現在讓我們假設,我們沒有可用的居中數據,而Gram-matrix K\mathbf{K}K是由非居中數據建立的。好消息是,可以通過以下公式直接從K\mathbf{K}K推導出對應于中心數據的格拉姆矩陣,例如K~\tilde{\mathbf{K}}K~,即

K~=HKH,(7.5)\tilde{\mathbf{K}}=\mathbf{H K H}, \tag{7.5}K~=HKH,(7.5)

其中H=(In?1n1n1n?)\mathbf{H}=\left(\mathbf{I}_{n}-\frac{1}{n} \mathbb{1}_{n} \mathbb{1}_{n}^{\top}\right)H=(In??n1?1n?1n??).


證明:
從方程(1.3)中可以看出,如果X\mathbf{X}X表示非居中的數據矩陣,那么居中的矩陣由以下公式給出

X ̄=X?μ^1n?,(7.6)\overline{\mathbf{X}}=\mathbf{X}-\hat{\mu} \mathbb{1}_{n}^{\top}, \tag{7.6}X=X?μ^?1n??,(7.6)

μ^=1nX1n\hat{\mu}=\frac{1}{n} \mathbf{X} \mathbb{1}_{n}μ^?=n1?X1n?。 由此,可以看出

X ̄=X?1nX1n1n?=X(In?1n1n1n?).(7.7)\overline{\mathbf{X}}=\mathbf{X}-\frac{1}{n} \mathbf{X} \mathbb{1}_{n} \mathbb{1}_{n}^{\top}=\mathbf{X}\left(\mathbf{I}_{n}-\frac{1}{n} \mathbb{1}_{n} \mathbb{1}_{n}^{\top}\right) . \tag{7.7}X=X?n1?X1n?1n??=X(In??n1?1n?1n??).(7.7)
用對稱矩陣的速記符號來表示 H:=In?1n1n1n?\mathbf{H}:=\mathbf{I}_{n}-\frac{1}{n} \mathbb{1}_{n} \mathbb{1}_{n}^{\top}H:=In??n1?1n?1n??。我們可以得到

K~=X ̄?X ̄=HX?XH=HKH.(7.8)\tilde{\mathbf{K}}=\overline{\mathbf{X}}^{\top} \overline{\mathbf{X}}=\mathbf{H X}^{\top} \mathbf{X} \mathbf{H}=\mathbf{H K H} . \tag{7.8}K~=X?X=HX?XH=HKH.(7.8)


因此,如果我們有來自非中心數據的Gram-matrix,我們可以很容易地計算出對應于中心數據的Gram-matrix(無需明確地將X\mathbf{X}X居中)。由此,我們可以–如上所述–計算Vk\mathbf{V}_{k}Vk?Σk\boldsymbol{\Sigma}_{k}Σk?。為了計算新數據樣本y\mathbf{y}y的主成分,我們首先要根據訓練樣本把y\mathbf{y}y居中處理。具體來說,這意味著我們必須從y\mathbf{y}y減去訓練數據的經驗平均值μ^=1n∑ixi=1nX1n\hat{\mu}=\frac{1}{n} \sum_{i} \mathbf{x}_{i}=\frac{1}{n} \mathbf{X} \mathbb{1}_{n}μ^?=n1?i?xi?=n1?X1n?。然后我們必須用X ̄=XH\overline{\mathbf{X}}=\mathbf{X H}X=XH替換公式(7.3)和(7.4)中的X\mathbf{X}X。這就得到了

Uk?(y?1nX1n)=Σk?1Vk?(XH)?(y?1nX1n)=Σk?1Vk?ky(7.9)\mathbf{U}_{k}^{\top}\left(\mathbf{y}-\frac{1}{n} \mathbf{X} \mathbb{1}_{n}\right)=\boldsymbol{\Sigma}_{k}^{-1} \mathbf{V}_{k}^{\top}(\mathbf{X} \mathbf{H})^{\top}\left(\mathbf{y}-\frac{1}{n} \mathbf{X} \mathbb{1}_{n}\right)=\boldsymbol{\Sigma}_{k}^{-1} \mathbf{V}_{k}^{\top} \mathbf{k}_{y} \tag{7.9}Uk??(y?n1?X1n?)=Σk?1?Vk??(XH)?(y?n1?X1n?)=Σk?1?Vk??ky?(7.9)

其中

ky=H[x1?y?xn?y]?1nHK1n\mathbf{k}_{y}=\mathbf{H}\left[\begin{array}{c} \mathbf{x}_{1}^{\top} \mathbf{y} \\ \vdots \\ \mathbf{x}_{n}^{\top} \mathbf{y} \end{array}\right]-\frac{1}{n} \mathbf{H K} \mathbb{1}_{n} ky?=H????x1??y?xn??y??????n1?HK1n?

7.2 向核PCA過渡 (Transition to Kernel PCA)

現在,通過簡單地將內積 x?y\mathbf{x}^{\top} \mathbf{y}x?y替換為??(x),?(y)?\langle\phi(\mathbf{x}), \phi(\mathbf{y})\rangle??(x),?(y)?來擴展經典的PCA是很簡單的。K-PCA的實際成功是由于計算??(x),?(y)?\langle\phi(\mathbf{x}), \phi(\mathbf{y})\rangle??(x),?(y)?時,既不需要?\phi?也不需要??,??\langle\cdot, \cdot\rangle??,?? 的內積。相反,只需要有一個函數

κ:Rp×Rp→R,(x,y)?κ(x,y)(7.10)\kappa: \mathbb{R}^{p} \times \mathbb{R}^{p} \rightarrow \mathbb{R}, \quad(\mathbf{x}, \mathbf{y}) \mapsto \kappa(\mathbf{x}, \mathbf{y}) \tag{7.10} κ:Rp×RpR,(x,y)?κ(x,y)(7.10)

這反映了??(x),?(y)?\langle\phi(\mathbf{x}), \phi(\mathbf{y})\rangle??(x),?(y)?的屬性,即對于所有x∈Rp\mathbf{x} \in \mathbb{R}^{p}xRp來說是對稱的,并且滿足κ(x,x)≥0\kappa(\mathbf{x}, \mathbf{x}) \geq 0κ(x,x)0 的正定屬性。用κ(x,y)\kappa(\mathbf{x}, \mathbf{y})κ(x,y)代替??(x),?(y)?\langle\phi(\mathbf{x}), \phi(\mathbf{y})\rangle??(x),?(y)?,因此不需要知道特征映射?\phi?,稱為核技巧(Kernel trick)。

Definition 7.1 正定核 (Positive Definite Kernel)

  1. S:={x1,…,xn}?RpS:=\left\{\mathbf{x}_{1}, \ldots, \mathbf{x}_{n}\right\} \subset \mathbb{R}^{p}S:={x1?,,xn?}?Rpκ(?)\kappa(\cdot)κ(?)如上定義. 帶有(i,j)(i, j)(i,j)kij=κ(xi,xj)k_{i j}=\kappa\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)kij?=κ(xi?,xj?)(n×n)(n \times n)(n×n)-矩陣K\mathbf{K}K 被稱為SSS的Gram-或Kernel-矩陣,相對于κ\kappaκ

  2. 如果對于所有有限的、非空的集合 S?RpS \subset \mathbb{R}^{p}S?Rp來說,相應的Gram-matrix是正半定的(正定的),那么這個函數κ(?)\kappa(\cdot)κ(?)被稱為核(正定的核)。

在上一小節中,我們討論了在潛在的希爾伯特空間中的數據居中問題。我們在這里也面臨同樣的問題。當一個新的數據點出現時,直接計算新數據點的非中心化內積向量與訓練數據的關系是很簡單的。我們將把它稱為

knew?=[??(x1),?(y)????(xn),?(y)?].\mathbf{k}^{\text {new }}=\left[\begin{array}{c} \left\langle\phi\left(\mathbf{x}_{1}\right), \phi(\mathbf{y})\right\rangle \\ \vdots \\ \left\langle\phi\left(\mathbf{x}_{n}\right), \phi(\mathbf{y})\right\rangle \end{array}\right] . knew?=??????(x1?),?(y)????(xn?),?(y)??????.

那么,中心化數據的第jjj條是

(kcentnew)j=??(xj)?1n∑i?(xi),?(y)?1n∑i?(xi)?\left(\mathbf{k}_{c e n t}^{n e w}\right)_{j}=\left\langle\phi\left(\mathbf{x}_{j}\right)-\frac{1}{n} \sum_{i} \phi\left(\mathbf{x}_{i}\right), \phi(\mathbf{y})-\frac{1}{n} \sum_{i} \phi\left(\mathbf{x}_{i}\right)\right\rangle (kcentnew?)j?=??(xj?)?n1?i??(xi?),?(y)?n1?i??(xi?)?

為了找到一個更簡潔的表達方式,我們利用標量乘積的線性來得到

??(xj)?1n∑i?(xi),?(y)?1n∑i?(xi)?=??(xj),?(y)??1n?∑i?(xi),?(y)??1n??(xj),∑i?(xi)?+1n2?∑i?(xi),∑i?(xi)?,\begin{gathered} \left\langle\phi\left(\mathbf{x}_{j}\right)-\frac{1}{n} \sum_{i} \phi\left(\mathbf{x}_{i}\right), \phi(\mathbf{y})-\frac{1}{n} \sum_{i} \phi\left(\mathbf{x}_{i}\right)\right\rangle \\ =\left\langle\phi\left(\mathbf{x}_{j}\right), \phi(\mathbf{y})\right\rangle-\frac{1}{n}\left\langle\sum_{i} \phi\left(\mathbf{x}_{i}\right), \phi(\mathbf{y})\right\rangle \\ -\frac{1}{n}\left\langle\phi\left(\mathbf{x}_{j}\right), \sum_{i} \phi\left(\mathbf{x}_{i}\right)\right\rangle+\frac{1}{n^{2}}\left\langle\sum_{i} \phi\left(\mathbf{x}_{i}\right), \sum_{i} \phi\left(\mathbf{x}_{i}\right)\right\rangle, \end{gathered} ??(xj?)?n1?i??(xi?),?(y)?n1?i??(xi?)?=??(xj?),?(y)??n1??i??(xi?),?(y)??n1???(xj?),i??(xi?)?+n21??i??(xi?),i??(xi?)?,?

而且很容易看出,

kcent?new?=knew??1n1n1n?knew??1nK1n+1n21n1n?K1n=Hknew??1nHK1n.\begin{gathered} \mathbf{k}_{\text {cent }}^{\text {new }}=\mathbf{k}^{\text {new }}-\frac{1}{n} \mathbb{1}_{n} \mathbb{1}_{n}^{\top} \mathbf{k}^{\text {new }}-\frac{1}{n} \mathbf{K} \mathbb{1}_{n}+\frac{1}{n^{2}} \mathbb{1}_{n} \mathbb{1}_{n}^{\top} \mathbf{K} \mathbb{1}_{n} \\ =\mathbf{H k}^{\text {new }}-\frac{1}{n} \mathbf{H} \mathbf{K} \mathbb{1}_{n} . \end{gathered} kcent?new??=knew??n1?1n?1n??knew??n1?K1n?+n21?1n?1n??K1n?=Hknew??n1?HK1n?.?

總之,對于一個訓練集X=[x1,…xn],xi∈Rp\mathbf{X}=\left[\mathbf{x}_{1}, \ldots \mathbf{x}_{n}\right], \mathbf{x}_{i} \in \mathbb{R}^{p}X=[x1?,xn?],xi?Rp 的K-PCA包括以下步驟。

  1. 找到一個合適的內核函數 κ(?)\kappa(\cdot)κ(?) 并計算Gram-matrix

K=[κ(x1,x1)κ(x1,x2)…κ(x1,xn)κ(x2,x1)κ(x2,x2)κ(x2,xn)????κ(xn,x1)κ(xn,x2)…κ(xn,xn)]\mathbf{K}=\left[\begin{array}{cccc} \kappa\left(\mathbf{x}_{1}, \mathbf{x}_{1}\right) & \kappa\left(\mathbf{x}_{1}, \mathbf{x}_{2}\right) & \ldots & \kappa\left(\mathbf{x}_{1}, \mathbf{x}_{n}\right) \\ \kappa\left(\mathbf{x}_{2}, \mathbf{x}_{1}\right) & \kappa\left(\mathbf{x}_{2}, \mathbf{x}_{2}\right) & & \kappa\left(\mathbf{x}_{2}, \mathbf{x}_{n}\right) \\ \vdots & \vdots & \ddots & \vdots \\ \kappa\left(\mathbf{x}_{n}, \mathbf{x}_{1}\right) & \kappa\left(\mathbf{x}_{n}, \mathbf{x}_{2}\right) & \ldots & \kappa\left(\mathbf{x}_{n}, \mathbf{x}_{n}\right) \end{array}\right] K=??????κ(x1?,x1?)κ(x2?,x1?)?κ(xn?,x1?)?κ(x1?,x2?)κ(x2?,x2?)?κ(xn?,x2?)???κ(x1?,xn?)κ(x2?,xn?)?κ(xn?,xn?)???????

  1. 計算Gram-matrix K~=HKH\tilde{\mathbf{K}}=\mathbf{H K H}K~=HKH,其中H=In?1n1n1n?\mathbf{H}=\mathbf{I}_{n}-\frac{1}{n} \mathbb{1}_{n} \mathbb{1}_{n}^{\top}H=In??n1?1n?1n??是居中化的數據。

  2. 計算特征值分解K~=VΛV?\tilde{\mathbf{K}}=\mathbf{V} \boldsymbol{\Lambda} \mathbf{V}^{\top}K~=VΛV?。由于核函數的定義,矩陣K\mathbf{K}K是半正定的,因此Λ\boldsymbol{\Lambda}Λ的對角線項是非負的。因此,我們可以寫成 Λ=Σ2=diag?(σ12,…,σn2)\boldsymbol{\Lambda}=\boldsymbol{\Sigma}^{2}=\operatorname{diag}\left(\sigma_{1}^{2}, \ldots, \sigma_{n}^{2}\right)Λ=Σ2=diag(σ12?,,σn2?).

  3. 定義縮減矩陣 Σk=diag?(σ1,…,σk)∈Rk×k\boldsymbol{\Sigma}_{k}=\operatorname{diag}\left(\sigma_{1}, \ldots, \sigma_{k}\right) \in \mathbb{R}^{k \times k}Σk?=diag(σ1?,,σk?)Rk×kVk∈Rn×k\mathbf{V}_{k} \in \mathbb{R}^{n \times k}Vk?Rn×k.

  4. 縮減后的訓練數據由以下公式得出

S=ΣkVk?(7.11)\mathbf{S}=\boldsymbol{\Sigma}_{k} \mathbf{V}_{k}^{\top} \tag{7.11} S=Σk?Vk??(7.11)

  1. 對于一個新的數據點y∈Rp\mathbf{y} \in \mathbb{R}^{p}yRpkkk核主成分的計算方法是

snew?:=Σk?1Vk?kcent?new?(7.12)\mathbf{s}_{\text {new }}:=\mathbf{\Sigma}_{k}^{-1} \mathbf{V}_{k}^{\top} \mathbf{k}_{\text {cent }}^{\text {new }} \tag{7.12} snew??:=Σk?1?Vk??kcent?new??(7.12)

其中

kcent?new?=H(knew??1nK1n)where?knew?=[κ(x1,y),…,κ(xn,y)]?.\begin{aligned} \mathbf{k}_{\text {cent }}^{\text {new }} &=\mathbf{H}\left(\mathbf{k}^{\text {new }}-\frac{1}{n} \mathbf{K} \mathbb{1}_{n}\right) \\ \text { where } \mathbf{k}^{\text {new }} &=\left[\kappa\left(\mathbf{x}_{1}, \mathbf{y}\right), \ldots, \kappa\left(\mathbf{x}_{n}, \mathbf{y}\right)\right]^{\top} . \end{aligned} kcent?new???where?knew??=H(knew??n1?K1n?)=[κ(x1?,y),,κ(xn?,y)]?.?

總結

以上是默认站点為你收集整理的机器学习与高维信息检索 - Note 7 - 核主成分分析(Kernel Principal Component Analysis,K-PCA)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得默认站点網站內容還不錯,歡迎將默认站点推薦給好友。