Kapan saya harus menggunakan algoritma genetika sebagai lawan dari jaringan saraf? [Tutup]

139

Apakah ada aturan praktis (atau serangkaian contoh) untuk menentukan kapan harus menggunakan algoritma genetika sebagai lawan dari jaringan saraf (dan sebaliknya) untuk memecahkan masalah?

Saya tahu ada beberapa kasus di mana Anda dapat memiliki kedua metode dicampur, tapi saya mencari perbandingan tingkat tinggi antara kedua metode.

Neil N
sumber
3
Ada baiknya menunjukkan ada dua jenis jaringan saraf - diawasi dan tidak diawasi. Dibimbing mendapatkan data pelatihan dari manusia, umpan balik tanpa pengawasan ke diri mereka sendiri dan lebih seperti GA dalam hal itu.
Chris S
3
Saya tidak berpikir itu "daftar-y" sama sekali. Jawabannya membandingkan dua metode, dan mengklarifikasi kapan harus menggunakan satu vs yang lain.
Neil N
Jawaban singkat: gunakan GA ketika fungsi untuk memodelkan adalah non-kontinu / diskrit, atau ketika dataset secara dimensi tinggi. Gunakan neural networks atau GA (atau model lain) untuk sisanya tergantung pada apa yang memberi Anda hasil terbaik. Untuk info lebih lanjut, lihat jawaban saya di sini: stackoverflow.com/a/49684833/1121352
gaborous

Jawaban:

130

Dari wikipedia:

Sebuah algoritma genetika (GA) adalah teknik pencarian yang digunakan dalam komputasi untuk menemukan yang tepat atau perkiraan solusi untuk optimasi dan mencari masalah.

dan:

Jaringan saraf adalah alat pemodelan data statistik non-linear. Mereka dapat digunakan untuk memodelkan hubungan yang kompleks antara input dan output atau untuk menemukan pola dalam data.

Jika Anda memiliki masalah di mana Anda dapat menghitung nilai suatu solusi, suatu algoritma genetika dapat melakukan pencarian terarah dari ruang solusi. (Misalnya menemukan rute terpendek antara dua titik)

Ketika Anda memiliki sejumlah item di kelas yang berbeda, jaringan saraf dapat "belajar" untuk mengklasifikasikan item yang belum "dilihat" sebelumnya. (Misalnya pengenalan wajah, pengenalan suara)

Waktu eksekusi juga harus dipertimbangkan. Algoritme genetik membutuhkan waktu lama untuk menemukan solusi yang dapat diterima. Jaringan saraf membutuhkan waktu lama untuk "belajar", tetapi kemudian dapat secara instan mengklasifikasikan input baru.

Dawie Strauss
sumber
13
Saya hanya ingin menambahkan sedikit ke definisi GA. Kadang-kadang orang menganggap ruang solusi masalah GA sebagai seperangkat status atau nilai. Seperti "Temukan semua cara, set empat keping catur dapat diatur di papan catur untuk membuat skakmat." Namun ruang solusi juga dapat berupa serangkaian algoritma. Di sinilah kekuatan nyata dari algoritma genetika ikut berperan. Mereka membantu Anda menjawab pertanyaan seperti "Temukan urutan gerakan dengan serangkaian bidak catur yang akan menghasilkan skakmat."
lfalin
44

Algoritma genetika (meskipun namanya seksi), untuk sebagian besar tujuan, merupakan teknik optimasi . Ini terutama bermuara pada Anda memiliki sejumlah variabel dan ingin menemukan kombinasi nilai terbaik untuk variabel-variabel ini. Itu hanya meminjam teknik dari evolusi alami untuk sampai ke sana.

Jaringan saraf bermanfaat untuk mengenali pola . Mereka mengikuti model otak yang sederhana, dan dengan mengubah sejumlah bobot di antara mereka, berupaya untuk memprediksi keluaran berdasarkan input.

Mereka adalah dua entitas yang secara fundamental berbeda, tetapi kadang-kadang masalah mereka mampu menyelesaikan tumpang tindih.

