Sztuczna intelegencja w grze Poker

78
1 Sztuczna intelegencja w grze Poker Autor: Pham Hoang Minh

description

Sztuczna intelegencja w grze Poker. Autor: Pham Hoang Minh. Odmiana Pokera „Texas Holdem”. Cztery fazy rozgrywki: Pre-flop Flop Turn River. Wprowadzenie. Poker interesująca gra do badań AI Gra o niepełnej informacji Wieloosobowa rywalizacja Probabilistyczna wiedza (o przeciwnikach) - PowerPoint PPT Presentation

Transcript of Sztuczna intelegencja w grze Poker

Page 1: Sztuczna intelegencja w grze  Poker

11

Sztuczna intelegencja w grze Poker

Autor: Pham Hoang Minh

Page 2: Sztuczna intelegencja w grze  Poker

22

Odmiana Pokera „Texas Holdem”

• Cztery fazy rozgrywki:• Pre-flop• Flop• Turn • River

Page 3: Sztuczna intelegencja w grze  Poker

33

Wprowadzenie

• Poker interesująca gra do badań AI

• Gra o niepełnej informacji

• Wieloosobowa rywalizacja

• Probabilistyczna wiedza (o przeciwnikach)

• Ocena ryzyka

• Możliwe oszustwo (blefowanie)

Page 4: Sztuczna intelegencja w grze  Poker

44

Niepełna kontra pełna informacja

• Sukcesy AI w grach typu szachy, warcaby, ...

– Kompletna informacja o stanie gry

– Programy zdolne pokonać najlepszych graczy

• W kontraście gry typu: Poker, Brydż, ...

– Karty innych graczy są nieznane

– Trudność tworzenia programów na poziomie „World-Class”

Page 5: Sztuczna intelegencja w grze  Poker

55

Tradycyjne metody nie działają

• Metoda „Deep Search” (min-max) się nie sprawdza

• Niekompletna informacja to powód wolnego postępu systemów AI gry Pokera

• Lecz to powód większego potencjału badawczego

Page 6: Sztuczna intelegencja w grze  Poker

66

Cel: tworzenie gracza pokera na poziomie „World-Class”

• Atrybuty które gracz pokera na poziomie „World-Class” musi posiadać :

– Umiejętność oceny Hand Evaluation

(Wartości swojej ręki)

– Unpredictability (Nieprzewidywalność)

– Bluffing (Blefowanie)

– Opponent Modeling (Modelowanie przeciwników)

Page 7: Sztuczna intelegencja w grze  Poker

77

Hand Strength

Ocena siły naszej ręki w relacji z rąk przeciwników

• Obliczenie rozważa prawdopodobieństwo każdej możliwej ręki przeciwników, bazując na stan aktualnej gry

• Dokładniejsze obliczenie uwzględnia:

– Ilość graczy nadal uczestniczących w grze– Względnej pozycji gracza przy stole– Historia licytacji aktualnej partii

Page 8: Sztuczna intelegencja w grze  Poker

88

Hand Potential

• Obliczenie prawdopodobieństwo zmiany naszej ręki:

– Prowadzi do zwycięstwa– Prowadzi do porażki

• Przykład:

– Ręka posiadająca 4 karty samego koloru– Niska siła ręki – Duży potencjał na osiągnięcie „kolor” (flush)

Page 9: Sztuczna intelegencja w grze  Poker

99

Unpredictability

• Utrudnia przeciwników do rozpoznania modelu naszej strategii

• Mieszając strategie (spodarycznie rozwiązać daną sytuację różnymi sposobami)

• Przeciwnicy mogą popełnić błędy oparte na niepoprawnych przewidywaniach

Page 10: Sztuczna intelegencja w grze  Poker

1010

Bluffing

• Postawowy atrybut dla pomyślnej gry

• Umożliwia wygranie partii z słabą ręką

• Powoduje niepokój przeciwników

• System może tworzyć teoretycznie optymalną częstość blefowania w poszczególnych sytuacjach

