Bölüm 13: Öğrenme ve Adaptasyon
Giriş
Oyunla Başlangıç: Çok Kollu Haydut
Her kol gizli bir olasılıkla 1 puan verir; bir kolu çekince yalnızca onun sonucunu görürsünüz ve amaç toplam ödülü en büyük yapmaktır.
- Şimdilik ortalaması en yüksek olan Kol 1'e mi bağlanırdınız, yoksa Kol 3'ü yeniden mi denerdiniz?
- Yüz çekişin kaçını denemeye (keşfe) ayırırdınız?
Giriş
Öğrenme Çıktıları
Giriş
Neden Öğrenme ve Adaptasyon?
Öğrenme: geçmiş deneyimden strateji geliştirmek. Adaptasyon: rakip ve çevre değişince stratejiyi güncellemek.
- Denge hesaplamak zor olabilir: genel oyunlarda Nash dengesi PPAD-tam (büyük oyunlarda hızlı bir çözüm yolu bilinmeyen bir problem sınıfı). Oyuncular dengeyi nasıl “bulur”?
- Oyunu bilmiyor olabilirler: kazanç matrisi bilinmez; yalnızca oynayıp sonucu görürler.
- Soru: basit, yerel güncelleme kuralları uzun vadede dengeye ya da en azından iyi bir performansa götürür mü?
Giriş
Öğrenme Modelleri: Genel Bakış
| Model | Oyuncu neyi gözler? | Nasıl günceller? |
|---|---|---|
| En iyi tepki dinamiği | Rakibin son eylemi | Ona en iyi tepkiyi verir |
| Kurgusal oyun (fictitious play) | Rakibin tüm geçmişi | Frekanslara en iyi tepki |
| Pişmanlığı en aza indirme (Hedge) | Her eylemin kazancı | İyi eylemlerin ağırlığını çarpımsal artırır |
| Çok kollu haydut (ε-açgözlü, UCB) | Yalnızca seçtiği eylemin ödülü | Ortalama tahmini + keşif |
| Pekiştirmeli öğrenme (Q-öğrenme) | Ödül ve yeni durum | Q(s, a) değerlerini günceller |
| Replikatör dinamiği | Nüfustaki ortalama başarı | Başarılı strateji yayılır |
Yukarıdan aşağı: oyuncu rakibi değil kendi ödülünü izlemeye başlar; son satırda bakış bireyden nüfusa kayar.
En İyi Tepki ve Kurgusal Oyun
En İyi Tepki Dinamiği (Adım Adım)
Başlangıç profili (B, Z). Oyuncular sırayla, rakibin şu anki eylemine en iyi tepki verir.
Satır oyuncusu Z'ye karşı en iyi tepkiyi arar: u1 = 1, 0, 3 → C. Profil (C, Z).
Sütun oyuncusu C'ye karşı: u2 = 4, 0, 2 → X. Profil (C, X).
Satır oyuncusu X'e karşı: u1 = 4, 2, 1 → A. Profil (A, X).
Sütun oyuncusu A'ya karşı zaten X'i seçiyor (3 > 2, 1); satır da A'dan ayrılmaz → dinamik (A, X) Nash dengesinde durur.
(C, Y)'den başlansaydı (B, Y) dengesine gidilirdi: varılan denge başlangıca bağlı.
En İyi Tepki ve Kurgusal Oyun
En İyi Tepki Dinamiği Ne Zaman Yakınsar?
Yazı-Tura Eşleştirme: (Y,Y) → (Y,T) → (T,T) → (T,Y) → (Y,Y) … sonsuz döngü
En İyi Tepki ve Kurgusal Oyun
Kurgusal Oyun: Yazı-Tura Eşleştirme
| t | Ayr. geçmişi Y/T (önceki turlar) | Eşleştiren | Eşl. geçmişi Y/T (önceki turlar) | Ayrıştıran | Eşl. Y oranı (bu tur dahil) | Ayr. Y oranı (bu tur dahil) |
|---|---|---|---|---|---|---|
| 1 | 0 / 0 | Y | 0 / 0 | Y | 1,00 | 1,00 |
| 2 | ||||||
| 3 | ||||||
| 4 | ||||||
| 5 | ||||||
| 6 | ||||||
| 7 | ||||||
| 8 | ||||||
| 9 | ||||||
| 10 |
1. tur keyfî: ikisi de Y oynar (henüz geçmiş yok).
| t | Ayr. geçmişi Y/T (önceki turlar) | Eşleştiren | Eşl. geçmişi Y/T (önceki turlar) | Ayrıştıran | Eşl. Y oranı (bu tur dahil) | Ayr. Y oranı (bu tur dahil) |
|---|---|---|---|---|---|---|
| 1 | 0 / 0 | Y | 0 / 0 | Y | 1,00 | 1,00 |
| 2 | 1 / 0 | Y | 1 / 0 | T | 1,00 | 0,50 |
| 3 | ||||||
| 4 | ||||||
| 5 | ||||||
| 6 | ||||||
| 7 | ||||||
| 8 | ||||||
| 9 | ||||||
| 10 |
Eşleştiren rakip geçmişinde 1 / 0 görür → Y (çoğunluğu eşler, eşitlikte Y). Ayrıştıran 1 / 0 görür → T (çoğunluğun tersi, eşitlikte Y).
| t | Ayr. geçmişi Y/T (önceki turlar) | Eşleştiren | Eşl. geçmişi Y/T (önceki turlar) | Ayrıştıran | Eşl. Y oranı (bu tur dahil) | Ayr. Y oranı (bu tur dahil) |
|---|---|---|---|---|---|---|
| 1 | 0 / 0 | Y | 0 / 0 | Y | 1,00 | 1,00 |
| 2 | 1 / 0 | Y | 1 / 0 | T | 1,00 | 0,50 |
| 3 | 1 / 1 | Y | 2 / 0 | T | 1,00 | 0,33 |
| 4 | ||||||
| 5 | ||||||
| 6 | ||||||
| 7 | ||||||
| 8 | ||||||
| 9 | ||||||
| 10 |
Eşleştiren rakip geçmişinde 1 / 1 görür → Y (çoğunluğu eşler, eşitlikte Y). Ayrıştıran 2 / 0 görür → T (çoğunluğun tersi, eşitlikte Y).
| t | Ayr. geçmişi Y/T (önceki turlar) | Eşleştiren | Eşl. geçmişi Y/T (önceki turlar) | Ayrıştıran | Eşl. Y oranı (bu tur dahil) | Ayr. Y oranı (bu tur dahil) |
|---|---|---|---|---|---|---|
| 1 | 0 / 0 | Y | 0 / 0 | Y | 1,00 | 1,00 |
| 2 | 1 / 0 | Y | 1 / 0 | T | 1,00 | 0,50 |
| 3 | 1 / 1 | Y | 2 / 0 | T | 1,00 | 0,33 |
| 4 | 1 / 2 | T | 3 / 0 | T | 0,75 | 0,25 |
| 5 | ||||||
| 6 | ||||||
| 7 | ||||||
| 8 | ||||||
| 9 | ||||||
| 10 |
Eşleştiren rakip geçmişinde 1 / 2 görür → T (çoğunluğu eşler, eşitlikte Y). Ayrıştıran 3 / 0 görür → T (çoğunluğun tersi, eşitlikte Y).
| t | Ayr. geçmişi Y/T (önceki turlar) | Eşleştiren | Eşl. geçmişi Y/T (önceki turlar) | Ayrıştıran | Eşl. Y oranı (bu tur dahil) | Ayr. Y oranı (bu tur dahil) |
|---|---|---|---|---|---|---|
| 1 | 0 / 0 | Y | 0 / 0 | Y | 1,00 | 1,00 |
| 2 | 1 / 0 | Y | 1 / 0 | T | 1,00 | 0,50 |
| 3 | 1 / 1 | Y | 2 / 0 | T | 1,00 | 0,33 |
| 4 | 1 / 2 | T | 3 / 0 | T | 0,75 | 0,25 |
| 5 | 1 / 3 | T | 3 / 1 | T | 0,60 | 0,20 |
| 6 | ||||||
| 7 | ||||||
| 8 | ||||||
| 9 | ||||||
| 10 |
Eşleştiren rakip geçmişinde 1 / 3 görür → T (çoğunluğu eşler, eşitlikte Y). Ayrıştıran 3 / 1 görür → T (çoğunluğun tersi, eşitlikte Y).
| t | Ayr. geçmişi Y/T (önceki turlar) | Eşleştiren | Eşl. geçmişi Y/T (önceki turlar) | Ayrıştıran | Eşl. Y oranı (bu tur dahil) | Ayr. Y oranı (bu tur dahil) |
|---|---|---|---|---|---|---|
| 1 | 0 / 0 | Y | 0 / 0 | Y | 1,00 | 1,00 |
| 2 | 1 / 0 | Y | 1 / 0 | T | 1,00 | 0,50 |
| 3 | 1 / 1 | Y | 2 / 0 | T | 1,00 | 0,33 |
| 4 | 1 / 2 | T | 3 / 0 | T | 0,75 | 0,25 |
| 5 | 1 / 3 | T | 3 / 1 | T | 0,60 | 0,20 |
| 6 | 1 / 4 | T | 3 / 2 | T | 0,50 | 0,17 |
| 7 | ||||||
| 8 | ||||||
| 9 | ||||||
| 10 |
Eşleştiren rakip geçmişinde 1 / 4 görür → T (çoğunluğu eşler, eşitlikte Y). Ayrıştıran 3 / 2 görür → T (çoğunluğun tersi, eşitlikte Y).
| t | Ayr. geçmişi Y/T (önceki turlar) | Eşleştiren | Eşl. geçmişi Y/T (önceki turlar) | Ayrıştıran | Eşl. Y oranı (bu tur dahil) | Ayr. Y oranı (bu tur dahil) |
|---|---|---|---|---|---|---|
| 1 | 0 / 0 | Y | 0 / 0 | Y | 1,00 | 1,00 |
| 2 | 1 / 0 | Y | 1 / 0 | T | 1,00 | 0,50 |
| 3 | 1 / 1 | Y | 2 / 0 | T | 1,00 | 0,33 |
| 4 | 1 / 2 | T | 3 / 0 | T | 0,75 | 0,25 |
| 5 | 1 / 3 | T | 3 / 1 | T | 0,60 | 0,20 |
| 6 | 1 / 4 | T | 3 / 2 | T | 0,50 | 0,17 |
| 7 | 1 / 5 | T | 3 / 3 | Y | 0,43 | 0,29 |
| 8 | ||||||
| 9 | ||||||
| 10 |
Eşleştiren rakip geçmişinde 1 / 5 görür → T (çoğunluğu eşler, eşitlikte Y). Ayrıştıran 3 / 3 görür → Y (çoğunluğun tersi, eşitlikte Y).
| t | Ayr. geçmişi Y/T (önceki turlar) | Eşleştiren | Eşl. geçmişi Y/T (önceki turlar) | Ayrıştıran | Eşl. Y oranı (bu tur dahil) | Ayr. Y oranı (bu tur dahil) |
|---|---|---|---|---|---|---|
| 1 | 0 / 0 | Y | 0 / 0 | Y | 1,00 | 1,00 |
| 2 | 1 / 0 | Y | 1 / 0 | T | 1,00 | 0,50 |
| 3 | 1 / 1 | Y | 2 / 0 | T | 1,00 | 0,33 |
| 4 | 1 / 2 | T | 3 / 0 | T | 0,75 | 0,25 |
| 5 | 1 / 3 | T | 3 / 1 | T | 0,60 | 0,20 |
| 6 | 1 / 4 | T | 3 / 2 | T | 0,50 | 0,17 |
| 7 | 1 / 5 | T | 3 / 3 | Y | 0,43 | 0,29 |
| 8 | 2 / 5 | T | 3 / 4 | Y | 0,38 | 0,38 |
| 9 | ||||||
| 10 |
Eşleştiren rakip geçmişinde 2 / 5 görür → T (çoğunluğu eşler, eşitlikte Y). Ayrıştıran 3 / 4 görür → Y (çoğunluğun tersi, eşitlikte Y).
| t | Ayr. geçmişi Y/T (önceki turlar) | Eşleştiren | Eşl. geçmişi Y/T (önceki turlar) | Ayrıştıran | Eşl. Y oranı (bu tur dahil) | Ayr. Y oranı (bu tur dahil) |
|---|---|---|---|---|---|---|
| 1 | 0 / 0 | Y | 0 / 0 | Y | 1,00 | 1,00 |
| 2 | 1 / 0 | Y | 1 / 0 | T | 1,00 | 0,50 |
| 3 | 1 / 1 | Y | 2 / 0 | T | 1,00 | 0,33 |
| 4 | 1 / 2 | T | 3 / 0 | T | 0,75 | 0,25 |
| 5 | 1 / 3 | T | 3 / 1 | T | 0,60 | 0,20 |
| 6 | 1 / 4 | T | 3 / 2 | T | 0,50 | 0,17 |
| 7 | 1 / 5 | T | 3 / 3 | Y | 0,43 | 0,29 |
| 8 | 2 / 5 | T | 3 / 4 | Y | 0,38 | 0,38 |
| 9 | 3 / 5 | T | 3 / 5 | Y | 0,33 | 0,44 |
| 10 |
Eşleştiren rakip geçmişinde 3 / 5 görür → T (çoğunluğu eşler, eşitlikte Y). Ayrıştıran 3 / 5 görür → Y (çoğunluğun tersi, eşitlikte Y).
| t | Ayr. geçmişi Y/T (önceki turlar) | Eşleştiren | Eşl. geçmişi Y/T (önceki turlar) | Ayrıştıran | Eşl. Y oranı (bu tur dahil) | Ayr. Y oranı (bu tur dahil) |
|---|---|---|---|---|---|---|
| 1 | 0 / 0 | Y | 0 / 0 | Y | 1,00 | 1,00 |
| 2 | 1 / 0 | Y | 1 / 0 | T | 1,00 | 0,50 |
| 3 | 1 / 1 | Y | 2 / 0 | T | 1,00 | 0,33 |
| 4 | 1 / 2 | T | 3 / 0 | T | 0,75 | 0,25 |
| 5 | 1 / 3 | T | 3 / 1 | T | 0,60 | 0,20 |
| 6 | 1 / 4 | T | 3 / 2 | T | 0,50 | 0,17 |
| 7 | 1 / 5 | T | 3 / 3 | Y | 0,43 | 0,29 |
| 8 | 2 / 5 | T | 3 / 4 | Y | 0,38 | 0,38 |
| 9 | 3 / 5 | T | 3 / 5 | Y | 0,33 | 0,44 |
| 10 | 4 / 5 | T | 3 / 6 | Y | 0,30 | 0,50 |
Eşleştiren rakip geçmişinde 4 / 5 görür → T (çoğunluğu eşler, eşitlikte Y). Ayrıştıran 3 / 6 görür → Y (çoğunluğun tersi, eşitlikte Y).
En İyi Tepki ve Kurgusal Oyun
Kod İzleme: Kurgusal Oyun (Yazı-Tura, 6 tur)
Çağrı fictitious(6). Sayaçlar sıfır; geçmiş olmadığı için 1. turda ikisi de Y oynar.
Tur 1: (Y, Y) oynanır, eşleştiren kazanır. Sayaçlar: eşleştiren Y/T = 1/0, ayrıştıran Y/T = 1/0.
Sonraki tur: ayrıştıran çoğunlukla Y oynadı → eşleştiren Y; eşleştiren çoğunlukla Y oynadı → ayrıştıran T.
Tur 2: (Y, T) oynanır, ayrıştıran kazanır. Sayaçlar: eşleştiren Y/T = 2/0, ayrıştıran Y/T = 1/1.
Sonraki tur: ayrıştıranın sayaçları eşit (eşitlikte Y) → eşleştiren Y; eşleştiren çoğunlukla Y oynadı → ayrıştıran T.
Tur 3: (Y, T) oynanır, ayrıştıran kazanır. Sayaçlar: eşleştiren Y/T = 3/0, ayrıştıran Y/T = 1/2.
Sonraki tur: ayrıştıran çoğunlukla T oynadı → eşleştiren T; eşleştiren çoğunlukla Y oynadı → ayrıştıran T.
Tur 4: (T, T) oynanır, eşleştiren kazanır. Sayaçlar: eşleştiren Y/T = 3/1, ayrıştıran Y/T = 1/3.
Sonraki tur: ayrıştıran çoğunlukla T oynadı → eşleştiren T; eşleştiren çoğunlukla Y oynadı → ayrıştıran T.
Tur 5: (T, T) oynanır, eşleştiren kazanır. Sayaçlar: eşleştiren Y/T = 3/2, ayrıştıran Y/T = 1/4.
Sonraki tur: ayrıştıran çoğunlukla T oynadı → eşleştiren T; eşleştiren çoğunlukla Y oynadı → ayrıştıran T.
Tur 6: (T, T) oynanır, eşleştiren kazanır. Sayaçlar: eşleştiren Y/T = 3/3, ayrıştıran Y/T = 1/5.
return ne = [3, 3], na = [1, 5]. Eylemler döngüye girer (YY → YT → TT → TY …); döngüler uzadıkça frekanslar ½'ye yaklaşır (6 turda 0,50 ve 0,17; 400 turda 0,472 ve 0,492).
def fictitious(T): ne, na = [0, 0], [0, 0] # Y/T sayaçları a, b = 0, 0 # 1. tur: ikisi de Y for t in range(1, T + 1): ne[a] += 1 # eşleştirenin geçmişi na[b] += 1 # ayrıştıranın geçmişi # eşleştiren: ayrıştıranın çoğunluğunu eşle a = 0 if na[0] >= na[1] else 1 # ayrıştıran: eşleştirenin çoğunluğundan ayrış b = 1 if ne[0] > ne[1] else 0 return ne, na
En İyi Tepki ve Kurgusal Oyun
Kurgusal Oyun: Frekanslar Dengeye Yakınsar
- Eylemler döngüler hâlinde değişir (döngüler giderek uzar), ama frekanslar karışık dengeye (½, ½) yaklaşır: 400 turda 0,472 ve 0,492.
- Yakınsama garantisi: iki kişilik sıfır toplamlı oyunlar (Robinson 1951), 2×2 oyunlar, potansiyel oyunlar. Shapley (1964): 3×3 bir oyunda frekanslar döner, yakınsamaz.
Pişmanlık ve Hedge
Dışsal Pişmanlık: “Lideri İzle” Neden Başarısız?
Pişmanlık = (geriye bakınca en iyi tek eylemi hep oynasaydın alacağın toplam) − (gerçekte aldığın toplam). Dışsal pişmanlık RT = maxi Σt gt(i) − Σt gt(at): geriye dönük en iyi sabit eylemle fark. RT/T → 0 ise algoritma pişmanlıksızdır.
| t | Önceki toplam A / B | g(A) | g(B) | Lideri izle | Kazanç |
|---|---|---|---|---|---|
| 1 | 0,0 / 0,0 | 0,5 | 0,0 | A | 0,5 |
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | |||||
| 6 |
Lider A (toplam 0,0 / 0,0) → A seçilir; tur kazancı 0,5. Algoritmanın toplamı: 0,5.
| t | Önceki toplam A / B | g(A) | g(B) | Lideri izle | Kazanç |
|---|---|---|---|---|---|
| 1 | 0,0 / 0,0 | 0,5 | 0,0 | A | 0,5 |
| 2 | 0,5 / 0,0 | 0,0 | 1,0 | A | 0,0 |
| 3 | |||||
| 4 | |||||
| 5 | |||||
| 6 |
Lider A (toplam 0,5 / 0,0) → A seçilir; tur kazancı 0,0. Algoritmanın toplamı: 0,5.
| t | Önceki toplam A / B | g(A) | g(B) | Lideri izle | Kazanç |
|---|---|---|---|---|---|
| 1 | 0,0 / 0,0 | 0,5 | 0,0 | A | 0,5 |
| 2 | 0,5 / 0,0 | 0,0 | 1,0 | A | 0,0 |
| 3 | 0,5 / 1,0 | 1,0 | 0,0 | B | 0,0 |
| 4 | |||||
| 5 | |||||
| 6 |
Lider B (toplam 0,5 / 1,0) → B seçilir; tur kazancı 0,0. Algoritmanın toplamı: 0,5.
| t | Önceki toplam A / B | g(A) | g(B) | Lideri izle | Kazanç |
|---|---|---|---|---|---|
| 1 | 0,0 / 0,0 | 0,5 | 0,0 | A | 0,5 |
| 2 | 0,5 / 0,0 | 0,0 | 1,0 | A | 0,0 |
| 3 | 0,5 / 1,0 | 1,0 | 0,0 | B | 0,0 |
| 4 | 1,5 / 1,0 | 0,0 | 1,0 | A | 0,0 |
| 5 | |||||
| 6 |
Lider A (toplam 1,5 / 1,0) → A seçilir; tur kazancı 0,0. Algoritmanın toplamı: 0,5.
| t | Önceki toplam A / B | g(A) | g(B) | Lideri izle | Kazanç |
|---|---|---|---|---|---|
| 1 | 0,0 / 0,0 | 0,5 | 0,0 | A | 0,5 |
| 2 | 0,5 / 0,0 | 0,0 | 1,0 | A | 0,0 |
| 3 | 0,5 / 1,0 | 1,0 | 0,0 | B | 0,0 |
| 4 | 1,5 / 1,0 | 0,0 | 1,0 | A | 0,0 |
| 5 | 1,5 / 2,0 | 1,0 | 0,0 | B | 0,0 |
| 6 |
Lider B (toplam 1,5 / 2,0) → B seçilir; tur kazancı 0,0. Algoritmanın toplamı: 0,5.
| t | Önceki toplam A / B | g(A) | g(B) | Lideri izle | Kazanç |
|---|---|---|---|---|---|
| 1 | 0,0 / 0,0 | 0,5 | 0,0 | A | 0,5 |
| 2 | 0,5 / 0,0 | 0,0 | 1,0 | A | 0,0 |
| 3 | 0,5 / 1,0 | 1,0 | 0,0 | B | 0,0 |
| 4 | 1,5 / 1,0 | 0,0 | 1,0 | A | 0,0 |
| 5 | 1,5 / 2,0 | 1,0 | 0,0 | B | 0,0 |
| 6 | 2,5 / 2,0 | 0,0 | 1,0 | A | 0,0 |
Lider A (toplam 2,5 / 2,0) → A seçilir; tur kazancı 0,0. Algoritmanın toplamı: 0,5. En iyi sabit eylem B: 3. Pişmanlık = 3 − 0,5 = 2,5 ≈ T/2.
Pişmanlık ve Hedge
Çarpımsal Ağırlıklar / Hedge
- Her eyleme ağırlık ver: wi = 1.
- Her turda olasılıkla oyna: pi = wi / Σj wj.
- Tüm eylemlerin kazancını gör, güncelle:
wi ← wi · eη·gt(i)Kazancı 1 olan eylemin ağırlığı eη katına çıkar (η = ln 2 ise tam 2 katına).
Pişmanlık ve Hedge
Kod İzleme: Çarpımsal Ağırlıklar
Üç uzman (eylem) A, B, C; η = 0,5. Başlangıçta ağırlıklar eşit: w = [1, 1, 1].
Tur 1: W = 3,00, olasılıklar p = [0,33, 0,33, 0,33].
Kazançlar açıklanır g = [1, 0, 0,5]. Beklenen kazanç Σ p·g = 0,50 → top = 0,50.
Güncelleme w ← w·e0,5·g: w = [1,65, 1,00, 1,28]. Bu turda kazancı yüksek olan uzmanın ağırlığı büyür.
Tur 2: W = 3,93, olasılıklar p = [0,42, 0,25, 0,33].
Kazançlar açıklanır g = [1, 0, 0,5]. Beklenen kazanç Σ p·g = 0,58 → top = 1,08.
Güncelleme w ← w·e0,5·g: w = [2,72, 1,00, 1,65]. Bu turda kazancı yüksek olan uzmanın ağırlığı büyür.
Tur 3: W = 5,37, olasılıklar p = [0,51, 0,19, 0,31].
Kazançlar açıklanır g = [0, 1, 0,5]. Beklenen kazanç Σ p·g = 0,34 → top = 1,42.
Güncelleme w ← w·e0,5·g: w = [2,72, 1,65, 2,12]. Bu turda kazancı yüksek olan uzmanın ağırlığı büyür.
Tur 4: W = 6,48, olasılıklar p = [0,42, 0,25, 0,33].
Kazançlar açıklanır g = [0, 1, 0,5]. Beklenen kazanç Σ p·g = 0,42 → top = 1,84.
Güncelleme w ← w·e0,5·g: w = [2,72, 2,72, 2,72]. Bu turda kazancı yüksek olan uzmanın ağırlığı büyür.
Tur 5: W = 8,15, olasılıklar p = [0,33, 0,33, 0,33].
Kazançlar açıklanır g = [0, 1, 0,5]. Beklenen kazanç Σ p·g = 0,50 → top = 2,34.
Güncelleme w ← w·e0,5·g: w = [2,72, 4,48, 3,49]. Bu turda kazancı yüksek olan uzmanın ağırlığı büyür.
return 2,34. En iyi sabit uzman B: 3. Pişmanlık = 3 − 2,34 = 0,66 (lideri izle 5 turda bundan kötü olabilir).
import math def hedge(G, eta): w = [1.0] * len(G[0]) top = 0.0 for g in G: # her tur W = sum(w) p = [x / W for x in w] top += sum(pi * gi for pi, gi in zip(p, g)) w = [x*math.exp(eta*gi) for x, gi in zip(w, g)] return top
Pişmanlık ve Hedge
Varsayımı Değiştir: Ya Rakip de Öğrenirse?
Sabit rakip: en iyi tepkiye gider. Beklenen kazanç: Taş 0,45, Kağıt 0,65, Makas 0,40. Hedge'in Kağıt olasılığı 100. turda 0,82, 300. turda 0,997.
Öğrenen rakip: hedef kayar. İkisi aynı anda güncellenir; oyuncu 1 (0,5; 0,3; 0,2), oyuncu 2 eşit olasılıklarla başlar.
| tur | 100 | 200 | 800 | 1000 |
|---|---|---|---|---|
| o turdaki P(Taş) | 0,19 | 0,46 | 0,14 | 0,19 |
| ortalama P(Taş) | 0,35 | 0,31 | 0,33 | 0,34 |
Sabit rakip: en iyi tepkiye gider. Beklenen kazanç: Taş 0,45, Kağıt 0,65, Makas 0,40. Hedge'in Kağıt olasılığı 100. turda 0,82, 300. turda 0,997.
Öğrenen rakip: hedef kayar. İkisi aynı anda güncellenir; oyuncu 1 (0,5; 0,3; 0,2), oyuncu 2 eşit olasılıklarla başlar.
| tur | 100 | 200 | 800 | 1000 |
|---|---|---|---|---|
| o turdaki P(Taş) | 0,19 | 0,46 | 0,14 | 0,19 |
| ortalama P(Taş) | 0,35 | 0,31 | 0,33 | 0,34 |
Sabit rakip: en iyi tepkiye gider. Beklenen kazanç: Taş 0,45, Kağıt 0,65, Makas 0,40. Hedge'in Kağıt olasılığı 100. turda 0,82, 300. turda 0,997.
Öğrenen rakip: hedef kayar. İkisi aynı anda güncellenir; oyuncu 1 (0,5; 0,3; 0,2), oyuncu 2 eşit olasılıklarla başlar.
| tur | 100 | 200 | 800 | 1000 |
|---|---|---|---|---|
| o turdaki P(Taş) | 0,19 | 0,46 | 0,14 | 0,19 |
| ortalama P(Taş) | 0,35 | 0,31 | 0,33 | 0,34 |
Pişmanlık ve Hedge
Hedge Kendine Karşı: Yazı-Tura Eşleştirme
- İki oyuncu da Hedge (η = 0,1) kullanıyor. Başlangıç ağırlıkları: eşleştiren (Y, T) = (0,8; 0,2), yani P(Y) = 0,8; ayrıştıran (0,5; 0,5). Kazanan 1, kaybeden 0 alır; her turda iki oyuncu da eylemlerinin beklenen kazancıyla aynı anda günceller.
- Her turdaki olasılık (son yineleme) dengeye oturmaz, etrafında büyük salınımlar yapar; zaman ortalaması minimaks stratejisine (½, ½) yaklaşır (600 turda 0,498). Minimaks teoreminin öğrenme yoluyla ispatı buna dayanır.
Pişmanlık ve Hedge
Pişmanlıksız Öğrenme Hangi Dengeye Gider?
- Bir öneri makinesi herkese ne oynayacağını söyler (trafik ışığı gibi).
- Korelasyonlu denge (correlated equilibrium, CE): önerini gördükten sonra da uymak en iyisidir. Daha güçlü bir pişmanlık türünü (iç pişmanlık) küçülten algoritmalar CE'ye götürür.
- Kaba korelasyonlu denge (CCE) daha zayıftır: öneriyi görmeden “hep şunu oynarım” demek kazandırmaz. Herkes pişmanlıksız oynarsa zaman ortalaması CCE'ye yaklaşır.
- CE ve CCE hızlı hesaplanır; karışık Nash dengesi ise PPAD-tam.
Çok Kollu Haydut
Çok Kollu Haydut (Multi-Armed Bandit)
- K kollu kumar makinesi: kol i, ortalaması μi olan (bilinmeyen) rastgele ödül verir.
- Her turda bir kol çekilir ve yalnızca onun ödülü görülür (Hedge'den farkı: kısmi geri bildirim).
- Pişmanlık: RT = T·μ* − Σt μat, μ* = en iyi kolun ortalaması.
UCB1, μ = (0,3; 0,5; 0,7), 40 tur: az denenen kolun aralığı geniştir, bu yüzden yeniden denenir.
Uygulamalar: reklam ve haber önerisi, A/B testi, klinik deneyler, fiyat deneme.
Çok Kollu Haydut
Kod İzleme: ε-Açgözlü (ε = 0,2)
ε-açgözlü her tur ε olasılıkla rastgele kol çeker (keşif), yoksa en büyük Q'lu kolu (sömürü). Çağrı: egreedy([0.3, 0.5, 0.7], 8, 0.2, random.Random(11)). Tahminler Q = 0, sayaçlar N = 0. Kodda kollar 0'dan numaralanır: kol 0, 1, 2 = Kol 1, 2, 3.
t = 1: 0,452 ≥ 0,2 → sömürü: en büyük Q'lu kol 0 (eşitlikte ilk indis).
Ödül r = 0; N[0] = 1, Q[0] = 0,00 (artımlı ortalama).
t = 2: 0,924 ≥ 0,2 → sömürü: en büyük Q'lu kol 0 (eşitlikte ilk indis).
Ödül r = 0; N[0] = 2, Q[0] = 0,00 (artımlı ortalama).
t = 3: 0,508 ≥ 0,2 → sömürü: en büyük Q'lu kol 0 (eşitlikte ilk indis).
Ödül r = 0; N[0] = 3, Q[0] = 0,00 (artımlı ortalama).
t = 4: rastgele sayı 0,185 < 0,2 → keşif, rastgele kol 2.
Ödül r = 1; N[2] = 1, Q[2] = 1,00 (artımlı ortalama).
t = 5: 0,614 ≥ 0,2 → sömürü: en büyük Q'lu kol 2.
Ödül r = 1; N[2] = 2, Q[2] = 1,00 (artımlı ortalama).
t = 6: 0,447 ≥ 0,2 → sömürü: en büyük Q'lu kol 2.
Ödül r = 1; N[2] = 3, Q[2] = 1,00 (artımlı ortalama).
t = 7: 0,539 ≥ 0,2 → sömürü: en büyük Q'lu kol 2.
Ödül r = 0; N[2] = 4, Q[2] = 0,75 (artımlı ortalama).
t = 8: 0,634 ≥ 0,2 → sömürü: en büyük Q'lu kol 2.
Ödül r = 1; N[2] = 5, Q[2] = 0,80 (artımlı ortalama).
return N = [3, 0, 5]. İlk 3 tur kol 0'a takıldı (hepsi 0 ödül, eşitlikte ilk kol); tek bir keşif en iyi kolu (2) buldu.
def egreedy(mu, T, eps, rng): N, Q = [0] * len(mu), [0.0] * len(mu) for t in range(1, T + 1): if rng.random() < eps: # keşif a = rng.randrange(len(mu)) else: # sömürü a = Q.index(max(Q)) r = 1 if rng.random() < mu[a] else 0 N[a] += 1 Q[a] += (r - Q[a]) / N[a] return N, Q
Çok Kollu Haydut
Kod İzleme: UCB1 (Üst Güven Sınırı)
Çağrı: ucb([0.3, 0.5, 0.7], 8, random.Random(3)). Tahminler ve sayaçlar sıfır. Puan Q + √(2 ln t / N): t şu anki tur numarası, N kolun çekilme sayısı. Az çekilen kolun payı büyüktür.
t = 1: hiç denenmemiş kolun payı ∞ → ilk denenmemiş kol 0 seçilir (her kol bir kez).
Ödül r = 1; Q[0] = 1,00, N[0] = 1.
t = 2: hiç denenmemiş kolun payı ∞ → ilk denenmemiş kol 1 seçilir (her kol bir kez).
Ödül r = 0; Q[1] = 0,00, N[1] = 1.
t = 3: hiç denenmemiş kolun payı ∞ → ilk denenmemiş kol 2 seçilir (her kol bir kez).
Ödül r = 1; Q[2] = 1,00, N[2] = 1.
t = 4: güven payı √(2 ln t / N) = [1,67, 1,67, 1,67]; UCB = Q + b = [2,67, 1,67, 2,67] → en büyük: kol 0.
Ödül r = 0; Q[0] = 0,50, N[0] = 2.
t = 5: güven payı √(2 ln t / N) = [1,27, 1,79, 1,79]; UCB = Q + b = [1,77, 1,79, 2,79] → en büyük: kol 2.
Ödül r = 1; Q[2] = 1,00, N[2] = 2.
t = 6: güven payı √(2 ln t / N) = [1,34, 1,89, 1,34]; UCB = Q + b = [1,84, 1,89, 2,34] → en büyük: kol 2.
Ödül r = 1; Q[2] = 1,00, N[2] = 3.
t = 7: güven payı √(2 ln t / N) = [1,39, 1,97, 1,14]; UCB = Q + b = [1,89, 1,97, 2,14] → en büyük: kol 2.
Ödül r = 1; Q[2] = 1,00, N[2] = 4.
t = 8: güven payı √(2 ln t / N) = [1,44, 2,04, 1,02]; UCB = Q + b = [1,94, 2,04, 2,02] → en büyük: kol 1.
Ödül r = 0; Q[1] = 0,00, N[1] = 2.
return N = [2, 2, 4]. Az denenen kolun payı büyük kalır: t = 8'de kol 1 (tek deneme, Q = 0) yeniden denendi — keşif kendiliğinden.
def ucb(mu, T, rng): K = len(mu) N, Q = [0] * K, [0.0] * K for t in range(1, T + 1): b = [math.inf if n == 0 else math.sqrt(2*math.log(t)/n) for n in N] a = max(range(K), key=lambda i: Q[i] + b[i]) r = 1 if rng.random() < mu[a] else 0 N[a] += 1 Q[a] += (r - Q[a]) / N[a] return N, Q
Çok Kollu Haydut
Karşılaştırma: 5000 Tur, 100 Tekrar
- Kollar μ = (0,3; 0,5; 0,7), tohumlar 0–99. Yalnız sömürü her seferinde kol 0'a takılır: pişmanlık 0,4·T, doğrusal.
- ε-açgözlü hep %10 keşif yaptığı için doğrusal büyür. UCB1'in pişmanlığı yaklaşık 270. ile 2.370. tur arasında ε-açgözlüden yüksektir; sonra daha düşük kalır, çünkü UCB1'in pişmanlığı logaritmik, yani çok yavaş büyür (Auer vd., 2002).
- ε bir ayar parametresidir: kısa izlemede keşif görünsün diye 0,2, uzun karşılaştırmada 0,1, Çok Kollu Haydut oyununda 0,15 seçildi. Küçük ε daha az keşif, daha geç düzeltme demektir.
Çok Kollu Haydut
Oyuna Dönüş: Çok Kollu Haydut
Kollar μ = (0,3; 0,5; 0,7) iken 100 turda beklenen ödül ve pişmanlık:
| Strateji | Ödül | Pişmanlık |
|---|---|---|
| hep rastgele (yalnız keşif) | 50 | 20 |
| 0,5'lik kola bağlanmak | 50 | 20 |
| ε-açgözlü, ε = 0,15 (en iyiyi bulduktan sonra) | 67 | 3 |
| hep en iyi kol | 70 | 0 |
ε-açgözlü her tur 0,15 olasılıkla keşfe devam eder; UCB1 keşfi az denenen kollara yöneltir, pişmanlığı logaritmik büyür.
Kol 3'ün tek başarısız çekişi çok az bilgi verir. UCB1 burada Kol 3'ü seçer (sıradaki tur t = 9): puanı 0 + √(2 ln 9 / 1) ≈ 2,10, Kol 1'inki 0,67 + √(2 ln 9 / 3) ≈ 1,88.
Gerçekte: Dört kollu bir haydut deneyinde insan deneklerin seçimleri, belirsizliğe bonus veren (UCB benzeri) keşiften çok, değer farkına göre olasılıklı seçimle (softmax seçimi) açıklandı (Daw vd., 2006).
Pekiştirmeli Öğrenme
Hayduttan Pekiştirmeli Öğrenmeye
- Haydut = tek durumlu problem. Pekiştirmeli öğrenmede eylem, ödülün yanında bir sonraki durumu (ajanın bulunduğu konum, ör. tahtadaki dizilim) da belirler.
- Q-öğrenme (Watkins, 1989): durum-eylem değerini gözlenen geçişle günceller
α: öğrenme oranı (yeni bilgiye ne kadar güvenilir); γ: gelecekteki ödülün bugünkü değeri (iskonto).
Pekiştirmeli Öğrenme
Kod İzleme: Q-Öğrenme (α = 0,5, γ = 0,9)
Çağrı q_learn(ep, 0.5, 0.9): s0'dan başlayan 3 epizot. Tüm Q değerleri 0; s3 hedef (+1).
Epizot 1: s0 → sağ → s1, r = 0. best = max Q(s1, ·) = 0,000; hedef = 0,000; Q(s0,sağ) = 0,000 + 0,5·(0,000 − 0,000) = 0,000.
Epizot 1: s1 → sağ → s2, r = 0. best = max Q(s2, ·) = 0,000; hedef = 0,000; Q(s1,sağ) = 0,000 + 0,5·(0,000 − 0,000) = 0,000.
Epizot 1: s2 → sağ → s3, r = 1. s3 hedef → best = 0; hedef = 1,000; Q(s2,sağ) = 0,000 + 0,5·(1,000 − 0,000) = 0,500.
Epizot 2: s0 → sağ → s1, r = 0. best = max Q(s1, ·) = 0,000; hedef = 0,000; Q(s0,sağ) = 0,000 + 0,5·(0,000 − 0,000) = 0,000.
Epizot 2: s1 → sağ → s2, r = 0. best = max Q(s2, ·) = 0,500; hedef = 0,450; Q(s1,sağ) = 0,000 + 0,5·(0,450 − 0,000) = 0,225.
Epizot 2: s2 → sağ → s3, r = 1. s3 hedef → best = 0; hedef = 1,000; Q(s2,sağ) = 0,500 + 0,5·(1,000 − 0,500) = 0,750.
Epizot 3: s0 → sağ → s1, r = 0. best = max Q(s1, ·) = 0,225; hedef = 0,203; Q(s0,sağ) = 0,000 + 0,5·(0,203 − 0,000) = 0,101.
Epizot 3: s1 → sol → s0, r = 0. best = max Q(s0, ·) = 0,101; hedef = 0,091; Q(s1,sol) = 0,000 + 0,5·(0,091 − 0,000) = 0,046.
Epizot 3: s0 → sağ → s1, r = 0. best = max Q(s1, ·) = 0,225; hedef = 0,203; Q(s0,sağ) = 0,101 + 0,5·(0,203 − 0,101) = 0,152.
Epizot 3: s1 → sağ → s2, r = 0. best = max Q(s2, ·) = 0,750; hedef = 0,675; Q(s1,sağ) = 0,225 + 0,5·(0,675 − 0,225) = 0,450.
Epizot 3: s2 → sağ → s3, r = 1. s3 hedef → best = 0; hedef = 1,000; Q(s2,sağ) = 0,750 + 0,5·(1,000 − 0,750) = 0,875.
return Q. Ödül hedeften geriye yayıldı: Q(s2,sağ) = 0,875 → Q(s1,sağ) = 0,450 → Q(s0,sağ) = 0,152. Her hücrede Q(sağ) > Q(sol): açgözlü politika “hep sağa”.
def q_learn(episodes, alpha, gamma): Q = [[0.0, 0.0] for s in range(4)] # [sol, sağ] for ep in episodes: for s, a, r, s2 in ep: best = 0 if s2 == 3 else max(Q[s2]) hedef = r + gamma * best Q[s][a] += alpha * (hedef - Q[s][a]) return Q
Pekiştirmeli Öğrenme
Q-öğrenmenin Ötesi: Yöntemler ve Kilometre Taşları
- Thompson örneklemesi (1933): her kol için “ortalaması şu olabilir” dağılımı (son olasılık dağılımı) tutar, her tur bu dağılımdan bir tahmin çeker ve en büyük tahminin kolunu çeker.
- Kazan-kal, kaybet-değiş (Win-Stay Lose-Shift, WSLS; Nowak–Sigmund, 1993): 3 ya da 5 aldıysan aynı hamle, 0 ya da 1 aldıysan değiştir; Mahkûmun İkileminde tek hatadan iki turda işbirliğine döner.
- Diğerleri: EXP3 (yalnız çekilen kolun ödülünü gören Hedge; ödülleri bir rakip seçse bile pişmanlığı T'den yavaş büyür), SARSA ve DQN (Q tablosu yerine sinir ağı), CFR (pişmanlığa dayalı poker yöntemi).
| Yıl | Sistem | Yöntem |
|---|---|---|
| 1992 | TD-Gammon (tavla) | kendine karşı oyun |
| 2017–19 | Libratus, Pluribus (poker) | CFR (pişmanlık) |
| 2018 | AlphaZero (satranç, Go) | kendine karşı oyun |
Evrimsel Dinamik
Replikatör Dinamiği
- Büyük bir nüfusta bireyler rastgele eşleşir; her birey tek bir strateji oynar ve onu yavrularına aktarır. Rasyonellik yok, seçilim var.
- fi: i stratejisinin ortalama kazancı (uygunluk); f̄: nüfusun ortalama kazancı. Ortalamanın üstünde kazanan strateji yayılır.
- Bu derste kesikli biçim yeterli: yeni pay = eski pay × fi / f̄ (uygunluklar pozitif olsun diye her kazanca taban 3 eklenir).
- Evrimsel kararlı strateji (ESS): küçük bir mutant grubu istila edemez (Maynard Smith–Price, 1973).
Şahin–Güvercin: kaynak V = 4, kavga maliyeti C = 6. İki şahin kavga eder: (V − C)/2 = −1; şahin güvercine karşı V = 4, güvercin 0 alır; iki güvercin paylaşır: V/2 = 2.
Evrimsel Dinamik
Replikatör Dinamiği Adım Adım: Şahin–Güvercin
| nesil | x (şahin payı) | fŞ | fG | f̄ | yeni x = x·fŞ/f̄ |
|---|---|---|---|---|---|
| 0 | 0,100 | 6,50 | 4,80 | 4,97 | 0,131 |
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | |||||
| 6 | |||||
| 7 |
x = 0,100: fŞ = 3 + (−1)·x + 4·(1 − x) = 6,50, fG = 3 + 0·x + 2·(1 − x) = 4,80. fŞ > f̄ → şahinler artar.
| nesil | x (şahin payı) | fŞ | fG | f̄ | yeni x = x·fŞ/f̄ |
|---|---|---|---|---|---|
| 0 | 0,100 | 6,50 | 4,80 | 4,97 | 0,131 |
| 1 | 0,131 | 6,35 | 4,74 | 4,95 | 0,168 |
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | |||||
| 6 | |||||
| 7 |
x = 0,131: fŞ = 3 + (−1)·x + 4·(1 − x) = 6,35, fG = 3 + 0·x + 2·(1 − x) = 4,74. fŞ > f̄ → şahinler artar.
| nesil | x (şahin payı) | fŞ | fG | f̄ | yeni x = x·fŞ/f̄ |
|---|---|---|---|---|---|
| 0 | 0,100 | 6,50 | 4,80 | 4,97 | 0,131 |
| 1 | 0,131 | 6,35 | 4,74 | 4,95 | 0,168 |
| 2 | 0,168 | 6,16 | 4,66 | 4,92 | 0,210 |
| 3 | |||||
| 4 | |||||
| 5 | |||||
| 6 | |||||
| 7 |
x = 0,168: fŞ = 3 + (−1)·x + 4·(1 − x) = 6,16, fG = 3 + 0·x + 2·(1 − x) = 4,66. fŞ > f̄ → şahinler artar.
| nesil | x (şahin payı) | fŞ | fG | f̄ | yeni x = x·fŞ/f̄ |
|---|---|---|---|---|---|
| 0 | 0,100 | 6,50 | 4,80 | 4,97 | 0,131 |
| 1 | 0,131 | 6,35 | 4,74 | 4,95 | 0,168 |
| 2 | 0,168 | 6,16 | 4,66 | 4,92 | 0,210 |
| 3 | 0,210 | 5,95 | 4,58 | 4,87 | 0,257 |
| 4 | |||||
| 5 | |||||
| 6 | |||||
| 7 |
x = 0,210: fŞ = 3 + (−1)·x + 4·(1 − x) = 5,95, fG = 3 + 0·x + 2·(1 − x) = 4,58. fŞ > f̄ → şahinler artar.
| nesil | x (şahin payı) | fŞ | fG | f̄ | yeni x = x·fŞ/f̄ |
|---|---|---|---|---|---|
| 0 | 0,100 | 6,50 | 4,80 | 4,97 | 0,131 |
| 1 | 0,131 | 6,35 | 4,74 | 4,95 | 0,168 |
| 2 | 0,168 | 6,16 | 4,66 | 4,92 | 0,210 |
| 3 | 0,210 | 5,95 | 4,58 | 4,87 | 0,257 |
| 4 | 0,257 | 5,72 | 4,49 | 4,80 | 0,306 |
| 5 | |||||
| 6 | |||||
| 7 |
x = 0,257: fŞ = 3 + (−1)·x + 4·(1 − x) = 5,72, fG = 3 + 0·x + 2·(1 − x) = 4,49. fŞ > f̄ → şahinler artar.
| nesil | x (şahin payı) | fŞ | fG | f̄ | yeni x = x·fŞ/f̄ |
|---|---|---|---|---|---|
| 0 | 0,100 | 6,50 | 4,80 | 4,97 | 0,131 |
| 1 | 0,131 | 6,35 | 4,74 | 4,95 | 0,168 |
| 2 | 0,168 | 6,16 | 4,66 | 4,92 | 0,210 |
| 3 | 0,210 | 5,95 | 4,58 | 4,87 | 0,257 |
| 4 | 0,257 | 5,72 | 4,49 | 4,80 | 0,306 |
| 5 | 0,306 | 5,47 | 4,39 | 4,72 | 0,354 |
| 6 | |||||
| 7 |
x = 0,306: fŞ = 3 + (−1)·x + 4·(1 − x) = 5,47, fG = 3 + 0·x + 2·(1 − x) = 4,39. fŞ > f̄ → şahinler artar.
| nesil | x (şahin payı) | fŞ | fG | f̄ | yeni x = x·fŞ/f̄ |
|---|---|---|---|---|---|
| 0 | 0,100 | 6,50 | 4,80 | 4,97 | 0,131 |
| 1 | 0,131 | 6,35 | 4,74 | 4,95 | 0,168 |
| 2 | 0,168 | 6,16 | 4,66 | 4,92 | 0,210 |
| 3 | 0,210 | 5,95 | 4,58 | 4,87 | 0,257 |
| 4 | 0,257 | 5,72 | 4,49 | 4,80 | 0,306 |
| 5 | 0,306 | 5,47 | 4,39 | 4,72 | 0,354 |
| 6 | 0,354 | 5,23 | 4,29 | 4,62 | 0,401 |
| 7 |
x = 0,354: fŞ = 3 + (−1)·x + 4·(1 − x) = 5,23, fG = 3 + 0·x + 2·(1 − x) = 4,29. fŞ > f̄ → şahinler artar.
| nesil | x (şahin payı) | fŞ | fG | f̄ | yeni x = x·fŞ/f̄ |
|---|---|---|---|---|---|
| 0 | 0,100 | 6,50 | 4,80 | 4,97 | 0,131 |
| 1 | 0,131 | 6,35 | 4,74 | 4,95 | 0,168 |
| 2 | 0,168 | 6,16 | 4,66 | 4,92 | 0,210 |
| 3 | 0,210 | 5,95 | 4,58 | 4,87 | 0,257 |
| 4 | 0,257 | 5,72 | 4,49 | 4,80 | 0,306 |
| 5 | 0,306 | 5,47 | 4,39 | 4,72 | 0,354 |
| 6 | 0,354 | 5,23 | 4,29 | 4,62 | 0,401 |
| 7 | 0,401 | 5,00 | 4,20 | 4,52 | 0,443 |
x = 0,401: fŞ = 3 + (−1)·x + 4·(1 − x) = 5,00, fG = 3 + 0·x + 2·(1 − x) = 4,20. fŞ > f̄ → şahinler artar.
Evrimsel Dinamik
Her Başlangıçtan ESS'ye: x* = V/C = 2/3
- Dinlenme noktası fŞ = fG: 7 − 5x = 5 − 2x ⇒ x* = 2/3 — oyunun simetrik karışık Nash dengesiyle aynı.
- Taş-Kağıt-Makas'ta replikatör dinamiği dengenin etrafında döner; Geyik Avı'nda başlangıca göre iki saf dengeden birine gider.
Tekrarlanan Oyunlar
Tekrarlanan Mahkûmun İkilemi
Puan (yüksek iyi): cazibe 5 > karşılıklı işbirliği 3 > karşılıklı ihanet 1 > enayi 0. S: sessiz kalmak.
- Tek seferlik oyunda ve sonlu, bilinen sayıda tekrarda (geriye doğru çıkarımla) her turda ihanet.
- Oyun her turdan sonra δ olasılıkla sürüyorsa (geleceğin gölgesi) kinci tetik stratejisi (Grim) işbirliğini koruyabilir:
Uymak: her tur karşılıklı işbirliği, 3 ⇒ 3 + 3δ + … = 3/(1 − δ).
Sapmak: bu tur cazibe 5, sonra hep karşılıklı ihanet 1 ⇒ 5 + δ/(1 − δ).
Uymak ≥ sapmak; iki taraf (1 − δ) ile çarpılınca: 3 ≥ 5(1 − δ) + δ ⇔ δ ≥ (5 − 3)/(5 − 1) = 1/2.
δ = 0,9: uymak 30, sapmak 14 ⇒ işbirliği. δ = 0,3: uymak ≈ 4,29, sapmak ≈ 5,43 ⇒ ihanet.
Ceza inandırıcıdır: (İ, İ) tek turun dengesidir. Halk teoremi (folk theorem): δ büyükse, herkesin ihanetle garantilediğinden fazlasını veren pek çok ortalama kazanç dengede sürer.
Tekrarlanan Oyunlar
Kinci Tetik: İşbirliği Hangi δ'da Sürer?
Gelecek ne kadar değerliyse (δ büyükse) kinci tetik tehdidi o kadar caydırıcıdır; cazibe arttıkça işbirliği için gereken δ* eşiği yükselir.
Tekrarlanan Oyunlar
10 Turluk Maçlar: Kim Ne Oynar?
TFT işbirliği yapana işbirliğiyle karşılık verir: iki taraf da 30 puan. (Toplam: 30 – 30)
TFT ilk turda sömürülür, sonra hep ihanet eder: 9'a 14. TFT bir maçı asla kazanamaz (en fazla berabere). (Toplam: 9 – 14)
Şüpheci TFT ihanetle başlar; iki TFT birbirini “yankılar” → S/İ dönüşümlü, ikisi de 25. (Toplam: 25 – 25)
Kinci, tek ihaneti hiç affetmez: ilk turdan sonra karşılıklı ihanet sürer. (Toplam: 13 – 13)
Hep İhanet, saf işbirlikçiyi tamamen sömürür: 50'ye 0. (Toplam: 50 – 0)
S: sessiz kalmak, yani işbirliği (yeşil), İ: ihanet (kırmızı). TFT: ilk turda işbirliği, sonra rakibin son hamlesini tekrarla.
Tekrarlanan Oyunlar
Kod İzleme: match(tft, stft, 6)
Çağrı match(tft, stft, 6): geçmişler boş, puanlar 0.
t = 0: Geçmiş boş: TFT S, Şüpheci TFT İ ile açar.
PAY["Sİ"] = (0, 5) → puanlar 0 – 5.
t = 1: İkisi de rakibin son hamlesini kopyalar: TFT → İ, ŞTFT → S.
PAY["İS"] = (5, 0) → puanlar 5 – 5.
t = 2: İkisi de rakibin son hamlesini kopyalar: TFT → S, ŞTFT → İ.
PAY["Sİ"] = (0, 5) → puanlar 5 – 10.
t = 3: İkisi de rakibin son hamlesini kopyalar: TFT → İ, ŞTFT → S.
PAY["İS"] = (5, 0) → puanlar 10 – 10.
t = 4: İkisi de rakibin son hamlesini kopyalar: TFT → S, ŞTFT → İ.
PAY["Sİ"] = (0, 5) → puanlar 10 – 15.
t = 5: İkisi de rakibin son hamlesini kopyalar: TFT → İ, ŞTFT → S.
PAY["İS"] = (5, 0) → puanlar 15 – 15.
return (15, 15). Tek bir ilk ihanet sonsuz bir “yankı” başlatır: Sİ/İS dönüşümlü, tur başına ortalama 2,5 puan (karşılıklı işbirliğinde 3 olurdu).
PAY = {"SS": (3, 3), "Sİ": (0, 5),
"İS": (5, 0), "İİ": (1, 1)}
tft = lambda ben, rakip: rakip[-1] if rakip else "S"
stft = lambda ben, rakip: rakip[-1] if rakip else "İ"
def match(s1, s2, T):
h1, h2, p1, p2 = [], [], 0, 0
for t in range(T):
a, b = s1(h1, h2), s2(h2, h1)
u, v = PAY[a + b]
h1.append(a); h2.append(b)
p1, p2 = p1 + u, p2 + v
return p1, p2Tekrarlanan Oyunlar
Mini Axelrod Turnuvası: Adım Adım
| Strateji \ rakip | Hep-S | Hep-İ | TFT | Kinci | ŞTFT | Toplam | Sıra |
|---|---|---|---|---|---|---|---|
| Hep İşbirliği | 30 | 0 | 30 | 30 | 27 | 117 | |
| Hep İhanet | |||||||
| Tit-for-Tat | |||||||
| Kinci (Grim) | |||||||
| Şüpheci TFT |
Hep İşbirliği herkesle (kendi ikiziyle de) 10 tur oynar: toplam 117; en çok Hep İşbirliği karşısında kazanır (30).
| Strateji \ rakip | Hep-S | Hep-İ | TFT | Kinci | ŞTFT | Toplam | Sıra |
|---|---|---|---|---|---|---|---|
| Hep İşbirliği | 30 | 0 | 30 | 30 | 27 | 117 | |
| Hep İhanet | 50 | 10 | 14 | 14 | 10 | 98 | |
| Tit-for-Tat | |||||||
| Kinci (Grim) | |||||||
| Şüpheci TFT |
Hep İhanet herkesle (kendi ikiziyle de) 10 tur oynar: toplam 98; en çok Hep İşbirliği karşısında kazanır (50).
| Strateji \ rakip | Hep-S | Hep-İ | TFT | Kinci | ŞTFT | Toplam | Sıra |
|---|---|---|---|---|---|---|---|
| Hep İşbirliği | 30 | 0 | 30 | 30 | 27 | 117 | |
| Hep İhanet | 50 | 10 | 14 | 14 | 10 | 98 | |
| Tit-for-Tat | 30 | 9 | 30 | 30 | 25 | 124 | |
| Kinci (Grim) | |||||||
| Şüpheci TFT |
Tit-for-Tat herkesle (kendi ikiziyle de) 10 tur oynar: toplam 124; en çok Hep İşbirliği karşısında kazanır (30).
| Strateji \ rakip | Hep-S | Hep-İ | TFT | Kinci | ŞTFT | Toplam | Sıra |
|---|---|---|---|---|---|---|---|
| Hep İşbirliği | 30 | 0 | 30 | 30 | 27 | 117 | |
| Hep İhanet | 50 | 10 | 14 | 14 | 10 | 98 | |
| Tit-for-Tat | 30 | 9 | 30 | 30 | 25 | 124 | |
| Kinci (Grim) | 30 | 9 | 30 | 30 | 13 | 112 | |
| Şüpheci TFT |
Kinci (Grim) herkesle (kendi ikiziyle de) 10 tur oynar: toplam 112; en çok Hep İşbirliği karşısında kazanır (30).
| Strateji \ rakip | Hep-S | Hep-İ | TFT | Kinci | ŞTFT | Toplam | Sıra |
|---|---|---|---|---|---|---|---|
| Hep İşbirliği | 30 | 0 | 30 | 30 | 27 | 117 | |
| Hep İhanet | 50 | 10 | 14 | 14 | 10 | 98 | |
| Tit-for-Tat | 30 | 9 | 30 | 30 | 25 | 124 | |
| Kinci (Grim) | 30 | 9 | 30 | 30 | 13 | 112 | |
| Şüpheci TFT | 32 | 10 | 25 | 13 | 10 | 90 |
Şüpheci TFT herkesle (kendi ikiziyle de) 10 tur oynar: toplam 90; en çok Hep İşbirliği karşısında kazanır (32).
| Strateji \ rakip | Hep-S | Hep-İ | TFT | Kinci | ŞTFT | Toplam | Sıra |
|---|---|---|---|---|---|---|---|
| Hep İşbirliği | 30 | 0 | 30 | 30 | 27 | 117 | 2 |
| Hep İhanet | 50 | 10 | 14 | 14 | 10 | 98 | 4 |
| Tit-for-Tat | 30 | 9 | 30 | 30 | 25 | 124 | 1 |
| Kinci (Grim) | 30 | 9 | 30 | 30 | 13 | 112 | 3 |
| Şüpheci TFT | 32 | 10 | 25 | 13 | 10 | 90 | 5 |
Sıralama: Tit-for-Tat (124), Hep İşbirliği (117), Kinci (Grim) (112), Hep İhanet (98), Şüpheci TFT (90). Tit-for-Tat birinci — hiçbir maçı kazanmadan! Hep İhanet ise sondan ikinci.
Satırdaki stratejinin, sütundaki rakibe karşı 10 turda topladığı puan. Hep-S: Hep İşbirliği, Hep-İ: Hep İhanet, ŞTFT: Şüpheci TFT.
Tekrarlanan Oyunlar
Axelrod Turnuvaları (1980) ve Dersleri
Robert Axelrod iki bilgisayar turnuvası düzenledi (14 ve 62 program). İkisini de Anatol Rapoport'un 4 satırlık Tit-for-Tat'ı kazandı.
- Gürültü (yanlış hamle olasılığı) varsa iki TFT sonsuz misilleme döngüsüne girer; cömert TFT ihaneti bazen affeder ve daha iyi sonuç verir.
- Başarı ortama bağlıdır: rakip havuzu değişirse sıralama değişir — evrimsel turnuvada (replikatör) başarılı stratejiler çoğalır.
İki TFT, 4. turda A'nın tek bir hatası: sonrası sonsuz S/İ yankısı. 10 turda 29 – 24 (hatasız 30 – 30).
Özet
Tartışma: Öğrenme, İnsan ve Etik
Özet
Özet
| Yöntem | Açıklama | Sonuç |
|---|---|---|
| En iyi tepki dinamiği | Son eyleme en iyi tepki | Potansiyel oyunda dengeye; aksi hâlde döngü |
| Kurgusal oyun | Geçmiş frekanslara en iyi tepki | Sıfır toplamlıda frekanslar dengeye |
| Hedge | w ← w·eηg | RT = O(√(T ln n)); zaman ortalaması → CCE |
| ε-açgözlü / UCB | Keşif–sömürü dengesi | UCB: logaritmik pişmanlık |
| Q-öğrenme | Q ← Q + α(r + γ·max Q′ − Q) | Ödül hedeften geriye yayılır |
| Replikatör | Başarılı strateji yayılır | Şahin–Güvercin: x* = V/C |
| Tekrarlanan MI | Geleceğin gölgesi | δ ≥ 1/2 ise işbirliği; TFT güçlü |
Özet
Örnek Problemler
- Hedge'de η = ln 2, iki eylem, ilk iki turda kazançlar (1, 0) ve (1, 0). Üçüncü turda p1 kaçtır?
- UCB1, t = 10'da: kol 1 için Q = 0,6, N = 5; kol 2 için Q = 0,2, N = 1. Hangi kol seçilir?
- Şahin–Güvercin (V = 4, C = 6, taban 3) oyununda x = 0,5 iken bir sonraki nesilde şahin payı artar mı?
- Cazibe 5, karşılıklı işbirliği 3, karşılıklı ihanet 1 iken Grim ile işbirliğini sürdürmek için gereken en küçük δ nedir? Cazibe 7 olsaydı?
- Kurgusal oyun ile en iyi tepki dinamiği arasındaki fark nedir? Yazı-Tura'da hangisi dengeye “yaklaşır”?
- Q-öğrenmede Q(s, a) = 1, r = 0, γ = 0,9, max Q(s′, ·) = 2, α = 0,1. Güncellemeden sonra Q(s, a) kaç olur?
Cevapları göster
- w = (e2 ln 2, 1) = (4, 1) ⇒ p1 = 4/5 = 0,8.
- UCB = 0,6 + √(2 ln 10 / 5) ≈ 1,56; 0,2 + √(2 ln 10) ≈ 2,35 ⇒ kol 2 (az denendiği için).
- fŞ = 4,50, fG = 4,00, f̄ = 4,25 ⇒ x′ = 0,529 > 0,5: artar (2/3'e doğru).
- δ ≥ (5 − 3)/(5 − 1) = 1/2; cazibe 7 ise δ ≥ (7 − 3)/(7 − 1) = 2/3.
- En iyi tepki yalnız son eyleme bakar ve döner; kurgusal oyun tüm geçmişin frekansına bakar, frekanslar (½, ½)'ye yaklaşır.
- Q ← 1 + 0,1·(0 + 0,9·2 − 1) = 1,08: hedef 1,8 eski değerden büyük olduğu için Q artar.
Özet
Etkileşimli Oyunlar ve Laboratuvarlar
fictitious_play) ve replikatör dinamiği (replicator_dynamics).Özet
Kaynaklar
- D. Fudenberg, D. Levine, The Theory of Learning in Games, MIT Press, 1998.
- N. Cesa-Bianchi, G. Lugosi, Prediction, Learning, and Games, Cambridge, 2006.
- T. Lattimore, C. Szepesvári, Bandit Algorithms, Cambridge, 2020.
- P. Auer, N. Cesa-Bianchi, P. Fischer, “Finite-time analysis of the multiarmed bandit problem”, Machine Learning 47, 2002.
- C. Watkins, P. Dayan, “Q-learning”, Machine Learning 8, 1992; A. Blum, Y. Mansour, “From external to internal regret”, JMLR 8, 2007.
- R. Axelrod, The Evolution of Cooperation, Basic Books, 1984.
- J. Hofbauer, K. Sigmund, Evolutionary Games and Population Dynamics, Cambridge, 1998.
- T. Roughgarden, Twenty Lectures on Algorithmic Game Theory, 2016 (Ders 16–18); ders sayfası: CS364A (Stanford, 2013).
- N. Nisan, T. Roughgarden, É. Tardos, V. Vazirani (ed.), Algorithmic Game Theory, Cambridge, 2007 (Bölüm 4: öğrenme, pişmanlık ve denge).
- A. R. Karlin, Y. Peres, Game Theory, Alive, AMS, 2017 (Bölüm 7: evrimsel denge; Bölüm 18: uyarlanabilir karar verme); D. Easley, J. Kleinberg, Networks, Crowds, and Markets, 2010 (Bölüm 7: evrimsel oyun kuramı).
- Araç: Nashpy (kurgusal oyun, replikatör dinamiği).
Özet
Kaynaklar (2/2)
- J. Robinson, “An iterative method of solving a game”, Annals of Mathematics 54(2), 1951; K. Miyasawa, “On the convergence of the learning process in a 2×2 non-zero-sum two-person game”, Princeton Research Memo 33, 1961; L. S. Shapley, “Some topics in two-person games”, Advances in Game Theory, 1964.
- D. Monderer, L. S. Shapley, “Potential games”, Games and Economic Behavior 14(1), 1996.
- D. Foster, R. Vohra, “Calibrated learning and correlated equilibrium”, Games and Economic Behavior 21, 1997; S. Hart, A. Mas-Colell, “A simple adaptive procedure leading to correlated equilibrium”, Econometrica 68(5), 2000.
- J. Maynard Smith, G. R. Price, “The logic of animal conflict”, Nature 246, 1973.
- W. R. Thompson, “On the likelihood that one unknown probability exceeds another in view of the evidence of two samples”, Biometrika 25, 1933.
- P. Auer, N. Cesa-Bianchi, Y. Freund, R. E. Schapire, “The nonstochastic multiarmed bandit problem”, SIAM Journal on Computing 32(1), 2002.
- N. D. Daw, J. P. O’Doherty, P. Dayan, B. Seymour, R. J. Dolan, “Cortical substrates for exploratory decisions in humans”, Nature 441, 2006.
- C. Watkins, Learning from Delayed Rewards, doktora tezi, Cambridge Üniversitesi, 1989; V. Mnih vd., “Human-level control through deep reinforcement learning”, Nature 518, 2015.
- M. Zinkevich, M. Johanson, M. Bowling, C. Piccione, “Regret minimization in games with incomplete information”, NeurIPS, 2007.
- M. Nowak, K. Sigmund, “A strategy of win-stay, lose-shift that outperforms tit-for-tat in the Prisoner’s Dilemma game”, Nature 364, 1993.
Son
Çalışma soruları · Terim sözlüğü