pembelajaran mendalam untuk tugas-tugas non-gambar non-NLP?

12

Sejauh ini ada banyak aplikasi menarik untuk pembelajaran mendalam dalam visi komputer atau pemrosesan bahasa alami.

Bagaimana di bidang lain yang lebih tradisional? Sebagai contoh, saya memiliki variabel sosio-demografis tradisional plus mungkin banyak pengukuran laboratorium dan ingin memprediksi penyakit tertentu. Apakah ini akan menjadi aplikasi pembelajaran yang mendalam jika saya memiliki banyak pengamatan? Bagaimana saya membangun jaringan di sini, saya pikir semua lapisan mewah (convolutional dll) tidak benar-benar diperlukan ?! Hanya membuatnya dalam?

Pada set data spesifik saya, saya mencoba beberapa algoritma pembelajaran mesin umum seperti hutan acak, gbm dll dengan hasil yang beragam mengenai akurasi. Saya memiliki pengalaman belajar yang terbatas dengan pengenalan gambar.

spore234
sumber
1
Anda mungkin lebih baik melihat pendekatan yang berbeda, misalnya XGBoost, tergantung pada seberapa banyak "banyak pengamatan". Dapatkah Anda mengklarifikasi apakah tujuan Anda adalah secara khusus untuk mencoba pendekatan pembelajaran yang mendalam, atau untuk mendapatkan akurasi terbaik?
Neil Slater
@NeilSlater tujuan saya adalah untuk mencapai akurasi yang lebih tinggi daripada metode yang ditetapkan seperti xgboost, jika itu mungkin dalam kasus seperti itu
spore234
1
Itu mungkin, tetapi menurut pengalaman saya tidak mungkin kecuali Anda benar-benar memiliki banyak data.
Neil Slater
Matlab menyediakan dokumentasi tentang "Tips dan Trik Pembelajaran Mendalam". Saya memiliki pertanyaan yang sama dan halaman menyediakan panduan yang sangat berguna di sepanjang contoh yang baik. misalnya Anda mungkin perlu urutan ke urutan / klasifikasi deret waktu / regresi menggunakan pembelajaran yang mendalam.
Sami Navesi

Jawaban:

10

Ya, Anda dapat menggunakan teknik pembelajaran mendalam untuk memproses data non-gambar. Namun, kelas model lain masih sangat kompetitif dengan jaringan saraf di luar pemrosesan sinyal dan tugas terkait.

Untuk menggunakan pendekatan pembelajaran mendalam pada data non-sinyal / non-sekuens, Anda biasanya menggunakan jaringan multi-layer umpan-maju sederhana. Tidak perlu lapisan konvolusional atau lapisan penyatuan. Arsitektur terbaik selain itu perlu dieksplorasi dengan validasi silang, dan bisa memakan waktu lama untuk menemukannya karena NN dalam membutuhkan banyak komputasi untuk dilatih.

Dalam pengalaman saya mencoba menggunakan jaringan saraf yang dalam (-ish, biasanya ~ 5 lapisan) dalam kompetisi Kaggle:

  • Putus sekolah masih sangat efektif untuk regularisasi dan meningkatkan akurasi

  • Input normalisasi - biasanya berarti 0, standar deviaton 1, adalah penting

  • Fungsi aktivasi lapisan tersembunyi dapat membuat perbedaan. Meskipun ReLU mengurangi beberapa masalah dengan menghilangnya gradien, dalam pengalaman saya itu kurang kuat dengan data non-sinyal dan Anda akan menginginkan beberapa bentuk lainnya. Jika Anda hanya memiliki beberapa lapisan, maka sigmoid atau tanh masih berfungsi OK. Jika tidak, lihatlah varian ReLU, PReLU, ELU, dan varian ReLU lainnya yang bocor yang berupaya menambal masalahnya dengan neuron "mati".

  • Manfaatkan optimisers yang dirancang untuk pembelajaran mendalam, seperti Adam, Adagrad atau RMSProp

  • Gunakan pendekatan inisialisasi bobot yang bekerja dengan pembelajaran mendalam, seperti Glorot.

  • Pertimbangkan untuk menggunakan lapisan Normalisasi Batch. Bukan sesuatu yang saya punya banyak pengalaman, tetapi saya telah melihat orang lain melakukannya dengan baik dengan pendekatan ini.

Terlepas dari semua ini, XGBoost dapat secara rutin dan mudah mengalahkan NN dalam dengan penyetelan minimal dan upaya pelatihan sebagai perbandingan (tentu saja tergantung pada masalah dan data yang Anda miliki). Namun, jika keakuratan adalah segalanya bagi Anda, dimungkinkan - meskipun tidak dijamin - bahwa ansambel NN dalam dan model lain seperti XGBoost akan berkinerja lebih baik daripada keduanya.

Neil Slater
sumber
1

Suatu jaringan dapat sesuai untuk keperluan klasifikasi. Untuk ini, Anda harus dapat mendefinisikan set-pelatihan dan set-uji data Anda yang mewakili data jaringan yang akan diminta untuk diklasifikasikan dalam produksi. Ini menentukan apakah Anda bisa mendapatkan jaringan kerja yang buruk, masuk akal atau baik.

Saya menganggap istilah sebagai "pembelajaran mendalam" sebagai menyesatkan: jaringan tidak belajar, Anda hanya bisa melatihnya.

Dengan asumsi Anda dapat membuat set pelatihan dan tes, pada level tinggi Anda dapat menggunakan a

  • Multi-layer: jika data Anda tidak memiliki urutan dan struktur memiliki posisi tetap.

  • Jaringan rekursif: jika urutan data penting untuk klasifikasi

  • Konvolusi: jika data Anda memiliki struktur seperti pada gambar tetapi tidak ada posisi tetap.

Untuk mendapatkan pengaturan yang baik, seperti jumlah lapisan, membutuhkan percobaan dan kesalahan; itu semacam sihir hitam.

Johan van Breda
sumber