Mengapa Algoritma Genetika tidak digunakan untuk mengoptimalkan jaringan saraf?

13

Dari pemahaman saya, Algoritma Genetika adalah alat yang ampuh untuk optimasi multi-tujuan.

Selain itu, pelatihan Neural Networks (terutama yang dalam) sulit dan memiliki banyak masalah (fungsi biaya non-cembung - minimum lokal, menghilang dan meledak gradien dll).

Juga saya secara konseptual melatih NN dengan GA layak. Saya bertanya-tanya, mengapa mereka tidak digunakan dalam latihan? Apakah ini masalah kinerja?

cat91
sumber

Jawaban:

5

Pelatihan Neural Networks (NNs) dengan Genetic Algorithms (GAs) tidak hanya layak, ada beberapa area khusus di mana kinerjanya cukup baik untuk sering digunakan. Contoh yang baik dari hal ini adalah Neuroevolution of augmenting topology atau NEAT , yang merupakan pendekatan yang berhasil untuk menghasilkan pengontrol di lingkungan sederhana, seperti game.

Namun dalam kasus yang lebih umum, pendekatan ini tidak skala baik ke jaringan besar, dalam dengan banyak parameter untuk disesuaikan.

Algoritma genetika dan pencarian global lainnya untuk parameter optimal sangat kuat dalam cara yang bukan algoritma berbasis gradien. Misalnya, Anda bisa melatih NN dengan aktivasi fungsi langkah, atau fungsi aktivasi lain yang tidak dapat dibedakan. Mereka memiliki kelemahan di tempat lain. Satu hal yang relevan dalam kasus GAS yang digunakan untuk NNs, adalah bahwa parameter bobot dapat dipertukarkan dalam beberapa kombinasi tetapi sangat tergantung pada kombinasi lainnya. Menggabungkan dua jaringan saraf yang sama baiknya dengan parameter yang berbeda - yang akan Anda lakukan dalam cross-over dalam GA - biasanya akan menghasilkan jaringan ketiga dengan kinerja buruk. Keberhasilan NEAT adalah sebagian dalam menemukan cara untuk mengatasi masalah itu dengan "menumbuhkan" koneksi NN dan mencocokkannya di antara jaringan saraf yang sama.

Pendekatan berbasis gradien jauh lebih efisien. Secara umum, dan bukan hanya dalam domain NNs, jika Anda dapat menghitung gradien fungsi sehubungan dengan parameter, maka Anda dapat menemukan parameter optimal lebih cepat daripada kebanyakan teknik optimisasi lainnya. Gradien yang akurat menjamin setidaknya perbaikan kecil dari evaluasi tunggal, dan sebagian besar pengoptimal lain jatuh ke dalam paradigma menghasilkan dan mencoba lagi yang tidak dapat membuat jaminan semacam itu. Kelemahan cenderung menemukan optima lokal ternyata tidak menjadi penghalang utama untuk fungsi kerugian di NNs, dan telah diatasi dengan beberapa tingkat keberhasilan menggunakan ekstensi untuk penurunan gradien dasar seperti momentum, RPROP, Adam dll.

Dalam praktiknya pada jaringan multi-layer besar, metode gradien cenderung urutan besarnya lebih cepat daripada pencarian GA seperti NEAT untuk menemukan parameter jaringan. Anda tidak akan menemukan CNN terlatih GA yang memecahkan ImageNet, atau bahkan MNIST, di mana GA telah menemukan bobot jaringan tanpa bantuan. Namun, GAS, atau setidaknya beberapa varian dari mereka, tidak 100% dikesampingkan. Misalnya blog 2017 ini mengulas makalah terkini termasuk Evolusi Gambar Skala Besar yang mengeksplorasi menggunakan GAS untuk menemukan hiperparameter NN yang merupakan tugas penting dalam pembelajaran mesin, dan tidak terlalu mudah menggunakan metode berbasis gradien.

Neil Slater
sumber
1

Sebenarnya, Google Brain sudah melakukan hal serupa untuk pengklasifikasi gambar

Meski demikian, penelitian mereka menggunakan backpropagation untuk melatih jaringan, tetapi mereka menggunakan algoritma genetika untuk menemukan arsitektur yang bagus. Satu hal lagi: untuk mendapatkan model terbaik mereka - diperlukan daya komputasi yang sangat besar.

Mereka menerbitkan makalah pertama pada tahun 2017 dan pada tahun 2018 mendapatkan versi yang lebih baik . Anda dapat membacanya di posting blog mereka

Ada penelitian lain untuk pencarian arsitektur jaringan, tetapi mereka menggunakan optimasi bayesian bukan algoritma genetika

Vadym B.
sumber