Denetimli Öğrenmeye Başlangıç: Pratik Rehber
Denetimli öğrenmenin ne olduğunu, nasıl çalıştığını ve Python'da ilk modelinizi oluşturmayı öğrenin.
Ajanların nasıl öğrendiğini, ödül sistemlerini ve basit oyunlarda Q-Learning uygulamasını anlaşılır bir şekilde öğrenin.
Pekiştirmeli öğrenme (reinforcement learning) biraz farklı çalışır. Denetimli öğrenmede veriyi sizi rehber eder. Burada ise bir ajan ortamla etkileşime giriyor ve deneme-yanılma yoluyla öğreniyor.
Düşünün: Bir oyun oynayan bir program. Her hareketin sonucunda puan alıyor — doğru hareket için pozitif ödül, yanlış hareket için negatif ödül. Zamanla bu ödülleri izleyerek en iyi stratejisini buluyor. İşte bu pekiştirmeli öğrenme.
Pekiştirmeli öğrenmenin kalbinde ödül sistemi yatıyor. Ajan bir hareket yaptığında, ortam geri bildirim sağlıyor. Olumlu geri bildirim (+10 puan) ajanı o hareketi tekrarlamaya teşvik ediyor. Olumsuz geri bildirim (-5 puan) ajanı o hareketten uzaklaştırıyor.
Burada fark etmeniz gereken şey: ajan hedefi kendisi belirlemez. Sizin (programcının) belirlediğiniz ödül yapısı ajanın davranışını şekillendirir. Eğer satranç oynamasını istiyorsanız, hamle başına +1 puan, kaybetmede -100 puan gibi bir sistem tasarlarsınız. Ajan bu ödülleri izleyerek strateji geliştirir.
Q-Learning, pekiştirmeli öğrenmenin en basit ve etkili algoritmasıdır. Q harfi "kalite" anlamına gelen "Quality" kelimesinden geliyor. Temel fikir şu: her durum-hareket kombinasyonunun bir "kalite değeri" (Q-değeri) var.
Ajan öğrenme süreci boyunca bu Q-değerlerini güncellemeye devam ediyor. Yüksek Q-değeri olan hareket daha iyidir. Zamanla, ajan en yüksek Q-değerine sahip hareketleri seçmeye başlar. Basit, değil mi? Ama çok güçlü.
Pekiştirmeli öğrenmeyi anlamak için somut bir örnek en iyisidir. Hayal edin: 5x5 bir ızgaramız var. Ajanımız sol üst köşede başlıyor, sağ alt köşedeki hedefe ulaşması gerekiyor.
Ajan rastgele hareketler yapıyor. Sola, sağa, yukarı, aşağı — hiçbir plan yok. Ama ödül sistemi aktif: hedefe yaklaştığında +1, uzaklaştığında -1 alıyor.
Bin denemeden sonra ajan fark ediyor: sağa ve aşağı gitmek hedefe yaklaştırıyor. Q-tablosu güncelleniyor. Sağa gitmek için Q-değeri artıyor.
Yeterince öğrendikten sonra ajan en kısa yolu bulabiliyor. Her defasında 5 hamlede hedefe ulaşıyor. Hedefe vardığında +100 ödülü alıyor. Mükemmel!
Python'da Q-Learning'i uygulamak göründüğü kadar karmaşık değil. Temel yapı şu:
Önce bir Q-tablosu oluşturuyorsunuz — satırlar durumlar, sütunlar hareketler. Tüm değerler sıfırla başlıyor. Sonra bir döngü başlatıyorsunuz: ajan bir hareket yapıyor, ödülü alıyor, Q-değerini güncelliyor. Bu döngü binlerce kez tekrarlanıyor.
Önemli: NumPy kütüphanesi Q-tablosunu temsil etmek için ideal. İki boyutlu bir dizi, her hücre bir Q-değeri tutuyor. Güncelleme formülü de basit bir matematik işlemi: Q_yeni = Q_eski + öğrenme_oranı × (ödül + indirim_faktörü × max_Q_sonraki - Q_eski).
Q-Learning basit ama her zaman yeterli değil. Gerçek uygulamalarda başka problemler ortaya çıkıyor.
Eğer 100 durum ve 10 hareket varsa, Q-tablosu 1000 hücre. Peki 1 milyon durum varsa? Tablo devasa hale geliyor ve bellek yetersiz kalıyor. İşte burada derin Q-Learning (Deep Q-Learning) devreye giriyor — sinir ağları Q-değerlerini tahmin ediyor.
Ajan bilinen iyi hareketi mi seçsin, yoksa yeni bir hareketi mi denesin? Çok keşif yaparsanız öğrenme yavaşlıyor. Çok sömürü yaparsanız en iyisini kaçırıyorsunuz. Epsilon-greedy stratejisi bu sorunu çözer: %10 zaman rastgele hareket, %90 zaman en iyi hareket.
Pekiştirmeli öğrenme, makine öğrenimi dünyasında benzersiz bir yer tutuyor. Denetimli öğrenmeden farklı olarak, ajan kendisi veriyi topluyor ve öğreniyor. Ödül sistemi ajanı belirli bir davranışa doğru yönlendiriyor.
Q-Learning, basit ama güçlü bir algoritma. Basit oyunlarda harika sonuç veriyor. Ama daha karmaşık problemler için derin öğrenme ve diğer gelişmiş yöntemler gerekiyor. Buna rağmen, temel fikri anlamak çok önemli — çünkü tüm gelişmiş yöntemler bu temele dayanıyor.
Eğer pekiştirmeli öğrenmeye daha derinlemesine dalmak istiyorsanız, Python'da basit bir oyun örneğiyle başlamanız öneriliyor. 50 satırlık bir kod, bin satırlık bir yazıdan daha çok öğretir.
Pratik bir Q-Learning projesi başlatın ve gerçek dünyada nasıl çalıştığını görebilirsiniz.
Diğer MakalelerBu makale eğitim amaçlı bilgi sunmaktadır. Pekiştirmeli öğrenme algoritmaları karmaşık matematiksel temellere dayanır ve gerçek uygulamalar için daha detaylı çalışma gerektirebilir. Burada sunulan örnekler ve açıklamalar basitleştirilmiş halidir. Profesyonel projeler için akademik kaynaklar ve uzman rehberliği tavsiye edilir.