Najlepsze pytania
Chronologia
Czat
Perspektywa
Uczenie przez wzmacnianie
dziedzina uczenia maszynowego Z Wikipedii, wolnej encyklopedii
Remove ads
Uczenie przez wzmacnianie (uczenie posiłkowane) (ang. reinforcement learning, RL) – jeden z trzech głównych nurtów uczenia maszynowego, którego zadaniem jest interakcja ze środowiskiem za pomocą polityki na podstawie zebranych przez nią informacji[1][2]. W przeciwieństwie do uczenia nadzorowanego i nienadzorowanego w uczeniu przez wzmacnianie nie przygotowuje się zestawu danych uczących, tylko środowisko (ang. environment), z którego model będzie zbierał dane automatycznie; jego celem jest zmaksymalizowanie zwracanej przez nie nagrody[2]. Większość algorytmów uczenia przez wzmacnianie polega na przygotowaniu polityki, zebraniu za jej pomocą danych o środowisku do bufora, wytrenowaniu jej na ich podstawie i powtarzania tego procesu do osiągnięcia zamierzonego skutku[1]. Środowiskiem może być zależnie od celu nauki gra w przypadku programu uczącego się grać w gry, lub prawdziwy świat, na przykład w przypadku programu uczącego się sterować łazikiem. Uczenie przez wzmacnianie jest powszechnie stosowane do uczenia sztucznej inteligencji grania w gry oraz, coraz częściej, inwestowania na giełdzie[1][3].
Remove ads
Podstawowe elementy
Podsumowanie
Perspektywa
W uczeniu przez wzmacniane wyróżnia się trzy główne elementy[4]:
Środowisko
Środowisko (ang. environment) to zadanie lub symulacja, z którym agent (gracz) wchodzi w interakcję. Przykładowym środowiskiem jest gra komputerowa, w którą agent uczy się grać, lub symulacja giełdy, gdzie agent uczy się inwestować[5]. Celem uczenia przez wzmacnianie jest maksymalizowanie nagrody zwracanej przez to środowisko[6], czyli nauczenie agenta osiągania w nim jak najwyższego wyniku, np. wygrania jak największej liczby gier (jeśli środowisko jest symulacją gry), lub wykonania jak najkorzystniejszych inwestycji (jeśli środowisko jest symulacją giełdy). Cechy środowiska:
- Stan (ang. state) – zmienna określająca stan środowiska[7].
- Krok (ang. step) – jest to najczęściej funkcja, która na podstawie podanej akcji aktualizuje stan środowiska i zwraca nagrodę oraz obserwację[6]. Agent uczy się podawać takie akcje, które zmaksymalizują zwracaną nagrodę[6][7]. Na przykład: w środowisku symulującym grę w szachy[8], krokiem jest pojedyncze posunięcie.
- Epizod (ang. episode) – zbiór kroków, po którym resetowany jest stan środowiska[1][7], np. jedna partia w środowisku symulującym grę w szachy[8].
- Nagroda (ang. reward) – zmienna zwracana przez środowisko po wykonaniu kroku, która obrazuje jak korzystny był dany krok[6]. Na przykład w środowisku symulującym grę w szachy[8], nagroda może przyjąć wartość figury zbitej w danym ruchu. Agent powinien uczyć się przewidywać długoterminowe skutki swoich akcji, często rezygnując z jednej nagrody na rzecz większej w przyszłości, to jak bardzo będzie skłonny do patrzenia na przyszłe nagrody zależy od jego hiperparametru: stopy dyskontowej[1], oznaczanej jako [2]. Waga nagród za kroków od obecnego wynosi [2], w większości przypadków zaleca się, żeby [1].
- Obserwacja (ang. observation) – skalar, wektor lub macierz zwracana przez krok, mająca opisać obecny stan środowiska[6] (zazwyczaj im bardziej złożone jest środowisko tym bardziej jest skomplikowana, nie jest to jednak reguła). Wartość ta jest następnie mapowana przez agenta na akcję, którą wykona w następnym kroku[6][9].
Powszechnym zwyczajem jest tworzenie dwóch środowisk – jednego do trenowania, a drugiego do sprawdzania[10].

