Home » UJ 2022/23 » Uczenie przez wzmacnianie – charakterystyka

Tagi

Wyróżnione posty

Zobacz też

Statystyki

  • 61
  • 517
  • 25 109
  • 7 347
  • 31

Uczenie przez wzmacnianie – charakterystyka

Spread the love

Gdy słyszymy o uczeniu maszynowym, od razu nasuwają się na myśl ogromne wolumeny danych ze świata wirtualnego, przetwarzane w chmurze przez komercyjne aplikacje takie jak Amazon lub Spotify. Często podejmują one decyzje biznesowe o dużym stopniu abstrakcji, wyręczając w pracy analityków i marketingowców. Czy mogłyby znaleźć zastosowanie w zadaniach tak podstawowych, jak nauka chodzenia? Poniższy artykuł omawia gałąź uczenia maszynowego wzorowaną na niskopoziomowych mechanizmach poznawczych ludzi i zwierząt.

Co wyróżnia uczenie przez wzmacnianie na tle innych metod uczenia maszynowego?

Istotą uczenia przez wzmacnianie jest nauka metodą prób i błędów, by osiągnąć założony cel. Algorytmowi pozwala się tu na swobodną eksplorację otoczenia i sprawdzanie, jakie skutki mają podejmowane przezeń działania. Akcje, które przybliżyły go do celu, będą powtarzane w przyszłości. Te, które nie przyniosły pożądanych rezultatów, zostaną zaniechane.[1]

Głównym dążeniem algorytmu jest stworzenie strategii, która pozwoli mu poruszać się w otoczeniu w sposób przybliżający go do realizacji zadania. Jest to więc typ uczenia maszynowego nastawiony na cel (goal-oriented). Najlepiej sprawdza się w zadaniach dynamicznych, w których efekt końcowy jest sumą decyzji rozłożonych w czasie.

By lepiej zrozumieć charakterystykę uczenia przez wzmacnianie, warto porównać je z innymi technikami uczenia maszynowego:

  • Zarówno uczenie nadzorowane, jak i nienadzorowane operują na ustrukturyzowanych zestawach danych przygotowanych przez człowieka. Dane te są zazwyczaj ułożone w rzędy, zwane obserwacjami, oraz kolumny, które stanowią cechy obserwacji.[2] Uczenie przez wzmacnianie nie wymaga dostarczenia danych w takiej formie.
  • Podczas gdy uczenie nienadzorowane konsumuje ilości danych niemożliwe do objęcia percepcją człowieka, systemy uczenia przez wzmacnianie często posiadają “zmysły” o podobnych ograniczeniach do ludzkich. Na przykład roboty przemysłowe są najbardziej opłacalne, gdy radzą sobie z manipulacją przedmiotami dysponując jedynie słabej jakości obrazem.[3]
  • Uczenie nadzorowane otrzymuje etykiety a priori i przechowuje je w formie zmiennych zależnych, które następnie mogą służyć do szczegółowych porównań. Etykiety często niosą informacje jakościowe. Uczenie przez wzmacnianie, nawet jeśli wykonuje podobne zadanie, otrzyma informację zwrotną a posteriori i przyjmie ona formę ilościową, świadczącą jedynie o poprawności wykonanego zadania.

Anatomia systemu uczenia przez wzmacnianie

Systemy uczenia przez wzmacnianie mogą przyjmować różne formy, jednak zawsze występują w nich dwa podstawowe komponenty: agent oraz środowisko.

Agent jest programem komputerowym – częścią systemu, która na podstawie pozyskanych danych przeprowadza obliczenia i podejmuje decyzję o swojej następnej czynności. Operuje wedle schematu:

  1. przyjęcie informacji wejściowej o otoczeniu,
  2. przetwarzanie danych,
  3. zwrócenie informacji wyjściowej w postaci decyzji.

Wszystkie inne kroki, takie jak zdobycie danych z otoczenia lub wprowadzenie w życie podjętej decyzji nie są odpowiedzialnością agenta.

Środowisko stanowi reprezentację problemu postawionego przed agentem. Może to być gra komputerowa, zamknięte pomieszczenie stanowiące „poligon” dla uczącego się robota lub tor z przeszkodami. W przypadku najbardziej holistycznych systemów, środowiskiem może być nawet fragment świata fizycznego lub społecznego. Warto jednak zaznaczyć, że tak naprawdę środowiskiem jest wszystko poza agentem – a więc także przyłączone do niego komponenty percepcyjne i wykonawcze.[3]

