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. 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ğı: gereken bilgi azalır ya da 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ıştıran geçmişi Y/T | Eşleştiren | Eşleştiren geçmişi Y/T | Ayrıştıran | Eşl. Y oranı | Ayr. Y oranı |
|---|---|---|---|---|---|---|
| 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ıştıran geçmişi Y/T | Eşleştiren | Eşleştiren geçmişi Y/T | Ayrıştıran | Eşl. Y oranı | Ayr. Y oranı |
|---|---|---|---|---|---|---|
| 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ıştıran geçmişi Y/T | Eşleştiren | Eşleştiren geçmişi Y/T | Ayrıştıran | Eşl. Y oranı | Ayr. Y oranı |
|---|---|---|---|---|---|---|
| 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ıştıran geçmişi Y/T | Eşleştiren | Eşleştiren geçmişi Y/T | Ayrıştıran | Eşl. Y oranı | Ayr. Y oranı |
|---|---|---|---|---|---|---|
| 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ıştıran geçmişi Y/T | Eşleştiren | Eşleştiren geçmişi Y/T | Ayrıştıran | Eşl. Y oranı | Ayr. Y oranı |
|---|---|---|---|---|---|---|
| 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ıştıran geçmişi Y/T | Eşleştiren | Eşleştiren geçmişi Y/T | Ayrıştıran | Eşl. Y oranı | Ayr. Y oranı |
|---|---|---|---|---|---|---|
| 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ıştıran geçmişi Y/T | Eşleştiren | Eşleştiren geçmişi Y/T | Ayrıştıran | Eşl. Y oranı | Ayr. Y oranı |
|---|---|---|---|---|---|---|
| 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ıştıran geçmişi Y/T | Eşleştiren | Eşleştiren geçmişi Y/T | Ayrıştıran | Eşl. Y oranı | Ayr. Y oranı |
|---|---|---|---|---|---|---|
| 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ıştıran geçmişi Y/T | Eşleştiren | Eşleştiren geçmişi Y/T | Ayrıştıran | Eşl. Y oranı | Ayr. Y oranı |
|---|---|---|---|---|---|---|
| 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ıştıran geçmişi Y/T | Eşleştiren | Eşleştiren geçmişi Y/T | Ayrıştıran | Eşl. Y oranı | Ayr. Y oranı |
|---|---|---|---|---|---|---|
| 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?
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)
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]. İyi uzmanın payı 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]. İyi uzmanın payı 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]. İyi uzmanın payı 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]. İyi uzmanın payı 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]. İyi uzmanın payı 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
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.
- 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?
- Kaba korelasyonlu denge (coarse correlated equilibrium, CCE): oyuncuların ortak dağılımı σ; hiçbir oyuncu σ'yı bırakıp “hep a′ oyna”ya geçerek kazanamaz. Herkes pişmanlıksız oynarsa zaman ortalaması CCE'ye yaklaşır.
- Korelasyonlu denge (correlated equilibrium, CE): oyuncu kendisine önerilen eylemi gördükten sonra da sapmaz. İç (swap) pişmanlığı küçük algoritmalar CE'ye götürür (Foster–Vohra 1997, Hart–Mas-Colell 2000, Blum–Mansour 2007).
- CE ve CCE doğrusal programla polinom zamanda 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ğ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.
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 keşfe daha çok tur ayırır (yaklaşık 300.–2.400. turlarda geride), ama pişmanlığı logaritmik (Auer vd., 2002) olduğundan 2.400. turdan sonra öndedir.
- ε 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: puanı 0 + √(2 ln 8 / 1) ≈ 2,04, Kol 1'inki 0,67 + √(2 ln 8 / 3) ≈ 1,84.
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 da belirler.
- Q-öğrenme (Watkins, 1989): durum-eylem değerini gözlenen geçişle günceller
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 kolun sonsalından (ör. Beta) örnek çek, en büyük örneğin kolunu oyna; logaritmik pişmanlık.
- EXP3 (Auer vd., 2002): kısmi geri bildirimli Hedge; ödülleri bir rakip seçse bile (çekişmeli haydut) pişmanlık O(√(T K ln K)).
- 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.
- SARSA, DQN: hedefte seçilen a′ (SARSA); Q tablosu yerine sinir ağı (Mnih vd., 2015).
- Pişmanlık eşleştirme (Hart–Mas-Colell, 2000): her eylemi birikmiş pozitif pişmanlığıyla orantılı oyna; poker yapay zekâlarındaki CFR bunu oyun ağacına taşır (Zinkevich vd., 2007).
| 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 biri bir strateji “genine” sahiptir. Rasyonellik yok, seçilim var.
- Ortalamanın üstünde kazanan strateji yayılır:
ẋi = xi ( fi(x) − f̄(x) ) - Kesikli zaman: xi′ = xi · fi / f̄ (uygunluklar pozitif olsun diye taban uygunluk 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
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 − x + 4(1−x) = 6,50, fG = 3 + 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 − x + 4(1−x) = 6,35, fG = 3 + 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 − x + 4(1−x) = 6,16, fG = 3 + 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 − x + 4(1−x) = 5,95, fG = 3 + 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 − x + 4(1−x) = 5,72, fG = 3 + 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 − x + 4(1−x) = 5,47, fG = 3 + 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 − x + 4(1−x) = 5,23, fG = 3 + 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 − x + 4(1−x) = 5,00, fG = 3 + 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): T = 5 > R = 3 > P = 1 > S = 0. İşbirliği = sessiz kalmak. Buradaki T cazibe kazancıdır; pişmanlıktaki tur sayısı T ile aynı harf, farklı anlam.
- 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 strateji (Grim, bir tetik stratejisi) işbirliğini koruyabilir:
Uymak: her tur R = 3 ⇒ 3 + 3δ + … = 3/(1 − δ).
Sapmak: bu tur T = 5, sonra hep P = 1 ⇒ 5 + δ/(1 − δ).
Uymak ≥ sapmak ⇔ 3 ≥ 5(1 − δ) + δ ⇔ δ ≥ (T − R)/(T − P) = 1/2.
δ = 0,9: uymak 30, sapmak 14 ⇒ işbirliği. δ = 0,3: uymak ≈ 4,29, sapmak ≈ 5,43 ⇒ ihanet.
Ceza inandırıcı: (H, H) tek turun dengesidir, iki Grim birlikte alt oyun mükemmel dengedir. Halk teoremi (folk theorem): δ yeterince büyükse bireysel rasyonel pek çok ortalama kazanç dengede elde edilebilir.
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” → İ/H 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)
İ: işbirliği (yeşil), H: 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 İ, Şüpheci TFT H ile açar.
PAY["IH"] = (0, 5) → puanlar 0 – 5.
t = 1: İkisi de rakibin son hamlesini kopyalar: TFT → H, ŞTFT → İ.
PAY["HI"] = (5, 0) → puanlar 5 – 5.
t = 2: İkisi de rakibin son hamlesini kopyalar: TFT → İ, ŞTFT → H.
PAY["IH"] = (0, 5) → puanlar 5 – 10.
t = 3: İkisi de rakibin son hamlesini kopyalar: TFT → H, ŞTFT → İ.
PAY["HI"] = (5, 0) → puanlar 10 – 10.
t = 4: İkisi de rakibin son hamlesini kopyalar: TFT → İ, ŞTFT → H.
PAY["IH"] = (0, 5) → puanlar 10 – 15.
t = 5: İkisi de rakibin son hamlesini kopyalar: TFT → H, ŞTFT → İ.
PAY["HI"] = (5, 0) → puanlar 15 – 15.
return (15, 15). Tek bir ilk ihanet sonsuz bir “yankı” başlatır: İH/Hİ dönüşümlü, tur başına ortalama 2,5 puan (karşılıklı işbirliğinde 3 olurdu).
PAY = {"II": (3, 3), "IH": (0, 5),
"HI": (5, 0), "HH": (1, 1)}
tft = lambda ben, rakip: rakip[-1] if rakip else "I"
stft = lambda ben, rakip: rakip[-1] if rakip else "H"
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-İ | Hep-H | 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-İ | Hep-H | 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-İ | Hep-H | 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-İ | Hep-H | 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-İ | Hep-H | 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-İ | Hep-H | 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-İ: Hep İşbirliği, Hep-H: 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 İ/H yankısı. 10 turda 29 – 24 (hatasız 30 – 30).
Özet
Tartışma: Öğrenme, İnsan ve Etik
Özet
Özet
| Yöntem | Ana fikir | 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ı?
- T = 5, R = 3, P = 1 için Grim ile işbirliğini sürdürmek için gereken en küçük δ nedir? T = 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; T = 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üğü