Apakah ICA harus menjalankan PCA terlebih dahulu?

9

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.

Samo Jerom
sumber
Karya yang diterbitkan ini menemukan efek buruk dari pengurangan dimensi berbasis PCA ke ICA.
bonobo

Jawaban:

9

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:

  • A. Hyvärinen. Algoritma Fixed-Point Fixed dan Kuat untuk Analisis Komponen Independen. Transaksi IEEE pada Jaringan Saraf 10 (3): 626-634, 1999.
  • A. Hyvärinen, J. Karhunen, E. Oja, Analisis Komponen Independen, Wiley & Sons. 2001

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.

Giancarlo
sumber
2
Ini adalah jawaban yang baik, tetapi sejauh yang saya tahu poin terakhir Anda dapat dibuat lebih kuat: hampir selalu merupakan ide yang baik untuk menggunakan langkah PCA untuk mengurangi dimensi (selain memutihkan data). Bahkan, jika dimensinya terlalu tinggi, maka ICA dapat dengan mudah menutupi dan menghasilkan komponen yang tidak berarti. Pra-pemrosesan dengan PCA sering memecahkan masalah ini (seperti yang dinyatakan dalam kutipan dalam OP).
amoeba
4

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 ...

bonobo
sumber
Seluruh jawaban Anda didasarkan pada premis bahwa menerapkan PCA hanya memutar sumbu koordinat, tetapi pada kenyataannya dengan "menerapkan PCA" orang biasanya berarti pengurangan dimensi (yaitu hanya menyimpan sebagian kecil dari PC dan menjatuhkan sisanya).
amoeba
PCA membantu Anda mengetahui dimensi mana yang harus dibuang, jika Anda mau. Saya tidak melihat bagaimana ini menyempurnakan jawaban saya.
bonobo
Sementara pekerjaan ini telah diterbitkan, mereka mengklaim menunjukkan efek buruk dari pengurangan dimensi berbasis PCA pada kualitas ICA berikutnya.
bonobo
Terima kasih untuk tautannya. Saya membaca abstrak dan sejujurnya saya skeptis. Tapi saya bukan ahli ICA dan saya mungkin tidak akan mempelajari makalah ini secara rinci.
amoeba
2

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.

Greg Ver Steeg
sumber