Agent
Agent (ang. agent) to element, który wchodzi w interakcję ze środowiskiem. Zadaniem agenta jest wspomniane wyżej maksymalizowanie nagrody – nauczenie się jak najkorzystniejszego oddziaływania ze środowiskiem[1][2]. Najważniejsze części agenta:
- Polityka (ang. Policy) – to funkcja, która na wejście przyjmuje obserwację, a zwraca akcję[1]. To ona odpowiada za zachowanie agenta. Jako politykę najczęściej stosuje się sieć neuronową (uczenie polega na aktualizowaniu jej parametrów) lub funkcję zwracającą losową akcję (najczęściej używa się jej do wstępnego zebrania informacji o środowisku przed rozpoczęciem uczenia)[11]. Agent zawiera dwie polityki:
- Inne hiperparametry – w zależności od rodzaju agenta możemy podać także różne hiperparametry np. regulujące proces uczenia jak gamma czy maksymalne Q-wartości[12][13][14][15][10].
Bufor
Bufor (ang. Replay Buffer) to kontener danych przechowujący informacje zebrane przez agenta podczas uczenia[16]. Informacji tych używa się do późniejszego wytrenowania agenta. Bufor jest używany tylko w niektórych algorytmach uczenia przez wzmacnianie[3], na przykład jest wykorzystywany w Q-uczeniu, ale już nie w algorytmie REINFORCE[3]. Istnieje wiele rodzajów buforów używanych w różnych algorytmach ze względu na ich różną budowę[4][17][18].
Remove ads
Przebieg uczenia
Podsumowanie
Perspektywa

Uczenie przez wzmacnianie najczęściej składa się z dwóch etapów: wstępnego zbierania danych oraz pętli uczenia. Pętla uczenia z kolei składa się ze zbierania danych oraz uczenia agenta na ich podstawie[1].
Wstępne zbieranie danych
Wstępne zbieranie danych polega na przeprowadzeniu określonej liczby epizodów i zapisaniu danych na ich temat do bufora[17]. Zbieranie nie jest przeprowadzane zawsze, ale jest niezbędne do utworzenia zestawu danych z bufora[4]. Zazwyczaj definiuje się funkcję kolekcjonującą dane o środowisku i wykonuje się ją określoną liczbę razy przez rozpoczęciem pętli uczenia. Wstępne zbieranie danych najczęściej przeprowadza się polityką losową, aby zebrane dane były jak najbardziej zróżnicowane (sieć neuronowa po otrzymaniu podobnych danych na wejście zwraca podobne dane na wyjście, natomiast losowe polityki zwracają je niezależnie od danych wejściowych)[4].
Pętla procesu uczenia
- Zbieranie danych – na początku iteracji kolekcjonuje się dane o środowisku do bufora w podobny sposób jak we wstępnym zbieraniu danych, ale z użyciem kolekcjonującej polityki agenta zamiast polityki losowej[17].
- Uczenie – po zebraniu danych na temat środowiska używa się ich do obliczenia straty (ang. loss) i wytrenowania agenta[2].
- Ewaluacja – zazwyczaj podczas pętli uczenia przeprowadza się na bieżąco ewaluację agenta, często nie jest to jednak wymóg[2].
Aby zachować równowagę pomiędzy ulepszaniem dotychczasowych, a odkrywaniem nowych zachowań agenta (czyli równowagę pomiędzy uczeniem a eksploracją) można zacząć od wybierania akcji losowo, a w miarę trwania uczenia zmniejszać współczynnik losowych akcji najczęściej do wartości rzędu części setnych jedności[3].
Remove ads
Zobacz też
Przypisy
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads