Pemilihan fitur menggunakan pembelajaran mendalam?


9

Saya ingin menghitung pentingnya setiap fitur input menggunakan model yang mendalam.

Tetapi saya hanya menemukan satu makalah tentang pemilihan fitur menggunakan pembelajaran mendalam - pemilihan fitur dalam . Mereka menyisipkan lapisan node yang terhubung ke setiap fitur secara langsung, sebelum lapisan tersembunyi pertama.

Saya mendengar bahwa jaringan kepercayaan yang mendalam (DBN) dapat juga digunakan untuk pekerjaan semacam ini. Tapi saya pikir, DBN hanya menyediakan abstraksi (cluster) fitur-fitur seperti PCA, jadi meskipun dapat mengurangi dimensi secara efektif, saya bertanya-tanya apakah mungkin untuk menghitung pentingnya (berat) setiap fitur.

Apakah mungkin untuk menghitung pentingnya fitur dengan DBN? Dan adakah metode lain yang diketahui untuk pemilihan fitur menggunakan pembelajaran yang mendalam?

Jawaban:


10

Satu pendekatan yang dapat Anda lakukan untuk hampir semua model prediksi adalah dengan terlebih dahulu melatih model Anda dan menemukan akurasinya, kemudian untuk satu input tambahkan beberapa noise ke sana dan periksa kembali keakuratannya. Ulangi ini untuk setiap input dan amati bagaimana noise memperburuk prediksi. Jika suatu input penting maka ketidakpastian tambahan karena kebisingan akan merugikan.

Ingat mengatur varians noise agar proporsional dengan varians input yang dimaksud.

Tentu saja noise acak dan Anda tidak ingin satu input muncul tidak penting karena efek acak. Jika Anda memiliki beberapa contoh pelatihan, maka pertimbangkan untuk berulang kali menghitung perubahan dalam akurasi untuk setiap contoh pelatihan dengan suara baru yang ditambahkan setiap kali.

Menanggapi komentar:

Analisis ini juga dapat dilakukan dengan menghapus variabel sepenuhnya tetapi ini memiliki beberapa kelemahan dibandingkan dengan menambahkan noise.

  • Misalkan salah satu input Anda adalah konstan, ia bertindak seperti istilah bias sehingga memiliki beberapa peran untuk dimainkan dalam prediksi tetapi tidak menambah informasi. Jika Anda menghapus input ini seluruhnya maka prediksi akan menjadi kurang akurat karena perceptron mendapatkan bias yang salah. Ini membuat input tampak penting untuk prediksi walaupun tidak ada informasi. Menambahkan noise tidak akan menyebabkan masalah ini. Poin pertama ini bukan masalah jika Anda telah menstandarisasi semua input agar memiliki mean nol.

  • Jika dua input dikorelasikan maka informasi tentang satu input memberikan informasi tentang yang lainnya. Sebuah model dapat dilatih dengan baik jika Anda hanya menggunakan salah satu input yang berkorelasi sehingga Anda ingin analisis menemukan bahwa satu input tidak membantu. Jika Anda baru saja menghapus salah satu input, seperti poin pertama yang dibuat, keakuratan prediksi akan menurun banyak yang menunjukkan bahwa itu penting. Namun, menambahkan noise tidak akan menyebabkan masalah ini.


2
Hugh, saya terbiasa melakukan itu dengan menghapus fitur. Apa keuntungan mengganti fitur dengan noise?
Dal

@Dan saya tidak bermaksud bahwa fitur tersebut harus sepenuhnya diganti dengan noise, hanya saja beberapa noise harus ditambahkan. Menghapus fitur dapat membuat fitur yang tidak penting terlihat penting jika mereka memiliki nilai tidak nol atau jika mereka berkorelasi dengan variabel lain. Saya sudah mengedit jawaban saya untuk menjelaskan.
Hugh

Terima kasih atas komentarnya. Tetapi sebenarnya saya memiliki sejumlah set fitur (input) dan banyak dari mereka yang berkorelasi. Dalam hal ini, mungkin waktu komputasi akan mendekati n! karena saya perlu mempertimbangkan kombinasi. Jadi saya ingin menerapkan model berbasis pembelajaran mendalam yang dapat mempertimbangkan kombinasi fitur yang kompleks.
z991

@ z991 dalam regresi linier multivariabel masalah yang sama dapat terjadi dengan variabel yang tidak berkorelasi sempurna. Seringkali kami memperkenalkan setiap variabel satu per satu atau menggunakan semua variabel dan menghapusnya satu per satu. Tidak ada cara untuk hanya menghitung kombinasi terbaik. Jika itu belum diselesaikan untuk regresi linier Anda tidak akan menemukan solusi untuk NN. Anda bisa mengambil pendekatan yang sama dan menghapus variabel satu per satu dan menghindari n! komputasi.
Hugh

1
@ Besar Terima kasih atas komentarnya. Saya setuju dengan kamu. Tapi yang saya benar-benar ingin tahu adalah bagaimana menghitung pentingnya setiap fitur dengan pembelajaran yang mendalam, atau jaringan saraf. Karena mereka menggunakan beberapa ekstraksi fitur (lapisan tersembunyi), sulit bagi saya untuk menganalisis pentingnya fitur. Dimungkinkan untuk menghitung seluruh bobot dari setiap fitur, tetapi tampaknya cukup kompleks dan memakan waktu. Kertas yang ditautkan menggunakan lapisan linear tunggal dan saya pikir itu ide yang bagus. Saya ingin tahu metode lain yang lebih baik untuk menganalisis pentingnya fitur di jaringan.
z991

2

Mungkin periksa makalah ini: https://arxiv.org/pdf/1712.08645.pdf

Mereka menggunakan fitur dropout untuk menentukan peringkat.

... Dalam karya ini kami menggunakan konsep Dropout pada layer fitur input dan mengoptimalkan tingkat dropout berdasarkan fitur. Karena setiap fitur dihapus secara stokastik, metode kami menciptakan efek yang mirip dengan fitur bagging (Ho, 1995) dan mengelola untuk memeringkat fitur yang berkorelasi lebih baik daripada metode non-bagging lainnya seperti LASSO. Kami membandingkan metode kami dengan Hutan Acak (RF), LASSO, ElasticNet, peringkat Marginal dan beberapa teknik untuk mendapatkan kepentingan dalam DNN seperti Pemilihan Fitur Mendalam dan berbagai heuristik ...


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.