Tę granicę można zilustrować na przykładzie prostego robota jeżdżącego, mającego za zadanie poruszać się po powierzchni w taki sposób, aby rysować figury geometryczne. Składa się on z płytki zawierającej oprogramowanie, dołączonych do niej urządzeń zbierających informacje z otoczenia (kamera, czujniki światła) oraz urządzeń wykonujących działania (koła, diody). W tym przypadku agentem będzie część oprogramowania podejmująca decyzje o ruchu. Istnieją niepożądane czynniki sprawiające, że decyzje agenta mogą być nieidealnie przenoszone na otoczenie, jak choćby zakrzywienie platformy czy drobne różnice w sposobie dokręcenia kół. Muszą być one uwzględnione w procesie decyzyjnym, by agent mógł skutecznie korygować swoje postępowanie. Nie może więc traktować komponentów jako niezawodnych „części ciała” realizujących jego wolę: korzystniejsze jest potraktowanie ich jako elementów środowiska.

Sercem procesu nauki jest interakcja

Agent może wpływać na środowisko poprzez podejmowane akcje. Komunikacja ta ma charakter sekwencyjny i jest oparta na dyskretnych krokach czasowych. W każdym kroku agent dokonuje wyboru spośród dostępnych akcji i otrzymuje nagrodę – liczbę opisującą, na ile korzystne było ostatnie działanie. Na podstawie tej informacji modyfikuje on swoje zachowanie, by w następnym kroku zmaksymalizować wartość nagrody.

Ważnym elementem tworzenia algorytmu jest zaprojektowanie funkcji nagrody, która odpowiednio skwantyfikuje takie idee jak „sukces” czy „porażka”, by reprezentowały one dążenie do celu. W przypadku agentów prowadzących interakcje ze światem rzeczywistym lub grą komputerową, nagroda może być naturalnie wpisana w środowisko. Przykłady stanowią:

  • zdobycie punktu kosztem przeciwnika,
  • obrócenie naleśnika w powietrzu w taki sposób, że trafi z powrotem na patelnię, a nie na sufit[4],
  • przekroczenie linii mety.

Często jednak możliwość otrzymania naturalnej nagrody pojawia się zbyt rzadko, by dało się z niej efektywnie wyciągać wnioski i korygować swoje postępowanie. Dlatego programistka może wprowadzić nagrodę premiującą na przykład:

  • odbicie lotki pod takim kątem, że przeleci nad siatką i znajdzie się po stronie przeciwnika,
  • poruszenie się bliżej mety w porównaniu do położenia zajmowanego w poprzedniej sekundzie; im większą pokonano odległość, tym wyższa otrzymana nagroda.

Istotne, by mechanizm nagrody nie był zanadto skomplikowany:

If you use an overly complex reward signal then the proposed algorithms might overfit and learn to take advantage of a flaw in the reward signal, rather than solving the intended problem.[5]

Niektóre algorytmy wzorowane na ewolucji biologicznej nie opierają się na kolejnych próbach pojedynczego agenta, ale wprawiają w ruch wielu agentów jednocześnie. W takim wypadku nie stosuje się liczbowej kary za porażkę, ale następuje eliminacja agenta z puli.

Procesy Decyzyjne Markowa

Problemy stawiane przed agentem posiadają reprezentację matematyczną w postaci Procesów Decyzyjnych Markowa.[6]

W centrum koncepcji znajduje się krok, oznaczany jako t. Jest to zmienna dyskretna, a więc przyjmuje wartości kolejnych liczb naturalnych. Kroki reprezentują następujące po sobie okazje do nauki.

Środowisko jest reprezentowane przez wyczerpujący zbiór zmiennych, nazywany stanem. Wszystkie możliwe stany są zebrane w przestrzeni stanów, czyli w zbiorze oznaczanym jako S. Elementy tego zbioru są oznaczane jako s. Stan środowiska w danym kroku oznaczamy jako St.

Agent zazwyczaj nie ma dostępu do każdej zmiennej opisującej środowisko – jego percepcja jest zapośredniczona obserwacjami. Obserwacja może być podzbiorem stanu. Może też zawierać zmienne spoza stanu, które po odpowiednich przekształceniach ujawnią przybliżone wartości zmiennych stanu.

Działania podejmowane przez agenta noszą nazwę akcji. Wszystkie dostępne akcje zebrane są w zbiorze akcji oznaczanym jako A. Jego elementy oznaczamy jako a. Akcja wybrana przez agenta w danym kroku nosi oznaczenie At.

Te elementy pozwalają zdefiniować funkcję przejścia pomiędzy stanami w postaci p(s’|s,a). Określa ona prawdopodobieństwo znalezienia się w stanie s’, zakładając, że w poprzednim stanie s wybrano akcję a.[3]

