Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1 Metody Sztucznej Inteligencji do budowania mocnego gracza w Pokerze: teoria, zastosowanie i wyniki Pham Hoang Minh prof. dr hab. Jacek Mańdziuk.

Podobne prezentacje


Prezentacja na temat: "1 Metody Sztucznej Inteligencji do budowania mocnego gracza w Pokerze: teoria, zastosowanie i wyniki Pham Hoang Minh prof. dr hab. Jacek Mańdziuk."— Zapis prezentacji:

1 1 Metody Sztucznej Inteligencji do budowania mocnego gracza w Pokerze: teoria, zastosowanie i wyniki Pham Hoang Minh prof. dr hab. Jacek Mańdziuk

2 2 Odmiana Pokera Texas Holdem Cztery fazy rozgrywki: Pre-flop Flop Turn River

3 3 Wprowadzenie Wieloosobowa rywalizacja Gra o niepełnej informacji (prywatne karty) Stochatyczna gra (losowe rozdanie kart) Probabilistyczne wnioskowanie Ocena ryzyka Analiza gry przeciwników Blefowanie

4 4 Aktualny stan systemów AI Poki (Univ. Alberta) : intermediate level for full-ring (10 players) limit Texas Holdem Hyperborean (Univ. Alberta) : advanced level for heads- up (2-players) limit Texas Holdem (hold 7000 hands against world-class opponents) First place in AAAI Computer Poker Competition BluffBot (Teppo Salonen ) : advanced level in heads-up limit Texas Hold Em. Second place in AAAI GS2 (Univ. Pittsburgh) : Third place in AAAI Monash BPP (Univ. Monash) : Fourth place in AAAI

5 5 Umiejętności niezbędne mocnego gracza w Pokerze Cechy które mocny gracz musi posiadać : –Hand Evaluation : ocena siły swojej ręki –Unpredictability –Bluffing –Opponent Modeling

6 6 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

7 7 Betting Strategies w Pre-flop Wiedza eksperska: –Sklanskys rankings (Rangi Sklanskiego) –Hutchison system (System Hutchisona) Symulacje: –Pre-flop simulation Te metody służą do wyliczenie wartości ręki (2 hole cards) podczas fazy Pre-flop

8 8 Wiedza eksperska Sklanskys 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

9 9 Sklansky Ranking (full-ring Holdem)

10 10 Pre-flop 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 fazie Pre-flop

11 11 Wyniki Pre-flop simulation (HPoker)

12 12 Betting Strategies w Post-flop Fix Expert Betting Strategy Simulation-Based Betting Strategy Game Tree-Based Betting Strategy

13 13 Ważne pojęcia w Post-flop Crude Player Strength Bias Matrix Bias Player Strength Multi-player Considerations Player Potential Pot Odds Effective Player Strength Probability Triples Noise-Factors Bluffing

14 14 Crude Player 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

15 15 Crude Player Strength 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 CPS wynosi 58%, tzn. ona ma 58% więcej szansy niż losowa ręka Lepsza metoda obliczenia siły ręki używa Bias Matrix

16 16 Crude Player Strength (pseudo-kod)

17 17 Bias Matrix Zakładaliśmy podczas obliczanie Crude Player 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 Bias Matrix (Tablicę Wag) do uwzględnienie prawdopodobieństwa tych kombinacji Każdy przeciwnik posiada właśny Bias Matrix w każdej partii

18 18 Bias Matrix po call, raise na początku fazy Flop (HPoker)

19 19 Bias Matrix ( pseudo-kod )

20 20 Bias Player Strength (pseudo-kod)

21 21 Multi-player Considerations Uwzględnienie wielu graczy dla Player Strength PS(n) = PS(p1) * PS(p2) *... * PS(pn) p1,p2,...,pn - przeciwnicy Nie jest to dokładna wartość, ponieważ PS przeciwników nie są niezależne, np. Bias Matrix tego nie uwzględnia

22 22 Multi-player Considerations (HPoker)

23 23 Player Potential Po Flop jeszcze następują fazy turn i river 2 nieukazane karty mogą znacznie zmienić siłę naszej ręki Player Potential dzieli się na: –Positive Potential (PPot) –Negative Potential (NPot)

