Makine öğrenmesi modellerinin başarısı büyük ölçüde doğru hiperparametre seçimine bağlıdır. Geleneksel grid search ve random search yöntemleri, özellikle yüksek boyutlu parametre uzaylarında ya çok yavaş kalır ya da en iyi kombinasyonu bulmakta yetersiz olur. Bayesian optimization, bu sorunu daha akıllı bir keşif stratejisiyle çözer: geçmiş denemelerden öğrenerek en umut verici parametreleri seçer.
Neden Grid Search ve Random Search Yetersiz Kalıyor?
Grid search, tüm parametre kombinasyonlarını sırayla dener. Parametre sayısı arttıkça deneme sayısı üstel olarak büyür. Örneğin 5 parametre ve her biri için 10 değer, 100.000 deneme demektir. Random search ise rastgele örnekleme yaparak bu yükü azaltır ancak yine de her deneme bağımsızdır; önceki sonuçlardan ders çıkarmaz. Bu nedenle en iyi bölgeye yaklaşmak için çok sayıda deneme gerekebilir.
Bayesian Optimization'ın Temel Prensipleri
Bayesian optimization, iki temel bileşene dayanır: olasılıksal model (surrogate model) ve kazanç fonksiyonu (acquisition function). Olasılıksal model, mevcut denemelerin sonuçlarına dayanarak performansın parametrelere göre nasıl değiştiğini tahmin eder. Kazanç fonksiyonu ise bir sonraki denemenin hangi noktada yapılması gerektiğini belirler.
Olasılıksal Model: Surrogate Model
En yaygın kullanılan surrogate model, Gauss süreçleridir (Gaussian Process). Gauss süreci, her parametre noktası için bir ortalama ve bir belirsizlik (varyans) değeri verir. Daha önce denenmiş noktalarda belirsizlik düşük, denenmemiş bölgelerde ise yüksektir. Bu sayede model, hem bilinen iyi bölgelere odaklanır (exploitation) hem de keşfedilmemiş bölgeleri araştırır (exploration).
Kazanç Fonksiyonu (Acquisition Function)
Kazanç fonksiyonu, surrogate modelden gelen tahminleri kullanarak bir sonraki deneme noktasını seçer. Popüler fonksiyonlar arasında Expected Improvement (EI), Probability of Improvement (PI) ve Upper Confidence Bound (UCB) bulunur. EI, mevcut en iyi değere göre beklenen iyileşmeyi maksimize eder; UCB ise ortalama ve belirsizliğin bir kombinasyonunu kullanır.
Bayesian optimization, her yeni denemede surrogate modeli güncelleyerek arama sürecini dinamik olarak iyileştirir. Bu, özellikle her değerlendirmenin pahalı olduğu (örneğin büyük derin öğrenme modelleri) durumlarda büyük zaman kazancı sağlar.
Adım Adım Bayesian Optimization Uygulaması
Pratikte Bayesian optimization kullanmak için scikit-optimize, Optuna veya Hyperopt gibi kütüphaneler tercih edilir. Aşağıda Optuna ile basit bir örnek akışı yer almaktadır:
- Parametre uzayını tanımlayın: Her hiperparametre için bir dağılım belirleyin (örneğin öğrenme oranı için log-uniform, ağaç derinliği için integer).
- Hedef fonksiyonu yazın: Verilen parametrelerle modeli eğitip bir doğrulama metriği (örneğin RMSE) döndüren bir fonksiyon oluşturun.
- Optimizasyon çalışmasını başlatın: Optuna
studyobjesi ile belirtilen sayıda deneme (trial) yapın. Her denemede hedef fonksiyon çağrılır ve sonuç kaydedilir. - Sonuçları inceleyin: En iyi parametreler
study.best_paramsile alınabilir. Ayrıca optimizasyon sürecini görselleştirmek mümkündür.
Pratikte Dikkat Edilmesi Gerekenler
Bayesian optimization her derde deva değildir. Aşağıdaki noktalara dikkat etmek gerekir:
- Parametre uzayını iyi tanımlayın: Çok geniş veya mantıksız aralıklar optimizasyonu yavaşlatır.
- Erken durdurma ile birleştirin: Denemelerin erken kesilmesi, kaynakları verimli kullanır. Bu konuda Dengesiz Veri Kümelerinde Sınıflandırma rehberinde olduğu gibi, erken durdurma hiperparametre olarak da optimize edilebilir.
- Çapraz doğrulama ile sağlam sonuçlar elde edin: Özellikle zaman serisi verilerinde veri sızıntısını önlemek için uygun çapraz doğrulama stratejisi kullanın. Detaylar için Zaman Serisi Verilerinde Çapraz Doğrulama yazımıza göz atabilirsiniz.
Sık Yapılan Hatalar
- Çok az deneme yapmak: Random search'e göre daha az deneme ile iyi sonuç verse de, en az 50-100 deneme önerilir.
- Rastgele tohumları sabitlememek: Karşılaştırılabilir sonuçlar için tüm denemelerde aynı tohumu kullanın.
- Sadece bir performans metriğine odaklanmak: Bazen en düşük hata oranı değil, dengeli bir model daha önemlidir. Modelin yorumlanabilirliği de göz önünde bulundurulmalıdır. Bu bağlamda SHAP ve LIME Karşılaştırması yazımız faydalı olabilir.
Bayesian Optimization vs Diğer Yöntemler
| Yöntem | Avantaj | Dezavantaj |
|---|---|---|
| Grid Search | Basit, tüm kombinasyonları dener | Çok yavaş, boyut laneti |
| Random Search | Grid'den daha hızlı | Önceki denemelerden öğrenmez |
| Bayesian Optimization | Akıllı arama, az deneme ile iyi sonuç | Karmaşık, surrogate model seçimi önemli |
Bayesian optimization, özellikle hesaplama maliyeti yüksek olan modellerde (derin öğrenme, büyük ensemble’lar) tercih edilir. Basit modellerde random search yeterli olabilir.
Sonuç
Bayesian optimization, makine öğrenmesi hiperparametre ayarında zamandan ve kaynaktan tasarruf sağlayan güçlü bir tekniktir. Doğru kullanıldığında hem daha iyi performans hem de daha verimli bir süreç elde edilir. Optuna gibi kütüphaneler sayesinde uygulaması oldukça kolaydır. Ancak her yöntemde olduğu gibi, kendi veri ve model yapınıza uygun stratejiyi belirlemek kritiktir.
Sık Sorulan Sorular
Bayesian optimization ile random search arasındaki temel fark nedir?
Random search her denemeyi bağımsız yaparken, Bayesian optimization önceki sonuçlardan öğrenerek en umut verici parametreleri seçer. Bu sayede daha az denemeyle daha iyi sonuçlar elde eder.
Bayesian optimization hangi durumlarda önerilmez?
Parametre sayısı çok düşükse (2-3) veya her deneme çok hızlı çalışıyorsa (örneğin basit modeller), random search yeterli olabilir. Ayrıca yüksek boyutlu ayrık uzaylarda surrogate model uyumu zorlaşır.
Optuna ile Bayesian optimization nasıl kullanılır?
Optuna'da ‘create_study’ ile bir çalışma oluşturulur, ‘study.optimize’ ile belirtilen sayıda deneme yapılır. ‘suggest_float’ veya ‘suggest_int’ gibi fonksiyonlarla parametre aralıkları tanımlanır.
Bayesian optimization'da kazanç fonksiyonu olarak hangisi daha iyidir?
Expected Improvement (EI) genelde iyi bir denge sağlar. Upper Confidence Bound (UCB) keşfeti artırırken, Probability of Improvement daha tutucudur. Problem ve kaynak kısıtına göre seçim yapılmalıdır.
Hiperparametre optimizasyonunda çapraz doğrulama neden önemlidir?
Çapraz doğrulama, modelin genelleme performansını daha doğru tahmin eder ve aşırı uyumu (overfitting) önler. Zaman serisi verilerinde standart çapraz doğrulama yerine zaman bazlı dilimleme kullanılmalıdır.