Page 11: Sztuczna intelegencja w grze  Poker

1111

Bluffing c.d.

• Minimalny system blefowania używa:– „Hand Strength”– „Hand Potential”

• Lepszy system identyfikuje:– zysk blefu – wnioskuje w przybliżeniu siły ręki

przeciwników– przewiduje procent ich pasowania (fold)

Page 12: Sztuczna intelegencja w grze  Poker

1212

Opponent Modeling

• Przewiduje postępowanie przeciwników w poszczególnych sytuacjach

• Minimalny system używa pojedynczego modelu dla wszystkich przeciwników

• Ulepszony posiada unikalny model dla każdego oponenta, oparty na jego osobistej historii gry w przeszłości

Page 13: Sztuczna intelegencja w grze  Poker

1313

Inne cechy...

• System AI na poziomie„World-Class” musi posiadać wszystkie wymienione atrybuty

• Istnieją jeszcze drobne cechy potrzebne do osiągnięcia tego poziomu

• Te cechy stanowią część „Betting Strategy” (Strategie Licytacji), która determinuje system: kiedy pasować (fold), wejść (call) czy podbijać (raise) w poszczególnych sytuacjach

Page 14: Sztuczna intelegencja w grze  Poker

1414

Betting Strategy

• Betting Strategy dzieli się na:

– „Pre-flop”

– „Post-flop”

• Fazy te znacząco się od siebie różnią:

– Pre-flop : 2 „hole cards”, wcześniejsze akcje graczy podczas 1-szej licytacji

– Post-flop : pełniejszy kontekst gry, „2 hole cards” i „community cards”, historię wcześniejszych decyzji licytacji przeciwników

Page 15: Sztuczna intelegencja w grze  Poker

1515

Betting Strategies w „Pre-flop”

• Wiedza eksperska:

– Sklansky’s rankings (Rangi Sklanskiego)

– Hutchison system (System Hutchisona)

• Symulacje:

– Roll-out simulation– Iterated Roll-out simulation

• Te metody służą do wyliczenie „income rate” (wartości ręki ) 2 „hole cards” podczas fazy „Pre-flop”

Page 16: Sztuczna intelegencja w grze  Poker

1616

Wiedza eksperska

• Sklansky’s ranking

• Hutchison system

• Przypisanie każdej ręki pewnej ilości punktów wg. ustalonych reguł przez profesjonalistów gry Poker, na podstawie których podejmiemy decyzję licytacji

Page 17: Sztuczna intelegencja w grze  Poker

1717

Sklansky’s ranking

Page 18: Sztuczna intelegencja w grze  Poker

1818

Roll-out simulation

1. Polega na obliczenie kilka milionów partii, gdzie wszystcy gracze wybierają „call” podczas pierwszej licytacji (Big blind)

2. Po czym pozostałe karty zostają rozdane bez jakikolwiek dalszych zakładów

– Nierealistyczna sytuacja

– Jednak daje podstawowe przybliżoną ocenę ręki w danej sytuacji

Page 19: Sztuczna intelegencja w grze  Poker

1919

Iterated Roll-out simulation

• Udoskonalenie symulacji „roll-out”

• Uwzględnia wiedzę zdobytą w poprzednich partiach

• Jeżeli dana 2 kart właśnych ma ujemny bilans w poprzednich partiach, zwiększa się % ze gracz pasuje w fazie „Pre-flop”

• Wady: nie uwzględnia pozycje gracza w stole i działanie przeciwników podczas licytacji

Page 20: Sztuczna intelegencja w grze  Poker

2020

Wartości ręki wyznaczone ekperymentalnie

Hand IR-10 Iterated Hand IR-10 Iterated Hand IR-10 Iterated

AA* +2112 +2920 ATs +736 +640 KQo +515 +310

KK* + 1615 +2180 99* +553 +630 QTs +655 +280

QQ* + 1224 +1700 KQs +858 +620 QJs + 720 +270

