Apakah memutihkan selalu baik?

27

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.

Ran
sumber
1
dapatkah Anda memberikan referensi untuk memutihkan?
Atilla Ozgur
2
Saya pikir utas ini adalah sebuah rintisan. Itu harus benar-benar diperluas. - - Jawaban yang saat ini diterima memiliki sedikit informasi. - - Saya akan menerima dan membuka hadiah di sini.
Léo Léopold Hertz 준영
Pertanyaan Anda juga bias, dengan memiliki "selalu" di sana. Tentu saja pemutihan tidak selalu baik. Juga, tentukan jenis pemutih. Saya pikir itu mengarah pada jawaban yang tidak begitu konstruktif di sini. - - Tentukan jenis data yang akan digunakan. - - Saya pikir pertanyaan yang lebih baik adalah Bagaimana Anda dapat meningkatkan penerapan pemutihan ini pada data yang cukup bagus ini? . - - @AtillaOzgur Satu sumber en.wikipedia.org/wiki/Whitening_transformation jika transformasi dasar pemutihan dipertimbangkan.
Léo Léopold Hertz 준영

Jawaban:

13

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:

Secara khusus, pemutihan bekerja dengan baik dalam kasus ACF eksponensial (yang sesuai dengan hasil Monakov) tetapi kurang baik dalam kasus yang Gaussian. Setelah percobaan numerik, kami menemukan bahwa kasus Gaussian secara numerik tidak dikondisikan dalam arti bahwa jumlah kondisi (rasio nilai eigen maksimum dan minimal) sangat besar untuk matriks kovariansi Gaussian.

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

andreister
sumber
2
seperti yang saya pahami, ia bekerja dengan baik jika matriks kovarians diperkirakan dengan baik. Bisakah seseorang mengomentari ini? Terima kasih.
Berlari
3
Kutipan di atas tidak mengacu pada matriks kovarians yang diperkirakan buruk (meskipun itu juga akan bermasalah). Dikatakan bahwa untuk matriks kovarians yang ditentukan dengan sempurna, masih bisa sulit untuk secara akurat melakukan faktorisasi yang diperlukan (dan transformasi data terkait). Hal ini disebabkan oleh pengondisian numerik , yang berarti kesalahan pembulatan dengan presisi hingga mencemari perhitungan.
GeoMatt22
2
Ini adalah jawaban yang tidak memadai. Sebagian besar telah menyalin materi yang tidak terkait. - - Jawaban ini harus benar-benar diperluas. Itu sebuah rintisan.
Léo Léopold Hertz 준영
20

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Σ=XX

ΣΦ=ΦΛ

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:

(1)ΦΣΦ=Λ

Jadi untuk mende-korelasikan satu vektor , kita lakukan:xi

(2)xi=Φxi

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:Λ

Λ1/2ΛΛ1/2=I

Secara setara, sebagai pengganti dalam , kami menulis:(1)

Λ1/2ΦΣΦΛ1/2=I

Jadi, untuk menerapkan transformasi pemutihan ini ke kita cukup mengalikannya dengan faktor skala ini, mendapatkan titik data yang diputihkan : x ixsayaxsaya

(3)xsaya=Λ-1/2xsaya=Λ-1/2Φxsaya

Sekarang kovarians tidak hanya diagonal, tetapi juga seragam (putih), karena kovarians , .xsayaxsayaE(xsayaxsaya)=saya

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

tdc
sumber
2
Terima kasih atas klarifikasi, Anda benar. Saya mengacu pada de-korelasi. btw: pada akhirnya Anda menulis bahwa pemutihan hanya dilakukan untuk data pelatihan. Sejauh yang saya tahu, Anda menghitung matriks dari data pelatihan, tetapi Anda melakukannya pada data pelatihan & tes.
Berlari
@Bisa ya itu yang saya maksud ... Saya akan memperbarui jawabannya
tdc
Alangkah baiknya jika Anda juga bisa menawarkan bagian dalam jawaban Anda. Memiliki intro, ringkasan, dan hal-hal matematika. - - Saya pikir Anda tidak masuk cukup dalam dalam jawaban Anda. - - Jawaban Anda sebagian besar mencakup proposisi sepele tetapi tidak cukup mendalam dalam topik ini. Anda hanya memiliki materi copy-paste dasar dari catatan kuliah tetapi sangat sedikit pekerjaan sendiri untuk topik tersebut.
Léo Léopold Hertz 준영
jadi secara sederhana, lakukan pca untuk mendapatkan fitur-fitur yang tidak dikorelasikan, dan kemudian periksalah fitur baru, bagi dengan varian untuk mendapatkan fitur yang memutih.
alpukat
1

Dari http://cs231n.github.io/neural-networks-2/

Salah satu kelemahan dari transformasi ini adalah ia dapat sangat membesar-besarkan noise dalam data, karena ia meregangkan semua dimensi (termasuk dimensi varians kecil yang tidak relevan yang sebagian besar noise) dengan ukuran yang sama dalam input. Dalam praktiknya, ini dapat dikurangi dengan ...

Sayangnya saya tidak cukup berpendidikan untuk berkomentar lebih lanjut tentang ini.

DharmaTurtle
sumber
Tolong, sebutkan bentuk suara mana yang dilebih-lebihkan. Referensi Anda sangat ketat. Itu hanya ilmu komputer dasar tentang topik yaitu white noise dengan pendekatan jaringan saraf kuno. - - Pekerjaan yang dilebih - lebihkan juga harus didefinisikan.
Léo Léopold Hertz 준영
Menurut saya, ini hanya terkait dengan penskalaan semua fitur untuk memiliki varian yang sama, bukan? Jadi, jika ada fitur yang variansnya di set pelatihan berisik, kami mungkin berharap varian keseluruhan fitur ini jauh lebih kecil daripada fitur lain; transformasi ini akan membuat fitur "noise" dan fitur lainnya memiliki varian yang sama, dan dapat dilihat sebagai "noise penguatan".
ijoseph