Deep Reinforcement Learning
Derin pekiştirmeli öğrenme (DRL), pikseller gibi ham girdilerden politika ve değerler öğrenmek için sinir ağlarını kullanır. DQN'yi, PPO'yu, sonuçları ve sınırları ele alır.
Derin pekiştirmeli öğrenme (DRL), ödülü en üst düzeye çıkarmak için deneme yanılma yoluyla öğrenen bir ajanın yer aldığı pekiştirmeli öğrenmeyi (RL), ajanın öğrendiklerini temsil eden derin sinir ağlarıyla birleştirir. Klasik RL, her durum için bir değeri tabloda saklar. Durum bir kamera görüntüsü veya robotun sürekli eklem açıları olduğunda bunu yapmak imkânsızdır. Bunun yerine sinir ağı; pikseller, lidar taramaları veya metin gibi ham ve yüksek boyutlu gözlemleri eylem değerlerine ya da eylem olasılıklarına dönüştürür ve daha önce hiç görmediği durumlara geneller. DeepMind'ın DQN'i, 2015'te yalnızca ekran piksellerinden ve oyun puanından yararlanarak 49 Atari 2600 oyununu öğrenmesiyle bu yaklaşımı ünlü hâle getirdi. Tek bir ağ mimarisi ve hiperparametre kümesiyle, profesyonel bir insan oyun test uzmanına benzer düzeyde performans gösterdi.
Derin Pekiştirmeli Öğrenme Nasıl Çalışır?#
Ajan, Markov karar sürecinin RL döngüsünü izlemeyi sürdürür: durumu gözlemler, eylemde bulunur, ödül alır ve güncelleme yapar. Değişen, artık milyonlarca parametreye sahip bir ağın aşağıdakilerden birini veya birkaçını tutmasıdır:
- Değer işlevi: Ağ, her eylemin beklenen getirisini tahmin eder ve ajan en yüksek getirili eylemi seçer. DQN'in ağı, hareketi görebilmek için 84×84 piksele küçültülmüş son dört oyun karesini alıyordu.
- Politika: Ağ, her eylem için bir olasılık veya direksiyon açısı gibi sürekli bir eylemin ortalamasını ve dağılımını çıktı olarak verir. Politika gradyanı yöntemleri, yüksek getiri sağlayan eylemlere doğru politikayı doğrudan ayarlar.
- Aktör ve eleştirmen: Aktör ağı eylemleri seçerken eleştirmen ağı değerleri tahmin eder ve aktöre her eylemin beklenenden ne kadar iyi olduğunu bildirir; bu da güncellemelerdeki gürültüyü azaltır.
- Dünya modeli: Dreamer gibi model tabanlı ajanlar, gelecekteki gözlemleri ve ödülleri tahmin etmek için bir ağ eğitir; ardından öğrenilmiş bu simülatörün içinde politika öğrenir.
Ajanın kendi ürettiği verilerle ağı eğitmek kararsızdır; çünkü ardışık kareler birbiriyle yüksek düzeyde ilişkilidir ve hedefler ağ değiştikçe yer değiştirir. DQN bu sorunu, sonraki algoritmaların da kullandığı iki fikirle çözdü: geçmiş geçişlerden rastgele mini yığınlarla eğitim yapan bir deneyim tekrar arabelleği ve yalnızca belirli aralıklarla güncellenen ayrı bir hedef ağ:
Kodda Politika Gradyanları#
Politika gradyanı yöntemleri değer tablolarını tamamen atlar: ağdan eylemler örnekler, ardından yüksek getiriyle sonuçlanan eylemlerin olasılığını artırırlar. Bu PyTorch örneği, hareketli bir arabanın üzerindeki sırığı Gymnasium CartPole ortamında dengelemek için REINFORCE adlı özgün politika gradyanı algoritmasını kullanarak küçük bir politika ağı eğitir:
import gymnasium as gym
import torch
from torch import nn
torch.manual_seed(0)
env = gym.make("CartPole-v1")
policy = nn.Sequential(nn.Linear(4, 64), nn.ReLU(), nn.Linear(64, 2)) # cart and pole state -> logits for left/right
optimizer = torch.optim.Adam(policy.parameters(), lr=0.02)
lengths = []
for episode in range(500):
obs, _ = env.reset(seed=episode)
log_probs, rewards, done = [], [], False
while not done: # play one episode with the current policy, earning +1 per step the pole stays up
dist = torch.distributions.Categorical(logits=policy(torch.as_tensor(obs)))
action = dist.sample()
obs, reward, terminated, truncated, _ = env.step(action.item())
log_probs.append(dist.log_prob(action))
rewards.append(reward)
done = terminated or truncated
# REINFORCE: raise the log-probability of actions followed by above-average discounted return
returns = torch.tensor([sum(0.99**k * r for k, r in enumerate(rewards[t:])) for t in range(len(rewards))])
loss = -(torch.stack(log_probs) * (returns - returns.mean()) / (returns.std() + 1e-8)).sum()
optimizer.zero_grad()
loss.backward()
optimizer.step()
lengths.append(len(rewards))
print(f"Average episode length: first 20 = {sum(lengths[:20]) / 20:.0f}, last 20 = {sum(lengths[-20:]) / 20:.0f}")Kod first 20 = 14, last 20 = 500 ifadesini yazdırır: eğitilmemiş ağ sırığı yaklaşık 14 adımda düşürür; 500 bölümün ardından ise her bölümün 500 adımlık sınırı boyunca dengeyi korur. Farklı rastgele tohumlarla aynı betik takılabilir veya eğitimin ortasında başarısız olabilir. Eleştirmenlerin ve Proximal Policy Optimization (PPO) yönteminin kırpılmış güncellemelerinin azaltmak üzere tasarlandığı yüksek varyans budur. Stable-Baselines3 gibi kütüphaneler, PPO, DQN ve yumuşak aktör-eleştirmen (SAC) yöntemlerinin test edilmiş uygulamalarını sunar.
Önemli Uygulamalar#
- Oyunlar: Atari'den sonra derin pekiştirmeli öğrenme ajanları, AlphaGo ile Go dünya şampiyonlarını yendi ve AlphaStar ile StarCraft II'de büyükusta düzeyine ulaştı. Bu sistemler insan oyunlarından öğrenmeyi pekiştirmeli öğrenmeyle kendi kendine oynama yöntemiyle birleştirdi.
- Drone yarışı: Simülasyonda derin pekiştirmeli öğrenmeyle eğitilen ve gerçek uçuş verileriyle ince ayar yapılan Zürih Üniversitesi'nin Swift dronu, 2023'te üç şampiyon pilotun her birine karşı yapılan kafa kafaya yarışların birkaçını kazandı ve kaydedilen en hızlı yarış süresine ulaştı.
- Füzyon enerjisi: DeepMind ve EPFL'deki İsviçre Plazma Merkezi, bir tokamağın manyetik bobinlerini kontrol etmek ve plazmayı birkaç farklı biçimde şekillendirmek için derin pekiştirmeli öğrenme politikası kullandı. Bu biçimler arasında aynı anda iki ayrı plazma "damlası" da vardı.
- Robotik: Bacaklı robotlar, sürtünme ve kütlenin rastgeleleştirildiği binlerce simüle robot üzerinde eğitilen politikalarla engebeli arazide yürümeyi öğrenir; böylece politika gerçek donanıma geçişte de başarılı olur.
- Dil modelleri: Tercihe dayalı veya otomatik denetlenen ödüllerle Transformer politikalarının pekiştirmeli öğrenmeyle ince ayarlanması, günümüzün sohbet asistanlarını ve akıl yürütme modellerini ortaya çıkardı.
Gözlem Olarak Algı#
DQN'nin evrişimli sinir ağı, her adımda 84×84×4 = 28.224 piksel değerinden oluşan ödül dışında hiçbir bilgi almadan görmeyi öğrenmek zorundaydı. Birçok robotik ve sürüş sistemi bunun yerine politikaya önceden eğitilmiş bir bilgisayarlı görü modelinin çıktısını verir; bu, gözlemi küçültür ve RL algoritmasının örneklerini karar vermeye ayırmasını sağlar. Ultralytics YOLO26, izleme modunda her kamera karesini her nesne için bir sınıfa, kutuya ve kalıcı bir kimliğe dönüştürür. Böylece politika, nesne merkezli bu durumdan her nesnenin kareler arasındaki hareketini de okuyabilir.
Zorluklar#
Derin RL veri açısından maliyetlidir: DQN, oyun başına 50 milyon kareyle, yani yaklaşık 38 günlük oyun süresiyle eğitildi. Bu nedenle çoğu robot politikası simülasyonda eğitilir ve ardından donanıma aktarılır. Simüle edilen fizik hiçbir zaman gerçekle tam olarak örtüşmez; bu yüzden mühendisler alan rastgeleleştirme ile sürtünmeyi, kütleleri, aydınlatmayı ve dokuları rastgeleleştirir, nadir koşullar için de sentetik veri ekler. Sonuçlar ayrıca rastgele tohumlara, hiperparametrelere ve uygulama ayrıntılarına göre değişir; bu tekrarlanabilirlik sorunu Önemli Olan Derin Pekiştirmeli Öğrenme çalışmasında açıklanmıştır. Güçlü bir optimize edici, kusurlu herhangi bir ödüldeki açıkları da bulur; bu başarısızlık ödül manipülasyonu olarak bilinir. Örneğin bir tekne yarışı ajanı yarışı bitirmek yerine puan toplamak için durmadan daire çizmesini öğrenmişti.
Derin RL ve İlgili Terimler#
- Pekiştirmeli öğrenme: Daha geniş alanı ifade eder. Tablolu RL küçük problemler için uygundur; derin RL ise fonksiyon yaklaştırıcı olarak sinir ağları kullanan RL'dir.
- Derin öğrenme: Standart derin öğrenme, sabit ve etiketli bir veri kümesiyle eğitilir. Derin RL'de veriyi ajanın kendi eylemleri oluşturur ve eğitim sinyali etiket yerine gecikmeli bir ödüldür.
- İnsan geri bildiriminden pekiştirmeli öğrenme (RLHF): İnsan tercih karşılaştırmalarından öğrenilen bir ödül modelinin elle yazılmış ödülün yerini aldığı derin RL yöntemi; dil modellerini hizalamak için kullanılır.
- Model öngörülü kontrol: MPC, her kontrol adımında açık bir model üzerinde yeni bir optimizasyon çözer; eğitilmiş bir derin RL politikası ise her eylemi ağının tek bir ileri geçişinde seçer.










