Untuk ruang masalah deterministik, saya perlu menemukan jaringan saraf dengan simpul optimal dan struktur tautan. Saya ingin menggunakan algoritma genetika untuk mensimulasikan banyak jaringan saraf untuk menemukan struktur jaringan terbaik untuk domain masalah.
Saya tidak pernah menggunakan algoritma genetika untuk tugas seperti ini sebelumnya. Apa pertimbangan praktisnya? Secara khusus, bagaimana saya harus menyandikan struktur jaringan saraf menjadi genom?
Menggunakan algoritma evolusioner untuk mengembangkan jaringan saraf disebut neuroevolution .
Beberapa algoritma neuroevolusi hanya mengoptimalkan bobot jaringan saraf dengan topologi tetap. Kedengarannya tidak seperti yang Anda inginkan. Algoritme neuroevolusi lain mengoptimalkan bobot dan topologi jaring saraf. Algoritma semacam ini tampaknya lebih sesuai untuk tujuan Anda, dan kadang-kadang disebut TWEANNs (Topologi dan Jaringan Neural Berevolusi Berat).
Salah satu algoritma populer disebut NEAT , dan mungkin merupakan tempat yang baik untuk memulai, jika hanya karena ada banyak implementasi, salah satunya mudah-mudahan ditulis dalam bahasa favorit Anda. Setidaknya itu akan memberi Anda dasar untuk bekerja.
NEAT mengkodekan genom jaringan saraf secara langsung sebagai struktur grafik. Mutasi dapat beroperasi pada struktur jaringan dengan menambahkan tautan baru (dengan menghubungkan dua node yang sebelumnya tidak terhubung) atau node baru (dengan memisahkan koneksi yang ada), atau dapat beroperasi hanya pada mengubah bobot yang terkait dengan tepi pada grafik (disebut mutating) bobot). Untuk memberi Anda gambaran tentang besarnya ukuran JST yang bekerja dengan algoritma khusus ini, kemungkinan akan kesulitan dengan lebih dari 100 atau 200 node.
Ada lebih banyak TWEANN yang dapat diukur, tetapi mereka lebih kompleks dan membuat asumsi tentang jenis struktur yang mereka hasilkan yang mungkin tidak selalu produktif dalam praktik. Misalnya, cara lain untuk menyandikan struktur jaringan saraf, adalah sebagai produk dari pola benih yang berulang kali diperluas oleh tata bahasa (misalnya sistem-L). Anda bisa lebih mudah menjelajahi struktur yang lebih besar, tetapi karena mereka dihasilkan oleh tata bahasa, mereka akan memiliki semacam perasaan berulang yang khas. HyperNEAT adalah ekstensi populer NEAT yang membuat jenis asumsi yang berbeda (bahwa pola bobot dapat dengan mudah dinyatakan sebagai fungsi geometri), dan dapat menskala ke JST dengan jutaan koneksi ketika asumsi itu cocok dengan domain tertentu.
Ada beberapa makalah survei yang tertaut di tautan teratas jika Anda ingin mengamati beragam teknik yang lebih besar.
sumber