Biarkan data Anda (terpusat) disimpan dalam matriks dengan fitur (variabel) dalam kolom dan titik data dalam baris. Biarkan matriks kovarians memiliki vektor eigen dalam kolom dan nilai eigen pada diagonal , sehingga .n×dXdnC=X⊤X/nEDC=EDE⊤
Kemudian apa yang Anda sebut transformasi pemutihan PCA "normal" diberikan oleh , lihat mis. Jawaban saya di Cara memutihkan data menggunakan analisis komponen utama?WPCA=D−1/2E⊤
Namun, transformasi pemutihan ini tidak unik. Memang, data yang diputihkan akan tetap memutih setelah rotasi apa pun, yang berarti bahwa setiap dengan matriks ortogonal juga akan menjadi transformasi pemutihan. Dalam apa yang disebut ZCA whitening, kita mengambil (ditumpuk bersama vektor eigen dari matriks kovarians) sebagai matriks ortogonal ini, yaituW=RWPCARE
WZCA=ED−1/2E⊤=C−1/2.
Salah satu properti yang menentukan dari transformasi ZCA ( kadang-kadang juga disebut "transformasi Mahalanobis") adalah bahwa ia menghasilkan data yang diputihkan yang sedekat mungkin dengan data asli (dalam pengertian kuadrat terkecil). Dengan kata lain, jika Anda ingin meminimalkan tunduk pada diputihkan, maka Anda harus mengambil . Berikut ini adalah ilustrasi 2D:∥X−XA⊤∥2XA⊤A=WZCA
Subplot kiri menunjukkan data dan sumbu utamanya. Perhatikan bayangan gelap di sudut kanan atas distribusi: ini menandai orientasinya. Baris ditunjukkan pada subplot kedua: ini adalah vektor yang diproyeksikan. Setelah memutihkan (di bawah) distribusi terlihat bulat, tetapi perhatikan bahwa itu juga terlihat diputar --- sudut gelap sekarang di sisi Timur, bukan di sisi Utara-Timur. Baris ditunjukkan pada subplot ketiga (perhatikan bahwa mereka bukan ortogonal!). Setelah memutihkan (di bawah) distribusi terlihat bulat dan berorientasi dengan cara yang sama seperti aslinya. Tentu saja, yang bisa dapatkan dari PCA memutih data ke ZCA memutih data dengan berputar dengan .WPCAWZCAE
Istilah "ZCA" tampaknya telah diperkenalkan di Bell dan Sejnowski 1996dalam konteks analisis komponen independen, dan singkatan dari "analisis komponen fase nol". Lihat di sana untuk detail lebih lanjut. Kemungkinan besar, Anda menemukan istilah ini dalam konteks pemrosesan gambar. Ternyata, bahwa ketika diterapkan pada sekelompok gambar alami (piksel sebagai fitur, masing-masing gambar sebagai titik data), sumbu utama terlihat seperti komponen Fourier dari peningkatan frekuensi, lihat kolom pertama Gambar 1 di bawah ini. Jadi mereka sangat "global". Di sisi lain, deretan transformasi ZCA terlihat sangat "lokal", lihat kolom kedua. Ini justru karena ZCA mencoba mengubah data sesedikit mungkin, sehingga setiap baris sebaiknya lebih dekat dengan salah satu fungsi basis asli (yang akan menjadi gambar dengan hanya satu piksel aktif). Dan ini mungkin untuk dicapai,
Memperbarui
Lebih banyak contoh filter ZCA dan gambar yang diubah dengan ZCA diberikan di Krizhevsky, 2009, Mempelajari Berbagai Fitur Lapisan dari Gambar Mungil , lihat juga contoh dalam jawaban @ bayerj (+1).
Saya pikir contoh-contoh ini memberikan gambaran kapan ZCA whitening mungkin lebih disukai daripada PCA. Yaitu, gambar yang diputihkan ZCA masih menyerupai gambar yang normal , sedangkan yang diputihkan PCA tidak tampak seperti gambar normal. Ini mungkin penting untuk algoritme seperti jaringan saraf konvolusional (seperti misalnya digunakan dalam makalah Krizhevsky), yang memperlakukan piksel tetangga secara bersamaan sehingga sangat bergantung pada properti lokal gambar alami. Untuk sebagian besar algoritma pembelajaran mesin lainnya, itu harus sama sekali tidak relevan apakah data diputihkan dengan PCA atau ZCA.