JJ* +935 +1270 AQo +555 +560 A9s +538 +220

+714 +920 KJs +767 +480 ATo +335 +200

AKs + 1071 +860 88* +450 +450 KTs +694 +190

AKo +718 +850 77* +364 +390 KJo +391 +160

AQs +915 +780 AJo +430 +380 A8s +469 +110

AJs +813 +680 JTs +657 +360 66* +304 +40

Page 21: Sztuczna intelegencja w grze  Poker

2121

Ważne pojęcia w „Post-flop”

• Probability Triples

• Hand Strength

• Weighting the Enumerations

• Multi-player Considerations

• Hand Potencial

• Effective Hand Strength

• Noise-Factors

• Pot Odds

Page 22: Sztuczna intelegencja w grze  Poker

2222

Probability Triples

• Uporządkowana trójka wartości:PT = {fall,call,raise}, gdzie fall + call + raise = 1

• Reprezentuje dystrybucję prawdopodobieństwa ze następna akcja licytacji w zadanym kontekscie gry będzie odpowiednio:

„fold”, „call”, „raise”

Page 23: Sztuczna intelegencja w grze  Poker

2323

Użycie Probability Triples

• Probability triples używa się w nast. przypadkach:

1. Formula-based Betting Strategy używa Probabilty Triples do wyboru akcji (fold, call, raise)

2. Opponent Modelling używa Probabilty Triples do modyfikacji „Weight Table”

3. Simulation-based Betting Strategy używa Probabilty Triples do wyboru akcji dla zasymulowanego przeciwnika

Page 24: Sztuczna intelegencja w grze  Poker

2424

Zalety Probability Triples

• Pozwala przekształcić różnych elementów systemu do jednego komponentu, który zwraca Probability Triples

• Przydatne np. podczas używania różnych metod modelowania przeciwnika

• Inne elementy systemu mogą używać takie komponenty jako „black box”

Page 25: Sztuczna intelegencja w grze  Poker

2525

Hand Strength

• Prawdopodobieństwo, że dana ręka jest lepsza od ręki aktywnych oponentów

• Zakładamy, że przeciwnik posiada C(2,n) możliwych dwóch kart właśnych z tym samym prawdopodobieństwem

Gdzie :

C - kombinacja

n - liczba nierozdanych kart

Page 26: Sztuczna intelegencja w grze  Poker

2626

Hand Strength c.d.

• Lepsza ręka : +1pkt

• Remis : +1/2 pkt

• Gorsza ręka : +0 pkt

• Siła ręki = suma pkt/ilość możliwych rąk

• Np. dla pewnej ręki HS wynosi 58%, tzn. ona ma 58% więcej szansy niż losowa ręka

• Lepsza metoda obliczenia siły ręki używa Weighting the Enumerations

Page 27: Sztuczna intelegencja w grze  Poker

2727

Hand Strength (pseudo-kod)

HandStrength(ourCards, boardCards)

{

ahead = tied = behind = 0; // liczniki wyników

ourRank = obliczRank(ourCards, boardCards);

foreach oppCards in allCases

{

oppRank = obliczRank(oppCards, boardCards);

if (ourRank > oppRank) ahead++;

else if(ourRank == oppRank) tied++;

else behind++;

}

handStrength = (ahead+tied/2) / (ahead+tied+behind);

return(handStrength);

}

Page 28: Sztuczna intelegencja w grze  Poker

2828

Weighting the Enumerations

• Zakładaliśmy podczas obliczanie „Hand Strength”, że wszystkie kombinacje 2 „hole cards” są tak samo prawdopodobne (dodaliśmy po 1)

• W prawdziwej grze się znacznie od siebie różnią• Aby to uwzględnić używamy „Weight Tables”

(Tablicę Wag) do uwzględnienie prawdopodobieństwa tych kombinacji

• Każdy przeciwnik posiada właśny „Weight Table” w każdej partii

Page 29: Sztuczna intelegencja w grze  Poker

2929