24 24 Player Potential 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

25 25 Player 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); }

26 26 Pot Odds Stosunek rozmiaru pot_size (sumy zakładu na stole) do minimalnej 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)

27 27 Pot Odds (przykład) Immediate_pod_odds = 10zł / (50zł + 10zł) 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ł

28 28 Effective Player Strength EPS łączy w sobie siły i potencjał ręki. Daje względną miarę siły naszej ręki w porównaniu z rękami przeciwników EPS = P(ahead)*P(opponent do not improve) + P(behind)*P(we improve) EPS = PS*(1-NPot) + (1-PS)*PPot PPot ważniejszy od NPot EPS = PS + (1-PS)*PPot (dla NPot = 0) Uwzględnienie wielu graczy EPS(i) = PS(i) + (1-PS(i))*PPot(i)

29 29 Effective Player Strength W HPoker uzywany jest 3 rodzaje EPS: –biasEPS (używa Bias Player Strength) –uniEPS (używa Uniform Player Strength) –uniRandEPS (używa Uniform Player Strength przeciw jednego losowego gracza)

30 30 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

31 31 Użycie Probability Triples 1.Fix Expert Betting Strategy używa Probabilty Triples do wyboru akcji (fold, call, raise) 2.Opponent Modelling używa Probabilty Triples do modyfikacji Bias Table 3.Simulation-Based Betting Strategy używa Probabilty Triples do wyboru akcji dla zasymulowanego przeciwnika 4.Game Tree-Based Betting Strategy używa Probabilty Triples do wyboru akcji dla zasymulowanego przeciwnika

32 32 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 Bias Matrix. Każde zdarzenie a w dystrybucji jest zmienione a = a – a*b + b/|D| gdzie: b - noise-factor, D – probability distribution, |D| = 3

33 33 Noise-Factors (przykład) Probability Triples {0.0, 0.2, 0.8} noise-factor = 0.5 Obliczenie: Pr(fold) = 0 – 0* /3 = 1/6 = Pr(call) = 0.2 – 0.2* /6 = Pr(raise) = 0.8 – 0.8* /6 = Po uwzględnieniu noice-factor Probability Triples {0.167, 0.267, 0.567}

34 34 Bluffing Umożliwia wygranie partii z słabą ręką Powoduje niepokój przeciwników Każdy gracz moze mieć stałą wartość blefu, lub zmienny w czasie (w zalezności od stanu gry) System może tworzyć teoretycznie optymalną częstość blefowania w poszczególnych sytuacjach

35 35 Pozostałe atrybuty licytacji Względna pozycja licytacji Historia licytacji aktualnej partii Kieszeń przeciwnika...

36 36 Fix Expert Betting Strategy Sztwna formuła stworzona dzięki wiedzy eksperskiej i ekperymentalnie Daje odpowiedz na rozsądną licytację Używamy następujących kroków: 1) Obliczenie Effective Player Strength (EPS) 2) Zamiana EPS w Probability Triples {Pr(fold), Pr(call), Pr(raise)} ( ekperymentalnie ) 3) Generowanie losowej liczby [0,1] i użycie jej do wyboru jednej z akcji z dystrybucji

37 37 Fix Expert Betting Strategy 4) W zalezności od stanu gry (bet ratio, stakes,...) modyfikujemy współczynnik blefu 5) Użycie współczynnika blefu do zmiany decyzji 6) Użycie współczynnika inPot do zmiany decyzji 7)Wykonujemy akcję raise jeżeli pot_odds < Player Strength 8)W wersji No limit : kwota zakładu jest zalezna od Player Strength

38 38 Simulation-Based Betting Strategy Próba zastosowania algorytmu podobnego do MiniMax w dziedzinie gry Poker Selective Sampling wybiera do symulacji najbardziej prawdopodobne przypadki występowania kart (przeciwników), np. używając Bias Matrix Przeprowadzimy symulacje do końca i zbieramy wyniki każdy z tych prób

39 39 Simulation-Based Betting Strategy Z odpowiednio dużą liczbę prób, symulacji daje wartość oczekiwaną akcji 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

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

41 41 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); }

42 42 Simulation-Based Betting Strategy Dla każdej decyzji używamy 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

