Obecnie czytam o uczeniu maszynowym i zastanawiałem się, jak zastosować go do gry w Connect Four .
Moja obecna próba to prosty klasyfikator wieloklasowy wykorzystujący model funkcji sigmoid i metodę jeden na wszystkich.
Moim zdaniem cechami wejściowymi musi być stan (dysk odtwarzacza 1, dysk odtwarzacza 2, pusty) pól siatki 7x6 = 42.
Dane wyjściowe to numer wiersza, w którym ma zostać włożona płyta. Ponieważ jest to liczba dyskretna od 1 do 7, myślę, że można to potraktować jako problem klasyfikacji wieloklasowej.
Ale jak wygenerować przykłady szkoleń przydatne w uczeniu nadzorowanym?
Głównym celem jest zwycięstwo w grze, ale wynik nie jest oczywiście znany przy każdej kolejce oprócz ostatniej. Jeśli po prostu pozwolę dwóm graczom, którzy losowo decydują, co robić ze sobą tysiące razy, czy wystarczy po prostu wziąć wszystkie tury wykonane przez zwycięzcę każdej rundy gry jako przykłady treningu? Czy też muszę to robić w zupełnie inny sposób?
Edycja: Jak sugerowano w komentarzach, przeczytałem trochę o uczeniu się przez wzmocnienie. Z tego co wiem rozumiem, Q-Learning powinien załatwić sprawę, tj. Muszę przybliżyć funkcję Q bieżącego stanu i działanie, które należy podjąć, aby być maksymalną skumulowaną nagrodą rozpoczynającą się w tym stanie. Następnie każdym krokiem byłoby wybranie akcji, która skutkuje maksymalną wartością Q. Jednak ta gra ma zbyt wiele stanów, aby to zrobić, np. Jako tabela przeglądowa. Jaki jest więc skuteczny sposób modelowania tej funkcji Q?