Zauważmy, że argumentem funkcji nie jest zbiór informacji o wszystkich poprzednich interakcjach. Procesy spełniające własność Markowa muszą być zdolne wyznaczyć przyszły stan wyłącznie na podstawie stanu obecnego i wybranej akcji, otrzymując taki sam rezultat, jak gdyby argument stanowiła pełna historia interakcji.

Różnorodność algorytmów – wiele dróg do celu

Nie istnieje tylko jedna, liniowa recepta na stworzenie algorytmu uczenia przez wzmacnianie. Projektantka algorytmu może wprowadzić szereg modyfikacji, by uzyskać jak najlepszą reprezentację problemu. Jedną z najważniejszych decyzji jest wybór pomiędzy podejściem opartym na modelu (model-based) lub pozbawionym modelu (model-free).

Algorytmy pozbawione modelu są „rzucane na głęboką wodę”. Agent nie ma dostępu do żadnej wiedzy dziedzinowej, która pomoże mu rozwiązać problem. Wszystkie przydatne reguły działania zawarte w środowisku są przyswajane w procesie uczenia się, z pominięciem planowania.[1][5] Przykładem algorytmu model-free jest Q-learning.

Algorytmy oparte na modelu posiadają komponenty predykcyjne, dzięki którym agent zyskuje wiedzę o potencjalnych nagrodach tuż przed danym ruchem. Te informacje mogą zostać uwzględnione w decyzji, by z góry odrzucić niekorzystne akcje i skupić swoje zasoby na eksploracji najbardziej obiecujących wyborów.

Dylematy techniczne w projektowaniu algorytmów

Agent stara się opracować strategię maksymalizującą wartość otrzymanej nagrody. Jednak działanie, które przyniesie krótkotrwałą nagrodę może nie być tym samym, które w dłuższej perspektywie prowadzi do osiągnięcia celu.

Weźmy przykład robota pokonującego tor z przeszkodami. Gdy w danej sekundzie pomniejsza on swoją odległość do linii mety, uzyskuje nagrodę; w przeciwnym wypadku jest karany. Co jeżeli przeszkoda jest tak wysoka, że do jej pokonania potrzeba wziąć rozbieg? Choć przez kilka sekund robot oddala się od mety, to wysiłek ten jest wynagradzany ponownym pójściem naprzód, które nie byłoby możliwe bez chwilowego poświęcenia. Jeśli agent przeceni wpływ chwilowej nagrody na efekt końcowy, może przyjąć strategię omijania nawet bardzo szerokich przeszkód, które sumarycznie korzystniej byłoby przeskoczyć (ruch w bok skutkuje nagrodą równą 0; ruch w tył niesie za sobą ujemną wartość nagrody).

Ten problem nosi nazwę exploration vs exploitation trade-off. Agent, który za bardzo skupia się na eksploatacji korzystnej strategii, zamyka się na poszukiwanie nowych rozwiązań. Może przez to przeoczyć pozornie mniej korzystną strategię, która długofalowo wiąże się z większą nagrodą.

Zastosowania uczenia przez wzmacnianie

Uczenie przez wzmacnianie jest bardzo wszechstronną techniką. Najsłynniejsze zastosowania historyczne miały związek z nauką gier planszowych, karcianych oraz prostych gier komputerowych. Typową dziedziną, która w pełni wykorzystuje jego potencjał, jest robotyka.[7] Uczenie przez wzmacnianie doskonale radzi sobie z takimi zadaniami jak zarządzanie zasobami i optymalizacja, na przykład odciążenie sieci energetycznych podczas napływu prosumentów, zarządzanie światłami drogowymi oraz poprawa wydajności sieci komputerowych.[5] Istnieją również implementacje na potrzeby testów decyzji marketingowych.

Robotyczna ręka uczy się przewracać naleśniki.

Jakie wyzwania prezentuje uczenie przez wzmacnianie?

Podstawowym problemem uczenia przez wzmacnianie jest ogromna liczba prób, jakie musi wykonać agent, nim nauczy się podstaw danego zagadnienia (tzw. sample efficiency). Może to stanowić szczególną przeszkodę w warunkach świata fizycznego – każdy obiekt uszkodzony podczas uczenia oznacza duże wydatki i marnotrawstwo surowców. Pewną odpowiedzią na ten problem może być wykorzystanie wirtualnych odwzorowań środowiska podczas pierwszych etapów nauki i przeniesienie nauki do miejsca docelowego, gdy działania podejmowane przez agenta zyskają pożądaną precyzję czy też ostrożność. Inne rozwiązanie stanowią algorytmy imitacyjne (imitation-based), które przyswajają postawy obserwując zachowanie eksperta podczas rozwiązywania problemu, a następnie wyruszają na samodzielną eksplorację.

