Saya telah membaca beberapa makalah yang membahas pro dan kontra dari masing-masing metode, beberapa berpendapat bahwa GA tidak memberikan perbaikan dalam menemukan solusi optimal sementara yang lain menunjukkan bahwa itu lebih efektif. Tampaknya GA umumnya lebih disukai dalam literatur (walaupun kebanyakan orang memodifikasinya dengan cara tertentu untuk mencapai hasil yang mereka butuhkan), lalu mengapa sebagian besar solusi perangkat lunak tampaknya menggunakan backpropagation saja?
Apakah ada aturan umum kapan harus menggunakan satu atau yang lain? Mungkin itu tergantung pada jenis NN atau ada beberapa solusi canggih yang umumnya mengungguli yang lain?
Jika mungkin saya mencari jawaban umum: yaitu, "jika NN besar, GA lebih baik", atau "GA selalu lebih baik tetapi memiliki masalah kinerja komputasi" dll ...
Salah satu masalah utama dengan jaringan saraf adalah over-fitting, yang berarti bahwa algoritma yang berusaha sangat keras untuk menemukan jaringan yang meminimalkan beberapa kriteria berdasarkan sampel data yang terbatas akan berakhir dengan jaringan yang bekerja sangat baik untuk sampel tertentu data, tetapi yang akan memiliki generalisasi yang buruk. Saya agak khawatir menggunakan GAS untuk merancang jaringan saraf karena alasan ini, terutama jika mereka melakukan optimasi arsitektur pada saat yang sama dengan mengoptimalkan bobot. Saya secara umum telah menemukan bahwa jaringan pelatihan (dengan regularisasi) dari sejumlah (katakanlah 20) vektor bobot awal acak dan kemudian membentuk sebuah ensemble dari semua jaringan yang dihasilkan pada umumnya sama baiknya dengan pendekatan apa pun.
Pada dasarnya optimasi adalah akar dari semua kejahatan dalam pembelajaran mesin, semakin banyak yang Anda lakukan, semakin besar kemungkinan Anda akan berakhir terlalu pas data.
sumber
Setiap kali Anda berurusan dengan sejumlah besar data dan Anda ingin menyelesaikan tugas belajar yang diawasi dengan jaringan saraf umpan-maju, solusi berdasarkan backpropagation jauh lebih layak. Alasan untuk ini adalah, bahwa untuk jaringan saraf yang kompleks, jumlah parameter bebas sangat tinggi. Satu proyek industri yang saat ini saya kerjakan melibatkan jaringan saraf umpan-maju dengan sekitar 1000 input, masing-masing dua lapisan tersembunyi @ 384 neuron dan 60 output. Ini mengarah ke 1000 * 384 + 384 * 384 + 384 * 60 = 554496 parameter berat yang harus dioptimalkan. Menggunakan pendekatan GA di sini akan sangat lambat.
sumber
Jawaban kedua salah. Overfitting tidak disebabkan oleh optimasi. Overfitting terjadi ketika model Anda terlalu rumit dan dapat memuat semua titik data tanpa mempelajari aturan sebenarnya yang membuatnya (yaitu hanya menghafalnya, dalam kasus ekstrem.) Ada banyak cara untuk mencegah overfitting seperti memilih model yang lebih sederhana, putus, dropconnect, penurunan berat badan, dan hanya menggunakan lebih banyak data. Tujuannya adalah untuk mengoptimalkan jaringan Anda dan membuatnya seakurat mungkin, dengan mempertimbangkan kendala-kendala itu.
Untuk menjawab pertanyaan, backprop seharusnya jauh lebih cepat daripada optimasi stokastik (algoritma genetika dan sejenisnya.) Dugaan saya adalah ini karena ia mengambil keuntungan dari apa yang seharusnya dihasilkan oleh output , menyesuaikan bobot pada arah yang benar berdasarkan pada itu , di mana optimasi stokastik mencoba perubahan sepenuhnya acak dan mengabaikan informasi itu.
Namun dengan menjelajahi area yang lebih luas, GAS mungkin akan melakukan yang lebih baik dalam jangka panjang dengan menghindari optimas lokal, itu hanya akan memakan waktu lebih lama untuk dilatih.
Saya ingin tahu berapa banyak GAS lebih lambat daripada backprop, dan jika ada yang tahu tentang algoritma hybrid (pencarian pencar sepertinya akan ideal untuk ini.)
sumber
Saya perbedaan antara GA dan backpropagation adalah bahwa GA didasarkan pada angka acak dan backpropagation didasarkan pada algoritma statis seperti penurunan gradien stokastik. GA yang didasarkan pada angka acak dan menambah mutasi itu berarti kemungkinan akan menghindari tertangkap dalam minimum lokal. Tetapi GA yang didasarkan pada angka acak berarti kemungkinan untuk 2 kali berbeda saat Anda menjalankan pembelajaran di jaringan yang sama, GA mungkin mencapai kesimpulan yang berbeda yaitu seperangkat bobot yang berbeda.
sumber