Bagaimana cara melakukan pemodelan Neural Network secara efektif?

13

Apa yang harus menjadi rasio jumlah pengamatan dan jumlah variabel? Bagaimana mendeteksi overfitting pada model jaringan saraf dan apa cara untuk menghindari overfitting? Jika saya ingin melakukan klasifikasi dengan Neural Network, haruskah kelas memiliki frekuensi yang sama? Tolong bantu saya.

asad.taj
sumber
1
Apakah Anda benar-benar membutuhkan NN? Metode ini agaknya dianggap usang (sebagian karena sangat sulit untuk secara umum menjawab pertanyaan Anda).
1
@ MBb: mungkin ini harus menjadi pertanyaan terpisah, tetapi bisakah Anda memperluas pernyataan Anda bahwa Neural Networks dianggap usang? (dan oleh siapa?)
naught101
1
@ naught101 Ini adalah komentar dari 2010 ... Saat ini kami sedih memiliki kebangkitan kegilaan ini sehingga kami harus menunggu beberapa tahun sehingga NNs akan menjadi usang lagi (;
1
@ MBb: itu tidak menjawab pertanyaan saya. Tapi mungkin ini tidak: stackoverflow.com/questions/683124/neural-networks-obsolete
naught101

Jawaban:

25

Saran yang akan saya berikan adalah sebagai berikut:

  1. Keluarkan kemungkinan model linier (misalnya regresi logistik) sebelum melanjutkan ke jaring saraf, terutama jika Anda memiliki banyak fitur dan tidak terlalu banyak pengamatan. Untuk banyak masalah, Neural Net tidak melakukan pengklasifikasian linear sederhana, dan satu-satunya cara untuk mengetahui apakah masalah Anda ada dalam kategori ini adalah dengan mencobanya dan melihatnya.

  2. Selidiki metode kernel (misalnya Support Vector Machines (SVM), regresi logistik kernel), model proses Gaussian terlebih dahulu. Dalam kedua kasus over-fitting dikendalikan secara efektif dengan menyetel sejumlah kecil parameter-hiper. Untuk metode kernel ini sering dilakukan dengan validasi silang, untuk model proses Gaussian ini dilakukan dengan memaksimalkan kemungkinan marginal (juga dikenal sebagai "bukti" Bayesian untuk model). Saya telah menemukan bahwa jauh lebih mudah untuk mendapatkan model yang masuk akal menggunakan metode ini daripada dengan jaringan saraf, karena cara menghindari pemasangan yang berlebihan jauh lebih mudah.

  3. Jika Anda benar-benar ingin menggunakan jaringan saraf, mulailah dengan jaringan fungsi basis radial (yang diatur), daripada jaringan jenis Multilayer Perceptron (MLP) feedforward.

  4. Jika Anda menggunakan MLP, maka gunakan regularisasi. Jika Anda melakukannya, itu akan kurang sensitif terhadap pilihan tentang arsitektur, seperti mengoptimalkan jumlah unit tersembunyi. Sebaliknya, yang harus Anda lakukan adalah memilih nilai yang baik untuk parameter regularisasi. "Kerangka kerja bukti" Bayesian dari MacKay menyediakan metode yang baik untuk mengatur parameter regularisasi. Jika Anda menggunakan regularisasi, maka jumlah pengamatan dan jumlah variabel menjadi jauh lebih sedikit dari masalah.

Untuk mendeteksi pemasangan berlebihan, cukup lakukan validasi silang untuk menguji kinerja generalisasi.

Adapun kelas memiliki frekuensi yang sama, hal yang perlu diingat adalah bahwa jika Anda melatih model dengan set pelatihan seimbang, tetapi kelas tidak seimbang dalam data operasional, maka model sangat mungkin untuk meremehkan kelas minoritas. Jika Anda menggunakan pengklasifikasi probabilistik seperti regresi logistik atau jaringan saraf, Anda selalu dapat memperbaiki estimasi probabilitas untuk memperhitungkannya setelah pelatihan. Jika dataset Anda sangat tidak seimbang, saya akan merekomendasikan pembobotan diferensial pola dari kelas positif dan negatif, dengan faktor pembobotan yang dipilih oleh validasi silang.

Namun, ketika kelas sangat tidak seimbang, biasanya kesalahan palsu-negatif dan positif palsu memiliki biaya perbedaan (misalnya dalam tes skrining medis, false-negatif jauh lebih buruk daripada false-positif). Jadi seringkali yang perlu Anda lakukan adalah memasukkan biaya kesalahan klasifikasi ke dalam fungsi kesalahan yang digunakan untuk melatih jaringan.

Jika Anda adalah pengguna MATLAB (seperti saya), saya sangat merekomendasikan perangkat lunak NETLAB (Ian Nabney dan Chris Bishop) atau perangkat lunak yang menyertai buku Gaussian Process for Machine Learning oleh Rasmussen dan Williams. Saya bisa sangat merekomendasikan buku "Jaringan saraf untuk pengenalan pola" oleh Chris Bishop untuk siapa saja yang memulai dalam jaring saraf. Ini adalah buku yang brilian, dan mencakup materi dengan sangat jelas dan tingkat minimum matematika yang diperlukan untuk benar-benar memahami apa yang Anda lakukan, dan sebagian besar diimplementasikan dalam perangkat lunak NETLAB (yang juga dapat berjalan di bawah oktaf).

HTH

PS Cara terbaik pemodelan dengan jaringan syaraf mungkin menggunakan pendekatan Bayesian berdasarkan Hybrid Monte Carlo (HMC), seperti yang dikembangkan oleh Radford Neal. Secara umum masalah mulai dalam pemodelan ketika Anda mencoba dan mengoptimalkan beberapa parameter dan Anda berakhir terlalu pas. Solusi terbaik adalah tidak pernah mengoptimalkan apa pun dan memarginalkan (mengintegrasikan) parameter sebagai gantinya. Sayangnya integrasi ini tidak dapat dilakukan secara analitis, jadi Anda perlu menggunakan pendekatan berbasis pengambilan sampel sebagai gantinya. Namun, ini (a) mahal secara komputasi dan (b) sedikit "seni hitam" dan membutuhkan pemahaman dan pengalaman yang mendalam.

Dikran Marsupial
sumber