Przykład „Weight Table” w różnych fazach gry

Każde pole w tablicy posiada liczbę z przedziału [0,1]

Czarny kolor: 1, Biały kolor: 0

Page 30: Sztuczna intelegencja w grze  Poker

3030

Weighting the Enumerations

foreach ‘entry’ in table

{

// obliczenie Probability Triples

ProbabilityDistribution pd[fold, call, raise];

Compute(pd); // „Opponent Modeling” (predict)

table[‘entry’] = table[‘entry’] * pd[A] ;

// A - rzeczywista akcja przeciwnika

}

Page 31: Sztuczna intelegencja w grze  Poker

3131

Multi-player Considerations

• Uwzględnienie wielu graczy dla Hand StrengthHS(n) = HS(p1) * HS(p2) * ... * HS(pn)

p1,p2,...,pn - przeciwnicy

• Nie jest to dokładna wartość, ponieważ HS przeciwników nie są niezależne, np. Weight Table tego nie uwzględnia

Page 32: Sztuczna intelegencja w grze  Poker

3232

Multi-player Considerations c.d.

• Zeby zaoszczędzić czas na obliczenie HS każdego przeciwnika, można używać

„Field Array”

• Jest to tablica wag, w którym wagi stanowią średnią wag wszystkich tablicy wag graczy uczestniczących w grzeHS(n) = [HS(field)]^n

• Daje mniej dokładny wynik, czasami duże błędy

Page 33: Sztuczna intelegencja w grze  Poker

3333

Hand Potencial

• Po „flop” jeszcze następują fazy „turn” i „river”

• 2 nieukazane karty mogą znacznie zmienić siłę naszej ręki

• Hand Potencial dzieli się na:

– Positive Potencial (PPot) – Negative Potencial (NPot)

Page 34: Sztuczna intelegencja w grze  Poker

3434

Hand Potencial c.d.

• PPot : prawdopodobieństwo, że nasza aktualna, nie najlepsza ręka się polepszy i wygramy partię.

PPot = P(ahead|behind) + P(tied|behind)/2 + P(ahead|tied)/2

• NPot : prawdopodobieństwo, że nasza aktualna, najmocniejsza ręka przy stole się pogorszy i przegramy partię.NPot = P(behind|ahead) + P(behind|tied)/2 + P(tied|ahead)/2

Page 35: Sztuczna intelegencja w grze  Poker

3535

Hand Potential (pseudo-kod)

HandPotential(ourCards, boardCards)

{

ourRank = obliczenie_siły_naszej_ręki

foreach oppCards in allCases

{

// Obliczenie wszyskich przypadków wystąpienia kart w turn i river

foreach case in turn

foreach case in river

obliczenie_indeksów_dla_różnych_sytuacjach

}

obliczenie PPot i NPot na postawie wyliczonych indeksów

return(PPot, NPot);

}

Page 36: Sztuczna intelegencja w grze  Poker

3636

Effective Hand Strength

• EHS łączy w sobie siłę ręki i potencjał ręki. Daje względną miarę siły naszej ręki w porównaniu z rękami przeciwnikówEHS = P(ahead)*P(opponent do not improve) + P(behind)*P(we improve) EHS = HS*(1-NPot) + (1-HS)*PPot

• PPot ważniejszy od NPot EHS = HS + (1-HS)*PPot (dla NPot = 0)

• Uwzględnienie wielu graczyEHS(i) = HS(i) + (1-HS(i))*PPot(i)

Page 37: Sztuczna intelegencja w grze  Poker

3737

Noise-Factors• Wartość z przedziału [0,1]

• Reprezentuje niepewność naszej wiedzy, jak akcja wykonana przez przeciwnika odwierciedla posiadanych przez niego kart

• Modyfikuje „Probability Triples”

(dystrybucja {Pr(fold), Pr(call), Pr(raise)}) używana w „Weighting the Enumeration”.

• Każde zdarzenie a w dystrybucji jest zmienionea = a – a*b + b/|D|

