Apa kelebihan PCA kernel dari PCA standar?


18

Saya ingin menerapkan algoritma dalam sebuah makalah yang menggunakan kernel SVD untuk menguraikan matriks data. Jadi saya telah membaca materi tentang metode kernel dan PCA kernel dll. Tetapi masih sangat tidak jelas bagi saya terutama ketika datang ke rincian matematika, dan saya punya beberapa pertanyaan.

  1. Mengapa metode kernel? Atau, apa manfaat metode kernel? Apa tujuan intuisi?

    Apakah dengan mengasumsikan ruang dimensi yang jauh lebih tinggi lebih realistis dalam masalah dunia nyata dan mampu mengungkapkan hubungan nonlinear dalam data, dibandingkan dengan metode non-kernel? Menurut materi, metode kernel memproyeksikan data ke ruang fitur dimensi tinggi, tetapi mereka tidak perlu menghitung ruang fitur baru secara eksplisit. Sebagai gantinya, cukup untuk menghitung hanya produk dalam antara gambar semua pasangan titik data dalam ruang fitur. Jadi mengapa memproyeksikan ke ruang dimensi yang lebih tinggi?

  2. Sebaliknya, SVD mengurangi ruang fitur. Mengapa mereka melakukannya ke arah yang berbeda? Metode kernel mencari dimensi yang lebih tinggi, sedangkan SVD mencari dimensi yang lebih rendah. Bagi saya kedengarannya aneh menggabungkannya. Menurut makalah yang saya baca ( Symeonidis et al. 2010 ), memperkenalkan Kernel SVD bukannya SVD dapat mengatasi masalah sparsity dalam data, meningkatkan hasil.

masukkan deskripsi gambar di sini

Dari perbandingan dalam gambar kita dapat melihat bahwa KPCA mendapatkan vektor eigen dengan varians (nilai eigen) yang lebih tinggi daripada PCA, saya kira? Karena untuk perbedaan terbesar dari proyeksi poin ke vektor eigen (koordinat baru), KPCA adalah lingkaran dan PCA adalah garis lurus, sehingga KPCA mendapatkan varians yang lebih tinggi daripada PCA. Jadi apakah ini berarti KPCA mendapatkan komponen utama yang lebih tinggi daripada PCA?


3
Lebih banyak komentar daripada jawaban: KPCA sangat mirip dengan Spectral Clustering - dalam beberapa pengaturan bahkan sama. (lihat misalnya cirano.qc.ca/pdf/publication/2003s-19.pdf ).

Maaf karena terlambat membalas. Ya, jawaban Anda sangat mencerahkan.
Tyler 傲 来 国 主

Jawaban:


24

PCA (sebagai teknik reduksi dimensi) mencoba menemukan subruang linear berdimensi rendah yang terbatas pada data. Tetapi mungkin bahwa data terbatas pada subruang nonlinear dimensi rendah . Lalu apa yang akan terjadi?

Lihatlah Gambar ini, yang diambil dari buku pelajaran "Pengenalan Pola dan Pembelajaran Mesin" (Gambar 12.16):

kernel PCA dari buku ML Bishop

Titik data di sini (di sebelah kiri) sebagian besar terletak di sepanjang kurva dalam 2D. PCA tidak dapat mengurangi dimensi dari dua menjadi satu, karena titik-titik tersebut tidak terletak di sepanjang garis lurus. Tapi tetap saja, data "jelas" terletak di sekitar kurva non-linear satu dimensi. Jadi, sementara PCA gagal, pasti ada cara lain! Dan memang, PCA kernel dapat menemukan bermacam-macam non-linear dan menemukan bahwa data sebenarnya hampir satu dimensi.

Itu dilakukan dengan memetakan data ke ruang dimensi yang lebih tinggi. Ini memang bisa terlihat seperti kontradiksi (pertanyaan Anda # 2), tetapi tidak. Data dipetakan ke ruang dimensi yang lebih tinggi, tetapi kemudian berubah menjadi terletak pada ruang bagian dimensi yang lebih rendah darinya. Jadi Anda meningkatkan dimensi agar dapat menguranginya.

Inti dari "trik kernel" adalah bahwa seseorang tidak benar-benar perlu secara eksplisit mempertimbangkan ruang dimensi yang lebih tinggi, sehingga lompatan yang berpotensi membingungkan dalam dimensi ini dilakukan sepenuhnya menyamar. Namun, idenya tetap sama.


Jawaban bagus. Hanya sebuah pertanyaan lanjutan. Anda mengatakan jika titik data non-linear seperti yang ditunjukkan pada gambar di atas maka PCA tidak akan berfungsi dan PCA kernel diperlukan. Tapi bagaimana kita tahu di tempat pertama jika titik data tidak linier untuk kumpulan data yang memiliki lebih dari 4 fitur (kasus dunia nyata). Untuk memvisualisasikan data seperti itu kita perlu mengurangi dimensionalitas yang berarti kita akhirnya menggunakan PCA untuk mengurangi dimensionalitas yang salah karena data mungkin non linear dan kita menggunakan PCA normal untuk memvisualisasikan. Lalu bagaimana orang tahu apakah data non linear untuk menggunakan kernel PCA daripada PCA
Baktaawar

Terima kasih, @user. Saya kira ini tergantung pada aplikasi PCA / kPCA. Misalnya, jika diterapkan sebagai langkah preprocessing untuk beberapa klasifikasi, regresi, atau algoritma clustering, maka seseorang dapat menilai seberapa baik kinerja PCA vs kPCA dari seberapa baik kinerja algoritma selanjutnya.
Amoeba berkata Reinstate Monica

1
Terima kasih @amoeba. Tapi saya kira apa yang ingin saya tanyakan adalah bahwa seperti yang Anda sebutkan di atas, kita perlu menggunakan kPCA ketika datanya tidak linier lalu bagaimana kita tahu jika datanya memiliki non-linear jika tidak. fitur lebih dari 3 ?. Kita tidak bisa membayangkan itu tanpa mencapai dimensi dan kemudian itu seperti masalah ayam dan telur
Baktaawar

2
@Baktaawar Jika Anda melakukan pembelajaran mesin, jangan memvisualisasikan, biarkan model Anda mempelajarinya sendiri. Pada dasarnya sertakan langkah KPCA dalam loop resampling batin Anda dan uji kernel sebagai parameter, termasuk kernel linear dan yang lainnya yang Anda inginkan / mampu uji.
Firebug
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.