Reinforcement learning, czyli komputery samodzielnie uczą się i rozwiązują problemy

Materiał promocyjny Na tegorocznej konferencji IBM Think Summit 2020 poznamy m.in. możliwości wykorzystania algorytmów RL (reinforcement learning). Co konkretnie może zapewnić ta technologia? I dlaczego może znacznie usprawnić wiele biznesów?

Na czym polega reinforcement learning? Jak tłumaczy Michał Kordyzon, pracujący na stanowisku Cloud Architect, Ecosystem Advocacy Group Member oraz Developer Ecosystem Group Leader w IBM Polska, jest to tzw. uczenie przez wzmacnianie, co jest jedną z dziedzin uczenia maszynowego (machine learning). „W swojej najprostszej formie w algorytmach RL występuje tzw. agent, który podejmuje pewne akcje w określonym środowisku. Następnym elementem algorytmów RL jest funkcja nagrody, która może rosnąć w wyniku podejmowania przez agenta określonych akcji, co determinuje następne działania tego agenta” — mówi. W praktyce oznacza, że algorytm RL może np. nauczyć się jak grać skutecznie w prostą grę typu Flappy Bird lub kółko i krzyżyk.

IBM obserwuje, że firmy już od 2-3 lat coraz częściej interesują się algorytmami RL, choć trzeba przyznać, że ciągle jest to wczesna faza dla tej dziedziny. „Póki co niewielki procent klientów jest w ogóle świadomy istnienia tych algorytmów, i tego jak mogą one pomóc w biznesie” — zauważa Michał Kordyzon. Na tegorocznej konferencji IBM Think Summit, która odbędzie się we wrześniu w Warszawie, z pewnością poznamy wiele ciekawych informacji na temat RL, tym bardziej że jest to dziedzina, która dynamicznie się rozwija. „W każdym miesiącu pojawiają się ciekawe publikacje naukowe albo nowe zastosowania RL w najróżniejszych dziedzinach” — dodaje ekspert.

RL a zastosowanie w praktyce

RL nie jest technologią, o której krążą tylko teorie. Ilość potencjalnych praktycznych zastosowań jest gigantyczna! Algorytmy RL mogą być stosowane z powodzeniem w robotyce, samochodach autonomicznych i innych pojazdach, czy też w systemach informatycznych wykorzystywanych w dostawie i logistyce, sygnalizacji świetlnej, zarządzaniu zasobami w produkcji lub zarządzaniu konsumpcją prądu w budynku. Inaczej mówiąc, algorytmy RL najczęściej sprawdzają się tam, gdzie mamy do czynienia z wielowymiarowym problemem zarządzania dużą ilością zasobów.

Dobry przykład zastosowania RL? Uczenie się ze wzmacnianiem ma miejsce, gdy komputer uczy się wykonywać zadanie metodą prób i błędów w dynamicznym środowisku. W takim podejściu komputer podejmuje szereg decyzji, które maksymalizują „wskaźnik nagrody” (czyli ukończenie zadania z powodzeniem) bez interwencji człowieka i wcześniejszego zaprogramowania go do realizacji tego zadania.

Wyobraźmy sobie samochód autonomiczny, który ma zaparkować w danym miejscu. Cel jest prosty: samochód ma zatrzymać się na parkingu, w wyznaczonym miejscu parkingowym. Środowisko jest dynamiczne – zmienne warunki pogodowe, inne samochody w pobliżu itd. W czasie nauki komputer wykorzystuje odczyty z czujników takich jak kamery i GPS, aby wygenerować polecenia związane z hamowaniem, przyspieszaniem i sterowaniem pojazdem (zwane akcjami). Aby dowiedzieć się jak wygenerować prawidłowe akcje, algorytmy RL muszą dokonać wielu obserwacji i będą próbować zaparkować samochód metodą prób i błędów (oczywiście nauka będzie przebiegać na samym początku w środowisku kontrolowanym). Po pewnym czasie samochód będzie mógł parkować bez żadnego problemu, wykorzystując zdobytą wiedzę. Można stwierdzić, że samochód będzie miał doświadczenie, na którym potem polegać.