gdzie: b - noise-factor, D – probability distribution, |D| = 3

Page 38: Sztuczna intelegencja w grze  Poker

3838

Noise-Factors (przykład)

• Probability Triples {0.0, 0.2, 0.8}noise-factor = 0.5

Obliczenie:Pr(fold) = 0 – 0*0.5 + 0.5/3 = 1/6 = 0.167

Pr(call) = 0.2 – 0.2*0.5 + 1/6 = 0.267

Pr(raise) = 0.8 – 0.8*0.5 + 1/6 = 0.567

• Po uwzględnieniu noice-factor

Probability Triples {0.167, 0.267, 0.567}

Page 39: Sztuczna intelegencja w grze  Poker

3939

Pot Odds

• Stosunek rozmiaru „pot_size” (sumy zakładu na stole) do kwoty naszej licytacji

• Mówi nam, czy z naszą aktualną ręką warto grać dalej (opłacalność inwestycji)

Immediate_pod_odds = amount_to_call / (pot_size + amount_to_call)

Page 40: Sztuczna intelegencja w grze  Poker

4040

Pot Odds (przykład)Immediate_pod_odds = 10zł / (50zł + 10zł) 0.167

• Jeżeli postanowimy „call” w sytuacji, gdy mamy więcej niż 16.7% na osiągnięcie wygrywającej ręki, to oczekiwana opłacalność jest pozytywna

• W przypadku gdy mamy 15% szansy wygranej, wówczas nie opłaca się „call”

Wartość oczekiwana inwestycji = (50zł*0.15) – (10zł*0.85) = -1zł

Page 41: Sztuczna intelegencja w grze  Poker

4141

Pozostałe atrybuty licytacji

• Implied pot odds• Względna pozycja licytacji

• Historia licytacji aktualnej partii

• Kieszeń przeciwnika

• ...

Page 42: Sztuczna intelegencja w grze  Poker

4242

Betting Strategies w „Post-flop”

• Formula-based Betting Strategy (Basic)

• Selective Sampling and Simulation-based Betting Strategy

Page 43: Sztuczna intelegencja w grze  Poker

4343

Formula-based Betting Strategy

• Sprawiedliwa formuła do oceny wartości ręki, daje odpowiedz na właściwą licytację.

• Używamy 3 następujących kroków:

1) Obliczenie „Effective Hand Strength” EHS (Efektywnej Siły Ręki), względną siłę naszej ręki w porównaniu z oponentami

Page 44: Sztuczna intelegencja w grze  Poker

4444

Formula-based Betting Strategy

2) Użycie kontekstu gry, sztywnych zasad do obstawiania, formuł do przekształcenia EHS w dystrybucję prawdopodobieństwa zdarzenia {Pr(fold), Pr(call), Pr(raise)} (Probability Triples)

3) Generowanie losowej liczby [0,1] i użycie jej do wyboru jednej z akcji z dystrybucji. Daje to nieprzewidywalność

Page 45: Sztuczna intelegencja w grze  Poker

4545

Selective Sampling and Simulation-based Betting Strategy

• Formula-based Betting Strategy jest równoważny z statyczną funkcją oceny w grach o pełnych informacjach (szachy, GO,...)

• Próba znajdowania algorytmu podobnego do Alpha-Beta w dziedzinie gry Poker

• Selective Sampling wybiera do symulacji najbardziej prawdopodobne przypadki występowania kart (przeciwników), np. używając „Weight Table”

• Przeprowadzimy symulacje do końca i zbieramy wynik każdy z tych prób

Page 46: Sztuczna intelegencja w grze  Poker

4646

Selective Sampling and Simulation-based Betting Strategy

• Z odpowiednio dużą liczbę prób, symulacji daje statystyczne pewne wyniki

• Dla każdej próby, ręka jest zasymulowana 2 razy

– call (check)

– raise (bet)

• Nie używamy pełnych przeszukiwań

• Używamy rzadkich, lecz głębokich symulacji wielokrotnie aż do liści

