Saya meninjau makalah berbasis aplikasi yang mengatakan bahwa menerapkan PCA sebelum menerapkan ICA (menggunakan paket fastICA). Pertanyaan saya adalah, apakah ICA (fastICA) mengharuskan PCA dijalankan terlebih dahulu?
Makalah ini menyebutkan itu
... juga berpendapat bahwa pra-penerapan PCA meningkatkan kinerja ICA dengan (1) membuang nilai eigen trailing kecil sebelum memutihkan dan (2) mengurangi kompleksitas komputasi dengan meminimalkan ketergantungan pasangan-bijaksana. PCA menghias terkait input data; dependensi tingkat tinggi yang tersisa dipisahkan oleh ICA.
Makalah lain juga menerapkan PCA sebelum ICA, misalnya yang ini .
Apakah ada pro dan kontra lain untuk menjalankan PCA sebelum ICA? Berikan teori dengan referensi.
pca
dimensionality-reduction
pattern-recognition
ica
Samo Jerom
sumber
sumber
Jawaban:
Pendekatan fastica memang memerlukan langkah pra-pemutihan: data pertama-tama ditransformasikan menggunakan PCA, yang mengarah ke matriks kovarians diagonal, dan kemudian setiap dimensi dinormalisasi sedemikian rupa sehingga matriks kovarians sama dengan matriks identitas (pemutihan).
Ada transformasi tak terbatas dari data yang menghasilkan matriks kovarian identitas, dan jika sumber Anda Gaussian, Anda akan berhenti di sana (untuk distribusi multivariat Gaussian, rerata dan kovarian adalah statistik yang cukup), di hadapan sumber non-Gaussian Anda dapat meminimalkan beberapa mengukur ketergantungan pada data yang diputihkan, karena itu Anda mencari rotasi data yang diputihkan yang memaksimalkan independensi. FastICA mencapai ini dengan menggunakan langkah-langkah teori informasi dan skema iterasi titik tetap.
Saya akan merekomendasikan karya Hyvärinen untuk mendapatkan pemahaman yang lebih dalam tentang masalah ini:
Harap dicatat bahwa melakukan PCA dan melakukan pengurangan dimensi bukanlah hal yang persis sama: ketika Anda memiliki lebih banyak pengamatan (per sinyal) daripada sinyal, Anda dapat melakukan PCA mempertahankan 100% dari varian yang dijelaskan, dan kemudian melanjutkan dengan iterasi whitening dan fixed point untuk mendapatkan estimasi komponen independen. Apakah Anda harus melakukan pengurangan dimensi atau tidak, sangat tergantung pada konteks dan didasarkan pada asumsi pemodelan Anda dan distribusi data.
sumber
Menerapkan PCA ke data Anda hanya memiliki efek memutar sumbu koordinat asli. Ini adalah transformasi linear, persis seperti transformasi Fourier misalnya. Karena itu, ia tidak dapat melakukan apa pun terhadap data Anda.
Namun, data yang direpresentasikan dalam ruang PCA baru memiliki beberapa sifat menarik. Mengikuti rotasi koordinat dengan PCA, Anda dapat membuang beberapa dimensi berdasarkan kriteria yang telah ditetapkan seperti persentase total varian yang dijelaskan oleh sumbu baru. Tergantung pada sinyal Anda, Anda dapat mencapai sejumlah besar pengurangan dimensi dengan metode ini dan ini pasti akan meningkatkan kinerja ICA berikut. Melakukan ICA tanpa membuang komponen PCA apa pun tidak akan berdampak pada hasil ICA berikut.
Selain itu, seseorang juga dapat dengan mudah memutihkan data dalam ruang PCA karena ortogonalitas sumbu koordinat. Pemutihan memiliki efek menyamakan varian di semua dimensi. Saya berpendapat bahwa ini perlu agar ICA berfungsi dengan baik. Kalau tidak, hanya beberapa komponen PCA dengan varian terbesar yang akan mendominasi hasil ICA.
Saya tidak benar-benar melihat adanya kekurangan untuk preprocessing berbasis PCA sebelum ICA.
Giancarlo mengutip referensi terbaik untuk ICA ...
sumber
Derivasi dari algoritma fastICA hanya membutuhkan pemutihan untuk satu langkah. Pertama, Anda memilih arah langkah (seperti gradient descent) dan ini tidak memerlukan data yang diputihkan. Kemudian, kita harus memilih ukuran langkah, yang tergantung pada kebalikan dari Goni. Jika data diputihkan maka Goni ini diagonal dan tidak dapat dibalik.
Jadi itu perlu? Jika Anda hanya memperbaiki ukuran langkah ke konstan (karena itu tidak memerlukan pemutihan) Anda akan memiliki keturunan gradien standar. Keturunan gradien dengan ukuran langkah kecil tetap biasanya akan menyatu, tetapi mungkin jauh lebih lambat dari metode asli. Di sisi lain, jika Anda memiliki matriks data yang besar maka pemutihannya bisa sangat mahal. Anda mungkin lebih baik bahkan dengan konvergensi yang lebih lambat yang Anda dapatkan tanpa memutihkan.
Saya terkejut tidak melihat ini dalam literatur apa pun. Satu makalah membahas masalah: Algoritma Fast-ICA Baru untuk Pemisahan Sumber Buta tanpa Prewhitening oleh Jimin Ye dan Ting Huang.
Mereka menyarankan pilihan yang agak lebih murah untuk memutihkan. Saya berharap mereka memasukkan perbandingan yang jelas dari hanya menjalankan ICA tanpa pemutihan sebagai garis dasar, tetapi mereka tidak melakukannya. Sebagai salah satu poin data lebih lanjut saya telah mencoba menjalankan fastica tanpa memutihkan masalah mainan dan itu bekerja dengan baik.
Pembaruan: referensi lain yang bagus untuk mengatasi pemutihan ada di sini: analisis komponen independen yang kuat, Zaroso dan Comon . Mereka menyediakan algoritma yang tidak memerlukan pemutihan.
sumber