W przypadku RL zawsze powinniśmy wykonać kilka kroków, aby stworzyć odpowiedni workflow dla systemu:

  1. Stworzyć środowisko: definiujemy środowisko, w którym agent (komputer, algorytmy) ma działać, w tym interfejs między agentem a środowiskiem. Środowisko może być rzeczywiste (fizyczne) lub modelem symulacyjnym.
  2. Zdefiniować nagrodę: system musi wiedzieć jak wygląda nagroda, czyli pomyślne ukończenie zadania. To tzw. sygnał nagrody, którego agent używa do mierzenia swojej wydajności. Dzięki nagrodzie system wie, jak wygląda końcowy rezultat i jak - stopniowo – się do niego przybliżać.
  3. Stworzyć agenta: musimy ustalić konkretne zasady i algorytm szkoleniowy najbardziej odpowiedni dla danego zadania. Agent składa się bowiem z polityki zasad i algorytmu szkolenia.
  4. Trenować i sprawdzać agenta: po próbach agenta powinniśmy sprawdzać jego efekty i poprawność wykonywania poszczególnych kroków, aby wiedzieć czy niektóre zasady wymagają dostrojenia. Czas potrzebny na to, aby agent opanował dane zadanie może wynosić kilka minut lub nawet kilka dni – wszystko zależy od złożoności zadania. W przypadku bardzo złożonych aplikacji trzeba dysponować dużą mocą przetwarzania/obliczania, aby praca przebiegała stosunkowo szybko.
  5. Wdrożyć rozwiązanie: kiedy agent opanuje dane zadanie, pozostaje nam już tylko wdrożenie – mamy gotowy samodzielny system decyzyjny, który może działać w praktyce.

Udział IBM w rozwoju reinforcement learningu

IBM inwestuje w RL i zdaje sobie sprawę z tego, jak duży potencjał kryje się w tego typu rozwiązaniach. Michał Kordyzon wyjaśnia, że projektów i produktów w ofercie IBM jest sporo. Wymienia m.in.:

  • Cloud Pak for Data - platforma analityczna dla chmury, która wykorzystuje algorytmy RL, np. przy budowie modeli sieci neuronowych. Na tej platformie możliwe jest też utworzenie własnego modelu RL, który wzbogaci biznesowe aplikacje klientów.
  • Watson Studio na chmurze IBM Cloud – to z kolei otwarta platforma, na której specjaliści Data Science tworzą modele z wykorzystaniem algorytmów RL. Platformę można używać za darmo w ramach planu Lite, bez podpinania karty kredytowej. Wielu studentów oraz małe firmy chętnie korzystają z tej opcji.

„Jest wiele zespołów w IBM Research rozwijających algorytmy RL na polu naukowym lub korzystających z algorytmów RL w swoich projektach” — mówi ekspert IBM. I dodaje: „Przykładowo jeden z zespołów postawił sobie następujący problem: w nadchodzącej przyszłości będziemy mieli do czynienia z coraz większą liczbą agentów RL podejmujących decyzję za człowieka. Jak upewnić się, że te decyzje będą zgodne z obowiązującymi normami społecznymi? Próbą odpowiedzi na te pytanie jest projekt agenta RL, który gra w grę Pacman, ale robi w sposób moralny, tzn. bez zabijania innych występujących w grze postaci. Ten mały projekt świetnie obrazuje, że nie tylko samo zastosowanie lub wydajność algorytmów są ważne, ale też ich „uczłowieczenie”.

Zachęcamy też do rejestracji na IBM Think Summit 2020: https://www.ibm.com/pl-pl/events/think-summit/

Zobacz wideo, gdzie sztuczna inteligencja gra w Pacmana w moralny sposób: https://www.youtube.com/watch?v=aHe-Hb0ncQs&feature=youtu.be