Apakah Kernel PCA dengan kernel linear setara dengan PCA standar?

17

Jika dalam kernel PCA saya memilih kernel linear , apakah hasilnya akan berbeda dari PCA linear biasa ? Apakah solusinya berbeda secara mendasar atau apakah ada hubungan yang didefinisikan dengan baik?K(x,y)=xy

tgoossens
sumber

Jawaban:

27

Rangkuman: kernel PCA dengan kernel linier persis sama dengan PCA standar.

Biarkan menjadi matriks data terpusat ukuran dengan variabel di kolom dan titik data dalam baris. Kemudian matriks kovarians diberikan oleh , vektor eigennya adalah sumbu utama dan nilai eigen adalah varian PC. Pada saat yang sama, seseorang dapat mempertimbangkan disebut Gram matrix dari ukuran. Mudah untuk melihat bahwa ia memiliki nilai eigen yang sama (yaitu varians PC) hingga faktor , dan vektor eigennya merupakan komponen utama yang diskalakan ke unit norma. N × D D N D × D XX / ( n - 1 ) X X N × N n - 1XN×DDND×DXX/(n1)XXN×Nn1

Ini adalah PCA standar. Sekarang, dalam kernel PCA kami mempertimbangkan beberapa fungsi yang memetakan setiap titik data ke ruang vektor lain yang biasanya memiliki dimensi lebih besar , bahkan mungkin tak terhingga. Gagasan PCA kernel adalah untuk melakukan PCA standar di ruang baru ini.D n e wϕ(x)Dnew

Karena dimensi ruang baru ini sangat besar (atau tidak terbatas), sulit atau tidak mungkin untuk menghitung matriks kovarians. Namun, kita dapat menerapkan pendekatan kedua untuk PCA yang diuraikan di atas. Memang, matriks Gram masih akan memiliki ukuran dapat dikelola yang sama . Elemen-elemen dari matriks ini diberikan oleh , yang akan kita sebut fungsi kernel . Inilah yang dikenal sebagai trik kernel : seseorang sebenarnya tidak perlu menghitung , tetapi hanya . Vektor eigen dari matriks Gram ini akan menjadi komponen utama dalam ruang target, yang kami minati.N×Nϕ(xi)ϕ(xj)K(xi,xj)=ϕ(xi)ϕ(xj)ϕ()K()

Jawaban atas pertanyaan Anda sekarang menjadi jelas. Jika , maka matriks Gram kernel berkurang menjadi yang sama dengan matriks Gram standar , dan karenanya komponen-komponen utama tidak akan berubah.X XK(x,y)=xyXX

Referensi yang sangat mudah dibaca adalah Scholkopf B, Smola A, dan Müller KR, analisis komponen utama Kernel, 1999 , dan perhatikan bahwa misalnya dalam Gambar 1, mereka secara eksplisit merujuk ke PCA standar sebagai yang menggunakan produk titik sebagai fungsi kernel:

kernel PCA

amuba kata Reinstate Monica
sumber
dari mana foto-foto itu berasal dari jawaban Anda? Dari beberapa buku?
Pinocchio
@ Pinocchio, sosok itu diambil dari Scholkopf et al. kertas, direferensikan dan ditautkan ke dalam jawaban saya.
Amuba mengatakan Reinstate Monica
"Mudah untuk melihat bahwa ia memiliki nilai eigen yang sama (yaitu varian PC) hingga faktor n − 1 " - bukankah ini berarti bahwa mereka tidak sepenuhnya setara? Katakanlah saya memiliki matriks dengan n = 10 sampel, d = 200 dimensi. Dalam PCA standar saya akan dapat memproyeksikan data ke 199 dimensi jika saya mau, tetapi dalam PCA kernel dengan kernel linier saya hanya bisa hingga 10 dimensi.
Cesar
1
@ Cesar, tidak, jika Anda memiliki n = 10 sampel maka matriks kovarians akan memiliki peringkat 10-1 = 9 dan PCA standar hanya akan menemukan 9 dimensi (dan juga kernel PCA). Lihat di sini: stats.stackexchange.com/questions/123318 .
Amuba kata Reinstate Monica
Saya mendapatkan file yang tidak ditemukan untuk tautan referensi Scholkopf B, Smola A, dan Müller KR.
pbible
5

Selain jawaban bagus amoeba, ada cara yang bahkan lebih sederhana untuk melihat kesetaraan. Sekali lagi biarkan menjadi matriks data ukuran N × D dengan variabel D dalam kolom dan titik data N dalam baris. Standar PCA sesuai dengan mengambil nilai dekomposisi singular dari matriks X = U Σ V dengan U komponen utama dari X . Dekomposisi nilai singular dari kernel linear X X = U Σ 2 U XN×DDNX=UΣVUXXX=UΣ2U memiliki vektor singular kiri yang sama dan komponen utama yang sama.

Martha White
sumber
Untuk PCA standar, saya pikir kami peduli, tentang SVD dari matriks kovarian, jadi tidak benar-benar mengerti bagaimana SVD dari X relevan, dapatkah Anda memperluas?
m0s
@ m0s Untuk PCA, kami peduli tentang eigendekomposisi dari matriks kovarians yang biasanya kami lakukan dengan SVD dari matriks data (terpusat).
MrDrFenner
1

Tampak bagi saya bahwa KPCA dengan kernel linear harus sama dengan PCA sederhana.

Matriks kovarian yang akan Anda dapatkan dari nilai eigennya adalah sama:

linearKPCAmatrix=1lj=1lK(xj,xj)=1lj=1lxjxjT=PCAmatrix

Anda dapat memeriksa dengan lebih detail di sini .

Jundiaius
sumber
3
K(xi,xj)