Page 47: Sztuczna intelegencja w grze  Poker

4747

Różnica między klasycznym drzewem gry a symulacją

Page 48: Sztuczna intelegencja w grze  Poker

4848

Simulation (pseudo-kod)

Simulation()

{

trials = callEV = raiseEV = 0;

while (trials < MAX_TRIALS)

{

przydzielKarty();

callEV += simulate(call);

raiseEV += simulate(raise);

trials++;

}

callEV = callEV / trials;

raiseEV = raiseEV / trials;

return(callEV, raiseEV);

}

Page 49: Sztuczna intelegencja w grze  Poker

4949

Selective Sampling and Simulation-based Betting Strategy

• Dla każdej decyzji używamy 200-300 symulacji, ze względu na ograniczenie czasowe gry

• Po kilkuset symulacji średnia ilość zwycięstw lub przegranych po akcji „call”, „raise” zbiega sie do

oczekiwanych wartości akcji (Expected Value EV)

• EV dla „fold” może być obliczony bez symulacji, ponieważ nie wpływa na przyszłych zysków czy strat

Page 50: Sztuczna intelegencja w grze  Poker

5050

Zalety i Wady Simulation Betting Strategy

• W przeciwieństwie do Formula-based Betting Strategy, nie jest on sztywną strategią

• Może drastycznie się zmienić w zalezności od „opponent models”

• Dostosowuje się do różnych oponentów

• Silna relacja jakości symulacji do funkcji oceny akcji przeciwników (Opponent Modeling)

• Taktyka przeciwnika (bluffing, slowplaying, check-raising) jest odkryta podczas symulacji

Page 51: Sztuczna intelegencja w grze  Poker

5151

Opponent Modeling

• Nie istnieje system gry Pokera bez dobrego modelowania przeciwników (Opponent Modeling)

• Każdy silny gracz Pokera musi zmieniac swój sposób gry, dostosowując się do sposobu gry przeciwników

• Niektórzy przeciwnicy mogą często blefować, a niektórzy rzadko

Page 52: Sztuczna intelegencja w grze  Poker

5252

Opponent Modeling c.d.

• Używa się Opponent Modeling do przynajmniej 2 celów : – wnioskowanie siły ręki przeciwnika, bazując

się na jego wcześniejszych akcji– przewidywanie jego akcji w konkretnych

sytuacjach • Główny cel „Opponent Modeling” to zgadnięcie

akcji przeciwników (Predictor)• Praca Predictor’a to zamiana konkretnego stanu

gry na dystrybuanty prawdopodobieństwa akcji(Probability Triples)

Page 53: Sztuczna intelegencja w grze  Poker

5353

Trudności wOpponent Modeling c.d.

• Uncertainty (Niepewność)

• Missing Information (Brakujące Informacje)

• Unknown Dimensions (Nieznane Wymiary)

• Intuition (Intuicja)

• Multiple Levels (Wielokrotne poziomy)

• Moving Targets (Ruchome Obiekty)

Page 54: Sztuczna intelegencja w grze  Poker

5454

Uncertainty

• Wiele niewiadomych kart w grze

• Każda partia może być zupełnie inna niż poprzednia

– różnią się „hole cards”– „community cards”

• Ogromna liczba partii musi być rozegrana aby powtórzyły się kilka najczęściej występujących sytuacji

Page 55: Sztuczna intelegencja w grze  Poker

5555

Missing Information

• Nie wiele partii udaje się doprowadzić do „showdown”

• Często niewielki procent ręki jest pokazana w „showdown”, gracz który pasuje nie pokazuje swoich kart

• Możemy weryfikować tylko małą ilość rąk pokazanych przez przeciwnikow

Page 56: Sztuczna intelegencja w grze  Poker

5656

Unknown Dimensions

• Niewiadoma jest liczba czynników wpływających na to, jak gracz bedzie grał w danej partii

• Niektóre czynniki są ważniejsze od innych

