Nöral ağların aksine genetik algoritmaları ne zaman kullanmalıyım? [kapalı]


139

Bir problemi çözmek için sinir ağlarının aksine (veya tersi) genetik algoritmaların ne zaman kullanılacağını belirlemek için bir başparmak kuralı (veya bir dizi örnek) var mı?

Her iki yöntemin de karıştırılabileceği durumlar olduğunu biliyorum, ancak iki yöntem arasında üst düzey bir karşılaştırma arıyorum.


3
Denetimli ve denetimsiz olmak üzere iki tür sinir ağı olduğunu belirtmek gerekir. Süpervize edilmiş, insandan süpervizörsüz bir geribildirimden eğitim verileri alır ve bu bakımdan GA'lara benzer.
Chris S

3
Hiç "list-y" olduğunu sanmıyorum. Cevaplar iki yöntemi karşılaştırır ve birinin diğerine ne zaman kullanılacağını açıklar.
Neil N

Kısa cevap: modelleme işlevi sürekli / ayrık değilse veya veri kümesi astronomik olarak yüksek boyutlu olduğunda GA kullanın. Size en iyi sonucu veren şeylere bağlı olarak geri kalanı için sinir ağları veya GA (veya başka bir model) kullanın. Daha fazla bilgi için cevabımı buraya bakın: stackoverflow.com/a/49684833/1121352
gaborous

Yanıtlar:


130

Vikipedi'den:

Bir genetik algoritma (GA) hesaplamada kullanılan bir arama tekniğidir bulmak tam veya yaklaşık çözümler optimizasyon ve problemleri arayın.

ve:

Sinir ağları doğrusal olmayan istatistiksel veri modelleme araçlarıdır. Girdiler ve çıktılar arasındaki karmaşık ilişkileri modellemek veya verilerdeki kalıpları bulmak için kullanılabilirler.

Bir çözümün değerini ölçebileceğiniz bir sorununuz varsa, genetik bir algoritma çözüm alanının yönlendirilmiş bir aramasını yapabilir . (Örneğin, iki nokta arasındaki en kısa rotayı bulun)

Farklı sınıflarda çok sayıda öğeniz olduğunda, bir sinir ağı daha önce "görmediği" öğeleri sınıflandırmayı "öğrenebilir" . (Ör. Yüz tanıma, ses tanıma)

Uygulama süreleri de dikkate alınmalıdır. Genetik bir algoritmanın kabul edilebilir bir çözüm bulması uzun zaman alır. Bir sinir ağının "öğrenmesi" uzun zaman alır, ancak yeni girişleri neredeyse anında sınıflandırabilir.


13
GA tanımına biraz eklemek istiyorum. Bazen insanlar bir GA sorununun çözüm alanını bir dizi durum veya değer olarak düşünürler. "Bir satranç tahtası üzerinde bir mat arkadaşı oluşturmak için dört satranç taşından oluşan bir setin tüm yollarını bulun." Ancak çözüm alanı bir dizi algoritma da olabilir. Genetik algoritmaların gerçek gücü burada devreye giriyor. "Şah matla sonuçlanacak belirli bir satranç taşını kullanarak bir dizi hamle bul" gibi bir soruyu yanıtlamanıza yardımcı olurlar.
lfalin

44

Genetik bir algoritma (seksi ismine rağmen), çoğu amaç için bir optimizasyon tekniğidir . Öncelikle bir dizi değişkene sahip olmak ve bu değişkenler için en iyi değer kombinasyonunu bulmak istemekle ilgilidir. Oraya ulaşmak için doğal evrimden teknikler ödünç alıyor.

Sinir ağları örüntüleri tanımak için faydalıdır . Beynin basit bir modelini takip ederler ve aralarındaki bazı ağırlıkları değiştirerek, girdileri girdilere dayalı olarak tahmin etmeye çalışırlar.

Bunlar temelde farklı iki varlıktır, ancak bazen üst üste çözebilecekleri problemler.


22
Sinir ağları aslında sadece bir enterpolasyon tekniğidir. :)
Don Reba

3
Genetik algoritmalar (optimizasyon) ve sinir ağları (denetimli öğrenme) için + 1'in neredeyse hiçbir ortak yanı yoktur.
alfa

2
Tek ortak unsur, bir hedefe yaklaştıklarında kendilerini dinamik olarak yeniden düzenlemeleridir.
lfalin

