Metody sztucznej inteligencji w pokerze

advertisement
Sztuczna intelegencja w grze
Poker
Autor: Pham Hoang Minh
1
Odmiana Pokera
„Texas Holdem”
•
•
•
•
•
Cztery fazy rozgrywki:
Pre-flop
Flop
Turn
River
2
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)
3
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”
4
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
5
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)
6
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
7
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)
8
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
9
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
10
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)
11
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
12
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
13
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
14
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”
15
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
16
Sklansky’s ranking
17
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
18
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
19
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
+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
JJ*
20
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
21
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”
22
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
23
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”
24
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
25
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
26
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);
}
27
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
28
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
29
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
}
30
Multi-player Considerations
• Uwzględnienie wielu graczy dla Hand Strength
HS(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
31
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 grze
HS(n) = [HS(field)]^n
• Daje mniej dokładny wynik, czasami duże błędy
32
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)
33
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
34
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);
}
35
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ów
EHS = 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 graczy
EHS(i) = HS(i) + (1-HS(i))*PPot(i)
36
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 zmienione
a = a – a*b + b/|D|
gdzie: b - noise-factor, D – probability distribution, |D| = 3
37
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}
38
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)
39
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ł
40
Pozostałe atrybuty licytacji
• Implied pot odds
•
•
•
•
Względna pozycja licytacji
Historia licytacji aktualnej partii
Kieszeń przeciwnika
...
41
Betting Strategies w „Post-flop”
• Formula-based Betting Strategy (Basic)
• Selective Sampling and Simulation-based
Betting Strategy
42
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
43
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ść
44
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
45
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
46
Różnica między klasycznym
drzewem gry a symulacją
47
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);
}
48
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
49
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
50
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
51
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)
52
Trudności w
Opponent Modeling c.d.
•
•
•
•
•
•
Uncertainty (Niepewność)
Missing Information (Brakujące Informacje)
Unknown Dimensions (Nieznane Wymiary)
Intuition (Intuicja)
Multiple Levels (Wielokrotne poziomy)
Moving Targets (Ruchome Obiekty)
53
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
54
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
55
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ę
56
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
57
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
58
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
59
Methods of Prediction
(Metody Przewidywania)
•
•
•
•
•
•
Expert Systems
Statistics
Neural Networks
Decision Trees
Confusion Matrices
Multi-Predictor Voting
60
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
61
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)
62
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”
63
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
64
Neural Networks inputs
65
Neural Networks jako „predictor”
66
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ść
67
Decision Trees (przykład)
68
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
69
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
70
Confusion Matrices (przykład)
71
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ń
72
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
73
Różne pomysły do Pokera
• Jak stworzyć optymalną strategię
w grze Pokera??
• Metody ewolucyjne
• Miximax Search
• Miximix Search
• ???
74
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 ???
75
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
76
Miximax dla Pokera (przykład)
77
Dziękuję za uwagę!
78
Download