- Uygulamanın parçaları: ortam, ajan, ödül, politika
- Adım adım iş akışı
- İlk ajan: Gymnasium ve Stable-Baselines3 ile küçük bir örnek
- Algoritmayı eylem türüne göre seçmek
- Kendi iş probleminiz için özel ortam yazmak
- Ödül tasarımı: en sık hata kaynağı
- Eğitimi izleme, değerlendirme ve sık hatalar
- Bu beceriyi Mindset programlarında nerede çalışırsınız?
- Sık sorulan sorular
RL Ajanı Eğitmek: Ortamdan Değerlendirmeye Uygulama Rehberi
Ortam, ödül ve algoritma seçiminden ilk ajanı eğitip değerlendirmeye kadar pekiştirmeli öğrenme uygulamasının adımlarını kodla öğrenin.
Uygulamanın parçaları: ortam, ajan, ödül, politika
Pekiştirmeli öğrenme uygulaması, denetimli öğrenmedeki gibi hazır bir etiketli veri kümesiyle başlamaz. Bir ajan, bir ortamla etkileşir; her adımda gözlem alır, bir eylem seçer, ortamdan ödül ve yeni durum gelir. Ajanın amacı, toplam ödülü artıran bir politika öğrenmektir. Uygulama geliştirirken şu parçaları ayrı ayrı düşünmek gerekir: ortam (simülasyon ya da gerçek sistem), gözlem ve eylem uzayı, ödül fonksiyonu ve öğrenme algoritması.
Kavramsal arka plan için ayrı bir rehber yeterli; burada odak, bir ajanı sıfırdan kurup eğitmenin pratik sırasıdır. Çoğu başarısız proje algoritmadan değil, kötü tanımlanmış ortam ve ödülden kaynaklanır.
Adım adım iş akışı
Uygulama genellikle şu sırayla ilerler: • Problemi karar dizisi olarak yazın: kim karar veriyor, hangi bilgiyi görüyor, hangi eylemleri seçebiliyor, bir bölüm (episode) ne zaman bitiyor? • Ortamı seçin ya da yazın. Hazır ortamlarla başlayıp öğrenme döngüsünü görmek, özel ortam yazmadan önce iyi bir hazırlıktır. • Ödülü tanımlayın ve basit bir sürümle başlayın. • Algoritma ailesini eylem türüne göre seçin. • Kısa bir eğitim koşusu yapıp öğrenme eğrisine bakın. • Ödül, hiperparametre ve gözlem temsilini sırayla iyileştirin. • Ajanı eğitimde görmediği başlangıç koşullarıyla ayrı bir ortamda değerlendirin.
Her adımı atlamadan geçmek, hata ayıklamayı kolaylaştırır. Ajan öğrenmiyorsa sorun ortamda mı, ödülde mi, algoritmada mı, hızla ayırt edilebilir.
İlk ajan: Gymnasium ve Stable-Baselines3 ile küçük bir örnek
Python tarafında standart ortam arayüzünü Gymnasium kütüphanesi, hazır algoritma uygulamalarını Stable-Baselines3 kütüphanesi sağlar. Stable-Baselines3 belgelerindeki hızlı başlangıç örneği, CartPole-v1 ortamında bir A2C ajanı eğitir:
import gymnasium as gym from stable_baselines3 import A2C
env = gym.make("CartPole-v1", render_mode="rgb_array") model = A2C("MlpPolicy", env) model.learn(total_timesteps=adim_sayisi)
Burada adim_sayisi eğitim adımı sayısını tutan bir değişkendir; ayrıntılı değeri kendi denemenize göre seçersiniz. Eğitimden sonra model.predict ile gözlemden eylem üretilir. deterministic=True verildiğinde ajan, eğitimdeki keşif davranışı yerine öğrendiği en yüksek değerli eylemi seçer; değerlendirme için bu tercih edilir. Belgede aynı sonuç, ortam kayıtlıysa tek satırda da elde edilir: algoritma adı, politika türü ve ortam adı verilip öğrenme çağrılır.
MlpPolicy, gözlemi çok katmanlı bir sinir ağından geçiren varsayılan politikadır. Görüntü gözlemlerinde bunun yerine evrişimli bir politika türü kullanılır.
Algoritmayı eylem türüne göre seçmek
İlk ayrım, eylemin ayrık (sol, sağ, yukarı) mı yoksa sürekli (direksiyon açısı, fiyat değişim miktarı) mı olduğudur. Ayrık eylemlerde Derin Q-Ağları (DQN) ve türevleri doğal bir başlangıçtır. Politika gradyanı ailesi (örneğin PPO ve A2C) hem ayrık hem sürekli eylemleri destekler ve ilk denemeler için sık seçilir. Sürekli eylem uzaylarında bu ailenin yanında, değer ve politikayı birlikte öğrenen aktör-eleştirmen yöntemleri kullanılır.
Seçim kuralı basittir: önce bir referans algoritmayla çalışan bir hat kurun, sonra ihtiyaç doğarsa algoritmayı değiştirin. Başlangıçta hiperparametre aramasına girmek, ortam hatasını gizleyebilir. Monte Carlo ve zaman farkı yöntemleri ise tablo tabanlı küçük problemlerde, öğrenme mantığını sayfa üzerinde görmek için değerlidir.
Kendi iş probleminiz için özel ortam yazmak
Gerçek bir iş problemini (örneğin stok sipariş politikası ya da dinamik fiyat ayarı) öğretmek için Gymnasium'daki Env sınıfından türeyen bir ortam yazarsınız. Gymnasium belgelerine göre iskelet şöyledir: yapıcıda observation_space ve action_space tanımlanır; reset yöntemi bölümü başlatır ve gözlem ile bilgi sözlüğünü döndürür; step yöntemi bir eylemi uygular ve gözlem, ödül, terminated, truncated ve bilgi değerlerini döndürür.
class StokOrtami(gym.Env): def __init__(self): self.observation_space = spaces.Box(...) self.action_space = spaces.Discrete(eylem_sayisi)
def reset(self, seed=None, options=None): super().reset(seed=seed) return gozlem, {}
def step(self, eylem): # eylemi uygula, talebi simüle et return gozlem, odul, bitti, kesildi, {}
terminated, ortamın doğal bitişini (örneğin sezon sonu); truncated ise zaman sınırı gibi dışsal kesintiyi ifade eder. Bu ayrımı doğru kurmak, değer tahminlerinin sağlıklı olması için önemlidir. Ortamın gerçekçiliği, öğrenilen politikanın değerini belirler: simülatör talebi yanlış modellerse ajan yanlış şeyi iyi öğrenir.
Ödül tasarımı: en sık hata kaynağı
Ajan, tarif ettiğiniz ödülü artırır; istediğinizi değil. Satış tutarını tek ödül yaparsanız ajan iade ve müşteri memnuniyetini yok sayan bir politika bulabilir. Bu duruma ödül istismarı denir. Önlem olarak ödülü birden fazla bileşenle kurup (satış, iade maliyeti, stok taşıma gideri) bileşenlerin ölçeğini birbirine yakın tutun.
Seyrek ödül ikinci tuzaktır: ajan yalnızca bölüm sonunda ödül alıyorsa öğrenme çok yavaşlar. Ara adımlarda yönlendirici ödül eklenebilir, ama bu ödülün asıl hedefe zarar vermediğini kontrol edin. Ödül ölçeği de önemlidir; çok büyük değerler eğitimi kararsız yapabilir. Ödül değiştirdiğiniz her seferde ajanın bulduğu davranışı kayıtlardan izleyip gözle doğrulayın.
Eğitimi izleme, değerlendirme ve sık hatalar
Tek bir eğitim koşusu güvenilir sonuç vermez; pekiştirmeli öğrenme rastgele tohuma karşı duyarlıdır. Farklı tohumlarla birkaç koşu yapıp ortalama ve değişkenliği birlikte okuyun. Öğrenme eğrisi hiç yükselmiyorsa önce ortamın rastgele politikayla bile anlamlı bir ödül verip vermediğini kontrol edin.
Değerlendirmeyi eğitim ortamından ayırın ve ajanı eğitimde görmediği koşullarla deneyin. Aksi halde ajan, yalnızca ezberlediği senaryoda başarılı görünür. Sık hatalar: ödülü hiç ölçeklendirmemek, gözlemde ajanın aslında göremeyeceği bilgiyi (gelecek talep gibi) sızdırmak, eğitimde keşif parametresini hiç azaltmamak, simülasyondaki başarıyı gerçek sisteme doğrudan taşımak. Gerçek sisteme geçişte ajan önce gölge modda, kararlarını uygulamadan önerirken izlenir.
Bu beceriyi Mindset programlarında nerede çalışırsınız?
Pekiştirmeli Öğrenme Temelleri eğitimi, Python ile makine öğrenmesi çalışan veri bilimcileri ve yapay zeka mühendisleri için uygundur; ardışık karar problemlerini (envanter, fiyatlama, kaynak çizelgeleme) modellemek isteyen kurumsal analitik ekiplerine de dönük bir içeriktir.
Modül başlıklarında pekiştirmeli öğrenme çerçevesi, dinamik programlama ve değer fonksiyonları, Monte Carlo ve zaman farkı yöntemleri, Derin Q-Ağları, politika gradyanı yöntemleri ile iş uygulamaları ve Stable Baselines pratiği yer alır. Bu sayfadaki iş akışının kuramsal temeli ve uygulama adımları ile örtüşür.
İlgili Mindset programı
Pekiştirmeli Öğrenme Temelleri
Sık sorulan sorular
Pekiştirmeli öğrenmeye başlamak için hangi ön bilgiler gerekir?
Python programlama, temel olasılık ve doğrusal cebir bilgisi yeterli bir başlangıçtır. Sinir ağlarının nasıl eğitildiğini bilmek derin pekiştirmeli öğrenmede işinizi kolaylaştırır. Önce tablo tabanlı küçük örneklerle (ızgara dünyası gibi) mantığı kavrayın, ardından hazır kütüphanelerle derin yöntemlere geçin.
Pekiştirmeli öğrenme için veri toplamam gerekir mi?
Genellikle hazır veri yerine bir ortam gerekir; veri, ajanın ortamla etkileşiminden üretilir. Ortam gerçek sisteme erişim pahalı ya da riskliyse simülatör kurulur. Geçmiş kayıtlarla öğrenmek isteyenler için çevrimdışı pekiştirmeli öğrenme adı verilen ayrı bir yaklaşım bulunur; ancak bu, başlangıç için daha ileri bir konudur.
Eğitilmiş ajan neden gerçek sistemde kötü çalışabilir?
Çünkü simülatör gerçeği her zaman tam yansıtmaz. Talep dağılımı, gecikmeler ve gürültü simülasyonda farklıysa ajan yalnızca simülasyona uyum sağlamış olur. Önlem olarak ortamı çeşitli koşullarla rastgeleleştirmek, ajanı gölge modda izlemek ve gerçek sisteme önce sınırlı yetkiyle geçmek gerekir.
PPO mu DQN mi seçmeliyim?
Eylem türü belirleyicidir. DQN ayrık eylemler için tasarlanmıştır; PPO ise ayrık ve sürekli eylemlerle çalışır ve ilk denemeler için sık tercih edilir. Eylemleriniz ayrıksa algoritmaları küçük bir ortamda denemek en sağlıklı karşılaştırmadır; sonuç, problemin yapısına ve ödülün biçimine bağlı olarak değişir.
Denetimli öğrenmeyle farkı uygulamada nasıl hissedilir?
Denetimli öğrenmede hazır bir etiketli veri kümesi ve net bir doğruluk ölçüsü vardır. Pekiştirmeli öğrenmede ise veriyi ajanın kendi kararları üretir, ödül gecikmeli gelir ve değerlendirme ortama bağlıdır. Bu nedenle hata ayıklama daha zordur; ortam, ödül ve algoritmayı ayrı ayrı doğrulamak gerekir.