Yanıtlar:
En dik yokuş tırmanma algoritmaları dışbükey optimizasyon için iyi çalışır. Bununla birlikte, gerçek dünya sorunları genellikle dışbükey olmayan optimizasyon tipindedir: birden fazla tepe noktası vardır. Bu gibi durumlarda, bu algoritma rastgele bir çözümle başladığında, küresel tepe yerine yerel piklerden birine ulaşma olasılığı yüksektir. Simüle Tavlama gibi iyileştirmeler, algoritmanın yerel bir zirveden uzaklaşmasına izin vererek ve böylece küresel zirveyi bulma olasılığını artırarak bu sorunu iyileştirir.
Açıkçası, sadece bir tepe ile basit bir sorun için, en dik yokuş tırmanış her zaman daha iyidir. Küresel bir zirve bulunursa erken durdurmayı da kullanabilir. Buna karşılık, simüle edilmiş bir tavlama algoritması aslında küresel bir zirveden uzaklaşır, geri döner ve tekrar uzaklaşır. Bu, yeterince soğuyana veya önceden ayarlanmış belirli sayıda yineleme tamamlanana kadar tekrarlanır.
Gerçek dünya sorunları gürültülü ve eksik verilerle ilgilenir. Stokastik bir tepe tırmanma yaklaşımı, daha yavaş olsa da, bu sorunlara karşı daha sağlamdır ve optimizasyon rutini, en dik tepe tırmanma algoritmasına kıyasla küresel zirveye ulaşma olasılığının daha yüksek olduğunu göstermektedir.
Epilog: Bu, bir çözüm tasarlarken veya çeşitli algoritmalar arasında seçim yaparken kalıcı bir soru ortaya çıkaran iyi bir sorudur: performans-hesaplama maliyeti ödünleşimi. Şüphelendiğiniz gibi, cevap her zaman: algoritmanızın önceliklerine bağlıdır. Bir grup veri üzerinde çalışan bazı çevrimiçi öğrenme sisteminin bir parçasıysa, güçlü bir zaman kısıtlaması vardır, ancak performans kısıtlaması zayıftır (sonraki veri grupları, ilk veri toplu işleminin getirdiği hatalı önyargı için düzeltilecektir). Öte yandan, mevcut tüm verilerin eldeki bir çevrimdışı öğrenme görevi ise, performans ana kısıttır ve stokastik yaklaşımlar tavsiye edilir.
Önce bazı tanımlarla başlayalım.
Tepe tırmanma bir arama algoritması sadece bir döngü çalıştırır ve sürekli artan değer yönünde, yani yokuş yukarı yönde hareket eder. Döngü zirveye ulaştığında sona erer ve hiçbir komşu daha yüksek bir değere sahip olmaz.
Tepeye tırmanmanın bir çeşidi olan stokastik tepe tırmanışı , yokuş yukarı hareketler arasından rastgele seçer. Seçim olasılığı yokuş yukarı hareketin dikliğine göre değişebilir. Bilinen iki yöntem şunlardır:
İlk tercih edilen tepeye tırmanma: mevcut durumdan daha iyi olana kadar rasgele halefler oluşturur. * Devletin ardılları çok büyükse (binlerce veya milyonlarca gibi) iyi kabul edilir.
Rastgele yeniden başlatılan tepe tırmanışı:"Eğer başaramazsan, tekrar dene" felsefesi üzerine çalışır.
Şimdi cevabınıza. Stokastik tepe tırmanışı birçok durumda daha iyi performans gösterebilir . Aşağıdaki durumu düşünün. Görüntü durum-uzay manzarasını göstermektedir. Resimdeki örnek Yapay Zeka: Modern Bir Yaklaşım adlı kitaptan alınmıştır .
Mevcut durumda gösterilen noktada olduğunuzu varsayalım. Basit tepe tırmanma algoritması uygularsanız, yerel maksimuma ulaşırsınız ve algoritma sona erer. Daha optimal objektif fonksiyon değerine sahip bir durum olmasına rağmen, algoritma yerel bir maksimumda sıkıştığından oraya ulaşamaz. Algoritma düz yerel maksimuma da takılabilir .
Rastgele yeniden başlatma tepe tırmanışı, rastgele oluşturulan başlangıç durumlarından bir hedef durumu bulunana kadar bir dizi tepe tırmanma araması yapar.
Tepeye tırmanmanın başarısı, devlet-uzay manzarasının şekline bağlıdır. Sadece birkaç yerel maxima, düz platolar varsa; rasgele yeniden başlatılan tepe tırmanışı çok hızlı bir şekilde iyi bir çözüm bulacaktır. Çoğu gerçek yaşam problemi çok kaba durum-uzay manzarasına sahiptir, bu da onları tepe tırmanma algoritması veya herhangi bir varyantı kullanmak için uygun hale getirmez.
NOT: Tepe Tırmanma Algoritması , yalnızca maksimum değerleri değil , minimum değeri bulmak için de kullanılabilir . Cevabımda maksimum terimini kullandım. Minimum değerler arıyorsanız, grafik dahil her şey ters çevrilir.
Ben de bu kavramlar için yeniyim, ama anladığım gibi, stokastik tepe tırmanışı hesaplama zamanının değerli olduğu durumlarda (fitness fonksiyonunun hesaplanmasını içerir) daha iyi performans gösterecektir, ancak en iyiye ulaşmak gerçekten gerekli değildir olası çözüm. Yerel bir optimum bile ulaşmak tamam olurdu. Bir sürüde çalışan robotlar bunun kullanılabileceği bir örnek olacaktır.
En dik tepe tırmanışında gördüğüm tek fark, sadece komşu düğümleri değil, aynı zamanda komşuların ardıllarını da aramasıdır, tıpkı bir satranç algoritmasının en iyi hamleyi seçmeden önce daha fazla hamle nasıl aradığı gibi.