Algorytm PoWER vs algorytm ARCHER
Algorytm łuczniczy PoWER potrzebuje aż 19 prób, by trafić do celu. Algorytmowi ARCHER wystarcza już 5 prób.[4]
Głównym zagrożeniem społecznym związanym z uczeniem przez wzmacnianie jest jego skupienie na tym, co opłacalne, przy potencjalnym pominięciu tego, co właściwe.

Łatwo jest zdefiniować nagrodę reprezentującą wzrost przychodów danego przedsiębiorstwa, dużo trudniej natomiast przypisać sekwencyjne reprezentacje liczbowe tak abstrakcyjnym kategoriom, jak “poprawa/pogorszenie jakości ludzkiego życia”. Wymagałoby to prawdopodobnie szerokiej skali, często wypełnianych kwestionariuszy socjologicznych i psychologicznych, które również mogą pominąć niektóre ukryte bądź rozciągnięte w czasie aspekty.

Agent o założonym zadaniu, lecz umieszczony nie w grze komputerowej, a w świecie społecznym, nie wpływa przecież wyłącznie na te aspekty środowiska, które uwzględnia jego funkcja nagrody. Jego obserwacje stanu środowiska mogą być w całości nastawione na osiągnięcie celu i ignorować szereg czynników, które być może narzuciłyby się bardziej wszechstronnemu percepcyjnie człowiekowi. Na przykład algorytm oceniający copy marketingowe pod kątem zwiększenia sprzedaży niekoniecznie będzie wrażliwy na zbyt sensacyjne czy polaryzujące treści, które co prawda przyniosą zyski, ale sprawią dyskomfort osobom postronnym. Dlatego istotna jest społeczna kontrola nad algorytmami wykorzystywanymi w marketingu i mediach społecznościowych, wychodząca poza ramy wewnętrznych zespołów etycznych danej firmy.

Ciekawym aspektem społecznym jest sposób, w jaki rozszerzająca się wiedza o danej dziedzinie sztucznej inteligencji może wpływać na nasze postrzeganie i założenia na temat inteligencji naturalnej. W niektórych źródłach nt. uczenia przez wzmacnianie można spotkać przykłady operacjonalizujące, na potrzeby dydaktyczne, ludzki organizm jako system uczenia maszynowego. Agentem jest w tym przypadku np. odpowiedni fragment płata czołowego, natomiast neurony pośredniczące, eferentne i aferentne są obejmowane kategorią środowiska. Dzięki licznym analogiom pomiędzy sposobem uczenia się dzieci i uczeniem przez wzmacnianie, nowe doniesienia o skuteczności poszczególnych podejść algorytmicznych wobec różnych klas problemów mogą stanowić inspirację dla badań pedagogicznych. Agent uczenia przez wzmacnianie mógłby też imitować wybory rynkowe człowieka we wstępnym testowaniu hipotez z zakresu ekonomii behawioralnej i neuromarketingu.

Podsumowanie

  • Algorytm uczenia przez wzmacnianie dokonuje sekwencyjnej eksploracji otoczenia, by osiągnąć postawiony przed nim cel.
  • Częścią systemu odpowiedzialną za dokonywanie wyborów jest agent. Wszystko w jego otoczeniu stanowi środowisko.
  • Ten typ uczenia maszynowego znajduje zastosowanie przede wszystkim w dziedzinach robotyki, optymalizacji i zarządzania. Wciąż powstają jednak innowacyjne, często zaskakujące implementacje z innych sektorów.

Bibliografia

  1. Sutton, R. S., & Barto, A. G. (2018). Reinforcement learning: An introduction. (2nd ed.). MIT press.
  2. Baer, T. (2019). Understand, Manage And Prevent Algorythmic Bias. A Guide For Business Users And Data Scientists. Apress.
  3. Morales, M. (2020). Grokking deep reinforcement learning. Manning Publications.
  4. Kormushev, P. et al. (2013). Reinforcement Learning in Robotics: Applications
    and Real-World Challenges. Robotics 2(3).
  5. Winder, P. (2021). Reinforcement learning: industrial applications of intelligent agents. O’Reilly.
  6. Thomas, P. S., & Okal, B. (2015). A notation for Markov decision processes. arXiv preprint arXiv:1512.09075.
  7. Polydoros, A.S., & Nalpantidis, L. (2017). Survey of Model-Based Reinforcement Learning: Applications on Robotics. Journal of Intelligent & Robotic Systems 86, 153–173. https://doi.org/10.1007/s10846-017-0468-y

Leave a comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze komentarze

  1. Ciekawe jest porównanie tradycyjnej terapii z nowymi rozwiązaniami opartymi na modelach językowych. Warto zauważyć, że mimo obiecujących wyników, istnieją ważne…