Saya bingung tentang ZCA whitening dan normal whitening (yang diperoleh dengan membagi komponen utama dengan akar kuadrat dari nilai eigen PCA). Sejauh yang aku tahu,
mana adalah vektor eigen PCA.
Apa kegunaan dari ZCA whitening? Apa perbedaan antara pemutihan normal dan pemutihan ZCA?
pca
dimensionality-reduction
image-processing
RockTheStar
sumber
sumber
Jawaban:
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×d X d n C=X⊤X/n E D C=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=RWPCA R E
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⊤∥2 XA⊤ 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 .WPCA WZCA E
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.
sumber
Diberikan komposisi Eigend dari matriks kovarians mana adalah matriks diagonal dari nilai Eigenvalues , resort pemutih biasa untuk mengubah data menjadi ruang di mana matriks kovarians adalah diagonal: (dengan beberapa penyalahgunaan notasi.) Itu artinya kita dapat mendiagonalisasi kovarians dengan mentransformasikan data sesuai dengan
Ini adalah pemutihan biasa dengan PCA. Sekarang, ZCA melakukan sesuatu yang berbeda - ia menambahkan epsilon kecil ke nilai Eigen dan mengubah data kembali. Berikut adalah beberapa gambar dari kumpulan data CIFAR sebelum dan sesudah ZCA.
Sebelum ZCA:
Setelah ZCA denganϵ=0.0001
Setelah ZCA denganϵ=0.1
Untuk data penglihatan, data frekuensi tinggi biasanya akan berada di ruang yang dibentang oleh nilai Eigen yang lebih rendah. Karenanya ZCA adalah cara untuk memperkuat ini, mengarah ke tepi yang lebih terlihat dll.
sumber