43 43 Zalety i Wady Simulation-Based Betting Strategy W przeciwieństwie do Fix Expert 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

44 44 Game Tree-Based Betting Strategy ExpectiMax to bezpośrednia próba używania MiniMax w Pokerze. Zamiast wybrania najlepszej akcji w każdym kroku, akcję wykonuje Opponent Model przeciwnika Otrzymujemy teraz najlepszą strategię do gry przeciwko konkretnemu przeciwnikowi Aktualnie użyty w wersji Texas Holdem heads-up (2-players) w systemie Hyperborean (PsOpti) uniwerstytetu Alberta

45 45 Game Tree-Based Betting Strategy

46 46 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

47 47 Opponent Modeling 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 Predictora to zamiana konkretnego stanu gry na dystrybuanty prawdopodobieństwa akcji (Probability Triples)

48 48 Predictor models Expert Systems Neural Networks –Backpropagation –Radial –Probabilistic –Generalized Regression Decision Trees Linear Discriminant Analysis Quadratic Discriminant Analysis Mixed Model

49 49 Expert Systems Używamy sztywnych reguł jako do przewidywania akcji przeciwnika (np. uzywając Fix Expert Betting Strategy) 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

50 50 Inputs data for Predictors

51 51 Neural Networks Bardziej ogólny system do modelowania przeciwników Posiada dużą zdolność do uogólniania informacji, odporność na szum Bardzo dobre wyniki kiedy parametry danych wejściowych są zależne od siebie nieliniowo Używamy np. prosta sieć jednokierunkowa (feed-forward) z algorytmem uczącym backpropagation

52 52 Backpropagation Neural Networks

53 53 Decision Trees Mniejsza odporność na szum oraz nieliniowo zależnych parametrów danych wejściowych Reprezentacja prosta do zrozumienia dla człowieka, łatwo można określić jaką wiedzę zostało nauczone drzewo Osiągnął jeden z najlepszych wyników podczas eksperymentu z Opponent Models dla HPoker w wersji Limit i Unlimit

54 54 Decision Trees (przykład)

55 55 Linear & Quadratic Discriminant Analysis Metody używają Modelu Liniowego do klasyfikacji Niezbyt dobrze sobie radzą jeżeli dane wejściowe są zależne nieliniowo Podczas eksperymentu z Opponent Models dla HPoker osiągają dosyć słabe wyniki w porównaniu z innymi modelami

56 56 Mixed Model Możemy mieć dylemat, którego z predictors używać Eleganckie rozwiązanie jest użycie tych wszystkich metod, poprzez głosowanie Wybieramy akcję którą wybrało najwięcej Predictors

57 57 Opponent Modeling podsumowanie Kluczowe do tworzenia mocnego gracza w Pokerze 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

58 58 Eksperymenty HPoker v.06 Aktualne eksperymenty przeprowadziłem dla dwóch trybów gry : –Limit 10$/20$ blinds, 1000$ initial stake –No limit 50$/100$ blinds, 10000$ initial stake Gracza AIs używali różne formuły Fix Expert Betting Strategy (wspomagane przez Predictors) : –EPS : biasEPS, uniEPS, uniRandEPS, mixEPS, –PS : loose, tight, rational, mix Gracza AIs z Simulation-Based Betting Strategy jeszcze w fazie implementacji

59 59 Limit Human vs AIs

60 60 Limit Only AIs

61 61 Limit mixEPS vs alwaysCall

62 62 Limit mixEPS vs alwaysRaise

63 63 Limit mixEPS vs tight

64 64 Limit mixEPS vs loose

65 65 Limit mixEPS vs rational

66 66 Limit wyniki Predictors

67 67 No limit Human vs AIs

68 68 No limit Human vs AIs

69 69 No limit Human vs AIs

70 70 No limit Human vs AIs

71 71 No limit Human vs mixEPS

72 72 No limit Human vs mixEPS

73 73 No limit wyniki Predictors

74 74 Dziękuję za uwagę!


Pobierz ppt "1 Metody Sztucznej Inteligencji do budowania mocnego gracza w Pokerze: teoria, zastosowanie i wyniki Pham Hoang Minh prof. dr hab. Jacek Mańdziuk."

Podobne prezentacje


Reklamy Google