• Niektóre czynniki są istotne dla niektórych graczy, a dla niektórych wręcz obojętne

• Nawet humor dnia gracza może znacząco wpływać na jego grę

Page 57: Sztuczna intelegencja w grze  Poker

5757

Intuition

• Po małej liczbie obszerwacji, człowiek tworzy teorię o przeciwnika, bazując się głównie na intuicję i doświadczeniu

• Jeżeli teoria się sprawdza w przyszłych obszerwacjach, wówczas używa się ją w przyszłych decyzjach licytacji

• Człowiek może zmieniać swój sposób gry, aby testować swoją teorię

• Maszyna zwykle potrzebuje ogromną liczbę obszerwacji aby zbudować system wiedzy, opierając na historię przeszłych partii. Proces ten jest niezwykle powolny

Page 58: Sztuczna intelegencja w grze  Poker

5858

Multiple Levels

• Jeżeli obszerwujemy przeciwnika grającego przeciwko innego przeciwnika, możemy przyjąć błędną tezę, iż bedzie tak samo grał przeciwko nam

• Przeciwnik modeluje swoich przeciwników, przystosowują swojej gry do każdego konkretnego przeciwnika

• Potrzebujemy nie tylko ogólnego modelu przeciwnika, lecz jak przeciwnik modeluje innych przeciwników

Page 59: Sztuczna intelegencja w grze  Poker

5959

Moving Targets

• Możemy zdobywać wiedzę o przeciwnika na podstawie przeszłych obszerwacji

• Dobry przeciwnik zmienia swoją strategię w czasie

• Może się okazać, ze nasz model o przeciwniku jest przestarzały

• Trzeba przystąpić do nowych obszerwacji

Page 60: Sztuczna intelegencja w grze  Poker

6060

Methods of Prediction (Metody Przewidywania)

• Expert Systems

• Statistics

• Neural Networks

• Decision Trees

• Confusion Matrices

• Multi-Predictor Voting

Page 61: Sztuczna intelegencja w grze  Poker

6161

Expert Systems

• Używamy sztywnych reguł jako do przewidywania akcji przeciwnika

• Zakładamy, ze gracz bedzie się grał w rozsądny sposób w poszczególnych sytuacjach (generic opponent modeling)

• Nie jest to skuteczna metoda, ale daje przyzwoity punkt odniesienia dla innych metod modelowania oponentów

• Bardzo użyteczna metoda, gdy gramy z przeciwnikiem po raz pierwszy

Page 62: Sztuczna intelegencja w grze  Poker

6262

Statistics

• Przewidujemy akcji przeciwników uwzględniając ich zachowanie w przeszłości

• Dzielimy przestrzeń zachowań przeciwnika w różnych kontesktach gry na rozłączne klasy

• Daje to zbiór klas zawierających różne dane statystyczne, np. częstość „call” w fazie „river”

• Mogą wystąpić tez zbiór prawdopodobieństwo warunkowe np. Pr(Call|River & have a button)

Page 63: Sztuczna intelegencja w grze  Poker

6363

Statistics c.d.

• Problem związany z ilością klas

– Dużo klas ==> wolna zbieność nauczania,

mała możliwość uogólnianie informacji– Mało klas ==> zbyt ogólne informacje

• Problem z charakterystycznymi cechami poszczególnych graczy

• Np. Niektórzy gracze są przywiązani do „koloru” a niektórzy do „strit”. Jeżeli posiadają słabą rękę z dużym potencjałem do osiągnięcia tych układów, bedą „raise” lub „re-raise”

Page 64: Sztuczna intelegencja w grze  Poker

6464

Neural Networks

• Bardziej ogólny system do modelowania przeciwników

• Posiada dużą zdolność do uogólniania informacji, odporność na szum

• Prosta sieć jednokierunkowa (feed-forward)

• Algorytm uczący sieci: np. Backpropagation

Page 65: Sztuczna intelegencja w grze  Poker

6565

Neural Networks inputs

