Proces uczenia programów komputerowych reguł gry w oparciu o analizę historii rozgrywek

22.02.2021

Ludzie na całym świecie uwielbiają rywalizacje nie tylko z innym ludźmi, lecz także z maszynami. Niejednokrotnie taką możliwość dają nam gry komputerowe, czyli popularna rozrywka przyciągająca przed ekrany coraz szersze grono odbiorców głównie wśród dzieci i młodzież. Jeszcze kilkanaście lat temu oprogramowując „postaci w grze” jawnie definiowano reguły jej zachowania dla każdej (lub prawie każdej) możliwej do wystąpienia sytuacji w grze. Wraz ze wzrostem złożoności gier przestało być to skuteczne rozwiązanie, w szczególności do oprogramowywania „postaci w grze”, które mają rywalizować z człowiekiem. W związku z tym, obecnie coraz częściej mierzymy się z wyuczonymi modelami przez algorytmy uczenia maszynowego. 

Sztuczna inteligencja to dział informatyki zajmujący się budową modeli, metod i narzędzi zdolnych do symulacji inteligencji (inteligentnego zachowania). Istnieje wiele kierunków badań nad systemami sztucznej inteligencji, a jednym z nich jest tzw. uczenie maszynowe (ang. Machine Learning, ML), które bazuje na wykorzystaniu dużych zbiorów danych (ang. Big Data) będących podstawą możliwości „uczenia się z przykładów”. Uzyskane przez inżyniera Macieja Parapurę wyniki mogą posłużyć jako podstawa budowy środowiska wspomagającego analizę możliwości algorytmów sztucznej inteligencji do samodoskonalenia w ramach funkcjonowania w światach wirtualnych. - powiedział ppłk. dr inż. Rafał Kasprzyk promotor pracy.  

Praca inż. Macieja Parapury pokazuje potęgę komputerów w rywalizacji z człowiekiem na przykładzie gry Flappy Bird. Zastosowana technologia doprowadziła do prawie całkowitego usamodzielnienia maszyny i trenowania jej umiejętności, które po zaledwie kilku godzinach okazały się nieosiągalne dla człowieka. Co więcej student wskazał kilka przykładów w jakich wykorzystana technologia mogłaby sobie poradzić i osiągnęłaby lepsze rezultaty niż ludzie. Jak zauważył promotor pracy ppłk. dr inż. Rafał Kasprzyk:
Dyplomant podjął się ciekawego i niezwykle ważnego zadania, a uzyskane wyniki są na bardzo wysokim poziomie. Istotne wyniki pracy to przede wszystkim produkt końcowy w postaci wytrenowanego modelu, zdolnego do gry na poziomie mistrzowskim w popularną grę komputerową Flappy Bird.

Przykłady zastosowania głębokiego uczenia

Głębokie uczenie jesteśmy w stanie wykorzystać nie tylko, aby dostarczyć rozrywkę, lecz również, aby szkolić i trenować żołnierzy, np. podnosić umiejętności strzeleckie lub refleks, jednocześnie nie marnując amunicji. Co więcej, przyszli dowódcy mają możliwość sprawdzenia swoich umiejętności strategicznych w trakcie wirtualnego konfliktu zbrojnego. Jak podkreślił promotor pracy ppłk. dr inż. Rafał Kasprzyk:
W ramach realizacji pracy inż. Maciej Parapura koncentrował się na tzw. głębokich sieciach neuronowych (ang. deep neural networks) o specjalizowanej architekturze, w szczególności wykorzystywanych w obszarze widzenia komputerowego (ang. computer vision). Zasadniczym podejściem zastosowanym w procesie uczenia reguł gry było uczenie przez wzmocnienie z wykorzystywaniem algorytmu Deep Q-Learning. Jest to bardzo aktualny i obiecujący kierunek rozwoju systemów sztucznej inteligencji. Na uwagę zasługuje również rzetelne przedstawienie podstaw problematyki uczenia maszynowego.

Firmy takie jak np. Tesla, Google, BMW już od kilku lat pracują nad autonomicznymi pojazdami. Kamery zamontowane w karoserii samochodu monitorują otaczające środowisko i na podstawie zaawansowanych modeli sztucznej inteligencji, w tym bazujących na głębokim uczeniu maszynowym, podejmują decyzje. Technologia nie jest jeszcze na tyle dopracowana, aby mogła prowadzić auto w każdym środowisku bez kontroli ze strony kierowcy. Wszystko wskazuje jednak na to, że już niedługo nie będzie potrzeby uzyskiwania uprawnień do prowadzenia samochodów, a firmy logistyczne nie będą zatrudniać kierowców ciężarówek.

Diagnostyka medyczna to kolejny obszar zastosowania algorytmów sztucznej inteligencji. Objawy pacjentów przychodzących na wizytę lekarską nie zawsze są jednoznaczne. Zastosowanie uczenia maszynowego może znacznie skrócić proces diagnozy oraz poprawić jej trafność. Szybsze wykrycie choroby przyśpiesza reakcje medyków i zwiększa szanse na uratowanie ludzkiego życia. Co więcej rozwiązania oparte na sztucznej inteligencji mogą istotnie odciążyć lekarzy i wpłynąć pozytywnie na wydajność służby zdrowia.

Problemy

Wykorzystanie algorytmów uczenia maszynowego wiąże się z wieloma wyzwaniami. Jednym z głównych czynników wpływających na szybkość uczenia jest zawsze ograniczona moc komputera, na którym przebiega proces. Im sprzęt jest „mocniejszy”, tym jesteśmy w stanie wykonać więcej obliczeń, co przekłada się oczywiście na skrócenie procesu uczenia. Zakup komputera posiadającego zadowalającą specyfikacje (nawet dla problemów akademickich) jest bardzo drogi, co sprawia, że tylko nieliczni mogą sobie na to pozwolić. Coraz częściej wykorzystuje się więc moc obliczeniową udostępnianą w modelu chmury obliczeniowej, co jest zwykle dużo tańsze i wygodniejsze. Rozwiązywanie rzeczywistych problemów z jakimi napotykamy się budując inteligentne rozwiązania w oparciu o głębokie sieci neuronowe generuje mimo wszystko bardzo wysokie koszty.

Problemy przysparzają również dane, których niekiedy jest zbyt mało. Dużym wyzwaniem jest również dobór właściwych danych (w tym ich rozkład) oraz sam proces „czyszczenia” danych, zanim staną się odpowiednio przygotowane do uruchomienia procesu uczenia.