Langkah pra-pemrosesan umum untuk algoritma pembelajaran mesin adalah memutihkan data.
Sepertinya itu selalu baik untuk melakukan pemutihan karena tidak berkorelasi dengan data, membuatnya lebih mudah untuk dimodelkan.
Kapan pemutihan tidak disarankan?
Catatan: Saya merujuk pada de-korelasi data.
Jawaban:
Pra-pemutihan adalah generalisasi fitur normalisasi, yang membuat input independen dengan mentransformasikannya terhadap matriks kovarians input yang ditransformasikan. Saya tidak bisa melihat mengapa ini hal yang buruk.
Namun, pencarian cepat mengungkapkan "Kelayakan Pemutih Data untuk Meningkatkan Kinerja Radar Cuaca" ( pdf ) yang berbunyi:
Saya tidak cukup berpendidikan untuk mengomentari ini. Mungkin jawaban untuk pertanyaan Anda adalah pemutihan selalu baik tetapi ada beberapa gotcha tertentu (misalnya, dengan data acak, itu tidak akan berfungsi dengan baik jika dilakukan melalui fungsi autokorelasi Gaussian).
sumber
Pertama, saya pikir bahwa de-korelasi dan pemutihan adalah dua prosedur terpisah.
Untuk mende-korelasikan data, kita perlu mengubahnya sehingga data yang ditransformasi akan memiliki matriks kovarians diagonal. Transformasi ini dapat ditemukan dengan memecahkan masalah nilai eigen. Kami menemukan vektor eigen dan nilai eigen terkait dari matriks kovarians dengan menyelesaikanΣ = X X′
di mana adalah matriks diagonal yang memiliki nilai eigen sebagai elemen diagonalnya.Λ
Matriks dengan demikian mendiagonalisasi matriks kovarians . Kolom adalah vektor eigen dari matriks kovarians.X ΦΦ X Φ
Kita juga dapat menulis kovarians yang didiagonalisasi sebagai:
Jadi untuk mende-korelasikan satu vektor , kita lakukan:xsaya
Elemen diagonal (nilai eigen) di mungkin sama atau berbeda. Jika kita membuat semuanya sama, maka ini disebut pemutihan data. Karena setiap nilai eigen menentukan panjang vektor eigen yang terkait, kovarians akan sesuai dengan elips ketika data tidak diputihkan, dan ke bola (memiliki semua dimensi dengan panjang yang sama, atau seragam) ketika data diputihkan. Pemutihan dilakukan sebagai berikut:Λ
Secara setara, sebagai pengganti dalam , kami menulis:( 1 )
Jadi, untuk menerapkan transformasi pemutihan ini ke kita cukup mengalikannya dengan faktor skala ini, mendapatkan titik data yang diputihkan : x † ix∗saya x†saya
Sekarang kovarians tidak hanya diagonal, tetapi juga seragam (putih), karena kovarians , .x†saya x†saya E ( x†sayax†saya′) = I
Sebagai lanjutan dari ini, saya bisa melihat dua kasus di mana ini mungkin tidak berguna. Yang pertama agak sepele, bisa terjadi bahwa penskalaan contoh data entah bagaimana penting dalam masalah inferensi yang Anda lihat. Tentu saja Anda bisa nilai eigen sebagai seperangkat fitur tambahan untuk menyiasati ini. Yang kedua adalah masalah komputasi: pertama Anda harus menghitung matriks kovarians , yang mungkin terlalu besar untuk muat dalam memori (jika Anda memiliki ribuan fitur) atau terlalu lama untuk menghitung; kedua, dekomposisi nilai eigen adalah O (n ^ 3) dalam praktiknya, yang sekali lagi cukup mengerikan dengan sejumlah besar fitur.Σ
Dan akhirnya, ada "gotcha" yang umum bahwa orang harus berhati-hati. Seseorang harus berhati-hati bahwa Anda menghitung faktor penskalaan pada data pelatihan , dan kemudian Anda menggunakan persamaan (2) dan (3) untuk menerapkan faktor penskalaan yang sama pada data uji, jika tidak Anda berisiko overfitting (Anda akan menggunakan informasi dari set tes dalam proses pelatihan).
Sumber: http://courses.media.mit.edu/2010fall/mas622j/whiten.pdf
sumber
Dari http://cs231n.github.io/neural-networks-2/
Sayangnya saya tidak cukup berpendidikan untuk berkomentar lebih lanjut tentang ini.
sumber