Page 66: Sztuczna intelegencja w grze  Poker

6666

Neural Networks jako „predictor”

Page 67: Sztuczna intelegencja w grze  Poker

6767

Decision Trees

• Nawigacja w drzewie następuje w każdym węzle drzewa (pytanie jak grać dalej)

• W zależności od odpowiedzi przemierzamy po konkretnych gałęziach aż do liści

• Startujemy z pojedynczego węzła, po czym dzielimy węzeł na kilka węzłów, które zawierają przypadki osiągając max ilość informacje o grze

• Liść zawiera częstość wyboru podczas sesji treningowej, które wpadły do tego liścia

• Możemy eliminować liści, które mają bardzo małą częstość

Page 68: Sztuczna intelegencja w grze  Poker

6868

Decision Trees (przykład)

Page 69: Sztuczna intelegencja w grze  Poker

6969

Decision Trees vs Neural Networks

• Gorsza zdolność do uogólniania od Neural Networks

• Mniejsza odporność na szum

• Lecz daje większą dokładność „Probability Triples” dla dostępnych wyborów

• Reprezentacja prosta do zrozumienia dla człowieka, łatwo można określić jaką wiedzę zostało nauczone drzewo

Page 70: Sztuczna intelegencja w grze  Poker

7070

Confusion Matrices

• Sposób na sprawdzenia jak dobrze działają wcześniejsze „predictors”

• Pokazuje w ilu przypadkach podczas testów nasz „predictor” miał rację, a w ilu przypadkach popełnił błędy

• Przekątne macierzy pokazują poprawne przewidywanie

• Suma przewidywań dla poszczególnych przypadków jest ukazany w ostatnim wierszu i w ostatniej kolumny

Page 71: Sztuczna intelegencja w grze  Poker

7171

Confusion Matrices (przykład)

Page 72: Sztuczna intelegencja w grze  Poker

7272

Multi-Predictor Voting

• Możemy mieć dylemat, którego z „predictors” używać

• Eleganckie rozwiązanie jest użycie tych wszystkich metod, poprzez głosowanie

• Każde głosowanie polega na porównanie dokładności przewidywania metod

• Jeżeli metoda popełnia błędy, to dajemy szańszę inną która w tym momencie posiada największą dokładność przewidywań

Page 73: Sztuczna intelegencja w grze  Poker

7373

Opponent Modeling podsumowanie

• Kluczowe do tworzenia gracz Pokera „World-Class”

• Opponent Modeling w Pokerze posiada największą liczbę problemów podczas uczenia systemu:

– uncertainty

– noise (missing information)

– szybka nauka i uogólnianie za pomocą małej liczby przykładów treningowych, często z niepełnymi informacjami

– Ograniczenia związane z naturą gry czasu rzeczywistego. Np. 2,3 s na podjęcie decyzji

Page 74: Sztuczna intelegencja w grze  Poker

7474

Różne pomysły do Pokera

• Jak stworzyć optymalną strategię w grze Pokera??

• Metody ewolucyjne

• Miximax Search

• Miximix Search

• ???

Page 75: Sztuczna intelegencja w grze  Poker

7575

Metody ewolucyjne

• Metody ewolucyjne

• Cel: znajdowania najlepszej strategii dla poszczególnych przypadków gry

• Tworzenie populacji początkowej o losowej strategii

• Populacje bedą ze sobą konkurować, zeby wybrać najlepsze strategie do następnego pokolenia

• Operacje genetyczne ???

• Selekcja ???

Page 76: Sztuczna intelegencja w grze  Poker

7676

Drzewo gry Miximax

• Następna próba użycia min-max w Pokerze

• Ze względu na niepełną informację o stanie gry, musimy przyjął pewne dane losowo

• Miximax Search

• Miximix Search

Page 77: Sztuczna intelegencja w grze  Poker

7777

Miximax dla Pokera (przykład)

Page 78: Sztuczna intelegencja w grze  Poker

7878

Dziękuję za uwagę!