1
Asla örtüşme olduğundan emin değilim. Sinir ağı, maliyet fonksiyonuna sahip bir modeldir, GA, @zenna'nın dediği gibi, bu maliyet fonksiyonunu en aza indirmek için kullanılabilecek bir optimizasyon tekniğidir.
Matthieu Brucher

37

GA'lar tanımladığınız bir yapıda yeni desenler oluşturur.

NN'ler varolan modelleri sağladığınız egzersiz verilerine göre sınıflandırır (veya tanır).

GA'lar, geniş bir durum alanı çözümünü verimli bir şekilde aramada ve bir veya daha fazla iyi çözüme yakınsamada iyi performans gösterir, ancak mutlaka 'en iyi' çözüm değildir.

NN'ler kalıpları tanımayı öğrenebilir (eğitim yoluyla), ancak öğrendiklerini anlamak, yani bilgiyi eğitildikten sonra çıkarmak ve diğer bazı (NN olmayan) bilgileri yeniden kullanmak çok zordur.


26

Burada iki farklı şeyi karşılaştırıyorsunuz.

Sinir Ağları, regresyon / sınıflandırma için kullanılır - bir dizi (x, y) örnek verildiğinde, verilen bazı x için bilinmeyen y'yi geri almak istersiniz.

Genetik algoritmalar bir optimizasyon tekniğidir. F (x) işlevi verildiğinde, f (x) değerini en aza indiren / en üst düzeye çıkaran x değerini belirlemek istersiniz.


10
Aslında. Gerçekten 'dik' tekniklerdir. Nöral net ağırlıkları ve / veya mimariyi bulmak için bir GA kullanabilirsiniz.
redcalx

23

Aralarında birçok benzerlik var, bu yüzden sadece farklılıklarını özetlemeye çalışacağım .

Nöral ağlar

Çevrimiçi kalıpları (zaman içinde değişenleri) analiz edebilir. Genellikle bu, eşleştirilmesi ve tahmin edilmesi gereken zamanla değişen bir örnektir.

Örnekler :

  • Grafik ekstrapolasyonu
  • Yüz tanıma

Genetik algoritmalar

Belirli, değişmeyen bir soruna katkıda bulunabileceğini düşündüğünüz özellikleri kodlayabildiğinizde kullanılır. Vurgu, bu nitelikleri kodlayabilmektir (bazen ne olduklarını bilirsiniz) ve problemin büyük ölçüde değişmeden olmasıdır (aksi takdirde evrimler birleşmez).

Örnekler :

  • Uçakların planlanması / sevkıyat
  • Kalkış saatleri.
  • Yapay bir ortamda basit bir ajan için en iyi özellikleri bulma
  • Rastgele çokgenler içeren bir resmin yaklaşık görüntüsünü oluşturma


8

Genetik algoritmalar (genellikle) ayrık veriler üzerinde çalışır (numaralandırmalar, tamsayı aralıkları vb.). GA'lar için tipik bir uygulama, mevcut tek alternatif kaba kuvvetli bir araştırma olduğunda (tüm kombinasyonları değerlendirirken) "yeterince iyi" bir çözüm için ayrı bir alan aramaktır.

Sinir ağları ise (genellikle) sürekli veriler (şamandıralar, vb.) Üzerinde çalışır. NN'ler için tipik bir uygulama, bir grup X giriş ve bir dizi Y çıkış içeren, ancak f: X → Y analitik fonksiyonunun bulunduğu fonksiyon yaklaşımıdır.

Tabii ki, her ikisinin de binlerce çeşidi var, bu yüzden aralarındaki çizgi biraz bulanık.


5

Pratik bir kural yok. Birçok durumda sorununuzu bunlardan herhangi birini kullanmak için formüle edebilirsiniz. Makine öğrenimi hala aktif bir araştırma alanıdır ve hangi öğrenme modelinin kullanılacağı tartışmalı olabilir.

GA'lar seksi dilleri evrimden alır, ancak bilgisayarınızın rastgele bir süreçle bir çözüme rastlamasını beklersiniz. Verilerinizi inceleyin, iyi varsayımlar yapın, ne istediğinizi öğrenmeye çalışın ve bunlardan en iyi şekilde yararlanabilecek bir yaklaşım seçin. İlk seçiminiz kötü sonuçlar verirse, neden böyle olduğunu bilin ve algoritmanın kendisini geliştirin veya daha iyi bir tane seçin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.