カーネル主成分分析(以下カーネルPCA)の数式を導出・解説します。流れが詳しくわかるよう、丁寧に式変形するよう心がけております。カーネルPCAは読んで字が如く、主成分分析(以下PCA)でカーネル法を用いたものです。PCA同様に主軸を変換しますが、この第1主軸がカーネル行列の最大固有値に対応する固有ベクトルの向きであることを数式で説明します。
概要
通常のPCAでは線形データにしか対応できないが、カーネルPCAは読んで字が如くカーネルトリックを用いるので、非線形データに対してPCAを適用することが可能となる。
PCAの数式の導出はこちらの記事から。
数式
①最適化問題導出まで
データをN次元ベクトルxで表す。
元のデータxが存在する空間をΩとし、Ωから高次元特徴空間Hへの写像をϕ:Ω→Hとする。
空間Ω上のデータ{xi}i=1Nを写像した{ϕ(xi)}i=1Nに対して、特徴空間Hでの第一主軸をfとし、この1次元上での最大分散を考える。内積の記号を⟨⋅,⋅⟩とすると、
∥f∥=1maxVar[⟨f,ϕ(x)⟩]=∥f∥=1maxN1i=1∑N(⟨f,ϕ(xi)−N1j=1∑Nϕ(xj)⟩)2⋯①
ϕ(xi)からϕ(x)の平均を引いたものをϕ~(xi)とおくと、
ϕ~(xi)=ϕ(xi)–N1i=1∑Nϕ(xi)
より、①式は
∥f∥=1maxN1i=1∑N⟨f,ϕ~(xi)⟩2⋯②
ここで、
f=i=1∑Naiϕ~(xi)⋯③
とおける。なぜならば、span{ベクトルの集合}をベクトルの集合が張る空間とすると、H0=span{ϕ~(xi)}i=1Nとしたとき、H=H0⊕H0⊥と分解でき、f=f0⊕f⊥(f0∈H0,f⊥∈H0⊥)となる。
ゆえにf⊥⊥ϕ~(xi)となり、②式の内積計算において、fのf⊥成分と、それに対応するϕ~(xi)の成分の項の積は0となり、②式の評価と関係がなくなる。したがってfは③式の形、すなわちH0の元として表せれば十分である。よって②式は、
∥f∥=1maxN1i=1∑N⟨j=1∑Najϕ~(xj),ϕ~(xi)⟩2=∥f∥=1maxN1i=1∑N(j=1∑Naj)2⟨ϕ~(xi),ϕ~(xj)⟩2=∥f∥=1maxN1i=1∑N(j=1∑Naj)2Kij2=∥f∥=1maxN1a⊤K2a
ここで、Kはカーネル行列(グラム行列)である。
また、
∥f∥2=⟨N1i∑aiϕ(xj),N1i∑aiϕ(xj)⟩=a⊤Ka
②最適化問題を解く
したがって、第一主軸は最大化問題
maxmizeN1a⊤K2as.t.a⊤K2a=1
となる。ここでb=K21aとおくと、
maxmizeN1b⊤Kbs.t.∥b∥=1
この最適化問題のラグランジュ関数Lは
L(b,λ)=N1b⊤Kb−λ(b⊤b−1)
∂b∂L=0とすると
N12Kb−2λb=0
∴Kb=Nλb
となり、固有値問題に帰着する。結局、グラム行列の最大固有値に対応する固有ベクトルが第一主軸になる。
なお、行列の微分による式変形がわからない方は、以下の記事を参考にされたし。