Greedy Search vs. Beam Search
Makine öğrenimi ve doğal dil işleme (NLP) dünyasında, en iyi sonucu bulmak için farklı arama algoritmaları kullanılır. Özellikle Greedy…
Greedy Search vs. Beam Search
Makine öğrenimi ve doğal dil işleme (NLP) dünyasında, en iyi sonucu bulmak için farklı arama algoritmaları kullanılır. Özellikle Greedy Search ve Beam Search, makine çevirisi, konuşma tanıma ve otomatik metin tamamlama gibi alanlarda yaygın olarak tercih edilir. Ancak bu iki yöntemin nasıl çalıştığını ve hangi durumlarda daha avantajlı olduğunu anlamak, en iyi modeli seçmek açısından kritik bir öneme sahiptir.
Bu makalede, Greedy Search ve Beam Search algoritmalarının nasıl çalıştığını, avantajlarını ve dezavantajlarını detaylıca inceleyeceğiz. Ayrıca, bu algoritmaların performans açısından nasıl karşılaştırıldığını değerlendireceğiz. Hadi başlayalım! 🚀
— -
Greedy Search: Açgözlü Ama Hızlı Bir Yaklaşım
Greedy Search, her adımda en yüksek olasılığa sahip seçeneği seçerek ilerleyen basit ama etkili bir algoritmadır. Ancak her zaman en iyi sonucu garanti etmez, çünkü sadece o anki en iyi görünen tercihi yaparak hareket eder.
🔹 Algoritmanın Çalışma Mantığı
- İlk kelime veya durum belirlenir.
- Olası tüm seçenekler arasından en yüksek olasılığa sahip olan tercih edilir.
- Seçilen kelime veya seçenek adım adım genişletilir ve işlem devam eder.
- Önceden belirlenen maksimum uzunluğa ulaşıldığında işlem durur.
📌 Örnek Bir otomatik metin tamamlama sistemi geliştirdiğimizi varsayalım. Kullanıcı ”Bugün hava” yazıyor ve sistemin bu cümleyi tamamlamasını istiyoruz.
- ”hava” kelimesinden sonra en yüksek olasılıklı kelime tahminleri şunlar olabilir: — “güzel” (olasılık: 0.7) — “yağmurlu” (olasılık: 0.5) — “soğuk” (olasılık: 0.4)
Greedy Search, ”güzel” kelimesini seçer çünkü en yüksek olasılığa sahiptir.
- Devamında sistem şu tahminleri yapar: — “Bugün hava güzel” → “olacak” (olasılık: 0.6) — “Bugün hava güzel” → “görünüyor” (olasılık: 0.4)
Algoritma ”olacak” kelimesini seçer.
Sonuç olarak ”Bugün hava güzel olacak” tamamlaması elde edilir.
Ancak! Eğer ”Bugün hava yağmurlu görünüyor” cümlesi gerçek durumu daha iyi yansıtıyorsa, Greedy Search bunu kaçırabilir çünkü sadece anlık en iyi seçeneği takip eder. Alternatif yolları değerlendirmediği için daha kaliteli bir sonuca ulaşma ihtimali düşüktür.
⏳ Big-O
- Zaman Karmaşıklığı:
O(d * k), ancak tek bir yol takip edildiği içinO(d)’ye indirgenebilir. - Uzay Karmaşıklığı:
O(d), çünkü sadece bir yol saklanır.
— -
Beam Search: Daha Geniş Perspektifli Bir Arama
Beam Search, Greedy Search’ten farklı olarak birden fazla alternatifi aynı anda takip eden bir algoritmadır. Beam width (ışın genişliği) adı verilen bir parametre ile her adımda en iyi ( k ) kadar alternatifi koruyarak, en iyi genel sonucu elde etmeye çalışır.
🔹 Algoritmanın Çalışma Mantığı
- İlk kelime veya başlangıç durumu belirlenir.
- Beam width kadar en iyi seçenekler takip edilir (örneğin, beam width = 2 ise her adımda en iyi 2 seçenek saklanır).
- Tüm seçenekler genişletilir ve en yüksek olasılığa sahip ( k ) seçenek korunur.
- Bu işlem belirlenen maksimum uzunluğa ulaşana kadar devam eder.
📌 Örnek Aynı otomatik metin tamamlama sisteminde Beam Search (beam width = 2) kullanarak “Bugün hava” cümlesini tamamlayalım.
- ”hava” kelimesinden sonra en yüksek olasılıklı kelime tahminleri: — “güzel” (olasılık: 0.7) — “yağmurlu” (olasılık: 0.5) — “soğuk” (olasılık: 0.4)
Beam width = 2 olduğundan en iyi iki seçenek saklanır: ”güzel” ve “yağmurlu”.
- Bu seçenekler genişletilir: — “Bugün hava güzel” → “olacak” (olasılık: 0.6) — “Bugün hava güzel” → “görünüyor” (olasılık: 0.4) — “Bugün hava yağmurlu” → “görünüyor” (olasılık: 0.7)
Sonuç: “Bugün hava güzel olacak” en yüksek olasılığa sahip olabilir, ancak Beam Search ”Bugün hava yağmurlu görünüyor” seçeneğini de değerlendirerek, Greedy Search’e kıyasla daha geniş bir bakış açısı sunar.
⏳ Big-O Analizi
- Zaman Karmaşıklığı:
O(d * k²), çünkü her adımda beam width kadar seçenek genişletilir. - Uzay Karmaşıklığı:
O(d * k), çünkü her adımda en iyi beam width kadar alternatif saklanır.
— -
Sonuç: Hangi Algoritma Daha İyi?
✔️ Greedy Search:
- Gerçek zamanlı sistemlerde hızın önemli olduğu yerlerde (örneğin, chatbotlar, klavye otomatik tamamlama).
- Hafif bir algoritma gerektiğinde.
✔️ Beam Search:
- Doğal dil işleme (NLP) uygulamalarında (örneğin, makine çevirisi, konuşma tanıma).
- Daha yüksek kaliteye sahip sonuçların gerekli olduğu durumlarda.
Eğer en iyi sonuca ulaşmak istiyorsanız ve işlem gücünüz yeterliyse, Beam Search her zaman daha iyi bir seçimdir. Ancak hızın önemli olduğu durumlarda Greedy Search hâlâ güçlü bir alternatiftir.
Eğer bu konularla ilgileniyorsanız ve daha fazla öğrenmek istiyorsanız, yorum bırakabilir veya bana sorularınızı iletebilirsiniz! 🚀
메타데이터
- post_id
- 8acd4d44af1d
- slug
- greedy-search-vs-beam-search-8acd4d44af1d
- url
- https://medium.com/@altanmehmettrkmen/greedy-search-vs-beam-search-8acd4d44af1d
- canonical_url
- https://medium.com/@altanmehmettrkmen/greedy-search-vs-beam-search-8acd4d44af1d
- author_url
- https://medium.com/@altanmehmettrkmen
- status
- ok
- fetched_at
- 2026-07-29 16:11:40