zenna
sumber
22
Jaringan saraf hanyalah teknik interpolasi. :)
Don Reba
3
+1 untuk algoritma genetika (optimisasi) dan jaringan saraf (pembelajaran terbimbing) hampir tidak memiliki kesamaan.
alfa
2
Satu-satunya elemen yang umum adalah bahwa mereka secara dinamis mengatur ulang diri mereka sendiri ketika mereka mendekati suatu tujuan.
lfalin
1
Saya tidak yakin ada tumpang tindih, sungguh. Jaringan saraf adalah model dengan fungsi biaya, GA adalah teknik optimisasi yang dapat digunakan untuk meminimalkan fungsi biaya ini, seperti kata @zenna.
Matthieu Brucher
37

GAS menghasilkan pola baru dalam struktur yang Anda tetapkan.

NN mengklasifikasikan (atau mengenali) pola yang ada berdasarkan data pelatihan yang Anda berikan.

GA berfungsi dengan baik dalam mencari solusi ruang keadaan besar secara efisien, dan menyatu pada satu atau lebih solusi yang baik, tetapi belum tentu solusi 'terbaik'.

NN dapat belajar mengenali pola (melalui pelatihan), tetapi sangat sulit untuk mengetahui apa yang telah mereka pelajari, yaitu untuk mengekstrak pengetahuan dari mereka yang pernah dilatih, dan menggunakan kembali pengetahuan di beberapa lainnya (non-NN).

Steven A. Lowe
sumber
26

Anda membandingkan dua hal yang sangat berbeda di sini.

Neural Networks digunakan untuk regresi / klasifikasi - diberikan satu set (x, y) contoh, Anda ingin mengembalikan y yang tidak diketahui untuk beberapa yang diberikan x.

Algoritma genetika adalah teknik optimasi. Diberikan fungsi f (x), Anda ingin menentukan x yang meminimalkan / memaksimalkan f (x).

bayer
sumber
10
Memang. Mereka benar-benar teknik 'ortogonal'. Anda dapat menggunakan GA untuk menemukan bobot dan / atau arsitektur jaringan saraf.
redcalx
23

Ada banyak kesamaan di antara mereka, jadi saya hanya akan mencoba menguraikan perbedaan mereka .

Jaringan saraf

Mampu menganalisis pola online (yang berubah seiring waktu). Secara umum, ini adalah sampel yang bervariasi waktu yang perlu dicocokkan dan diprediksi.

Contoh :

  • Ekstrapolasi grafik
  • Pengenalan wajah

Algoritma genetika

Digunakan saat Anda dapat mengkode atribut yang menurut Anda dapat berkontribusi pada masalah spesifik yang tidak berubah. Penekanannya adalah pada kemampuan untuk kode atribut ini (kadang-kadang Anda tahu apa itu) dan bahwa masalahnya adalah sebagian besar tidak berubah (kalau tidak evolusi tidak menyatu).

Contoh :

  • Penjadwalan pesawat / pengiriman
  • Jadwal.
  • Menemukan karakteristik terbaik untuk agen sederhana di lingkungan buatan
  • Rendering perkiraan gambar dengan poligon acak
Tidak dikenal
sumber
8

Algoritma genetika (biasanya) bekerja pada data diskrit (enum, rentang integer, dll.). Aplikasi khas untuk GAS adalah mencari ruang diskrit untuk solusi "cukup baik" ketika satu-satunya alternatif yang tersedia adalah pencarian brute-force (mengevaluasi semua kombinasi).

Jaringan saraf, di sisi lain, (biasanya) bekerja pada data kontinu (mengapung, dll.). Aplikasi tipikal untuk NN adalah aproksimasi fungsi, di mana Anda memiliki himpunan input X dan himpunan keluaran terkait, tetapi fungsi analitis f: X → Y.

Tentu saja, ada ribuan varian keduanya, sehingga garis di antara keduanya agak kabur.

nbro
sumber
5

Tidak ada aturan praktis. Dalam banyak kasus, Anda dapat merumuskan masalah Anda untuk menggunakan salah satunya. Pembelajaran mesin masih merupakan bidang penelitian aktif dan model pembelajaran mana yang dapat diperdebatkan.

GA mengambil bahasa-bahasa seksi dari evolusi tetapi Anda menunggu komputer Anda menemukan solusi melalui proses acak. Pelajari data Anda, buat asumsi yang baik, cobalah untuk mengetahui apa yang Anda inginkan dan pilih pendekatan yang dapat memanfaatkannya dengan baik. Jika pilihan pertama Anda memberikan hasil yang buruk, ketahui mengapa demikian, dan perbaiki algoritme itu sendiri atau pilih yang lebih baik.

tilish
sumber