OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

Podobne dokumenty
Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Zastosowania Robotów Mobilnych

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

System wspomagania harmonogramowania przedsięwzięć budowlanych

SPOTKANIE 11: Reinforcement learning

Programowanie obiektowe 2 - opis przedmiotu

Zagadnienia egzaminacyjne AUTOMATYKA I ROBOTYKA. Stacjonarne I-go stopnia TYP STUDIÓW STOPIEŃ STUDIÓW SPECJALNOŚĆ

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Systemy Informatyki Przemysłowej

Maciej Oleksy Zenon Matuszyk

OSGi Agata Hejmej

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

Gotowe platformy tak, ale

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Dokumentacja projektu QUAIKE Architektura oprogramowania

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

PyPy's Approach to Virtual Machine Construction

System zarządzający grami programistycznymi Meridius

Pattern Classification

Optimizing Programs with Intended Semantics

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Piotr Bubacz Cloud Computing

Wykorzystanie metod ewolucyjnych w projektowaniu algorytmów kwantowych

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

REFERAT PRACY DYPLOMOWEJ

Programowanie współbieżne i rozproszone

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Pojęcia to. porównanie trzech sposobów ujmowania pojęć. Monika Marczak IP, UAM

Szybkie prototypowanie w projektowaniu mechatronicznym

SVN. 10 października Instalacja. Wchodzimy na stronę i pobieramy aplikację. Rysunek 1: Instalacja - krok 1

Paweł Kurzawa, Delfina Kongo

OfficeObjects e-forms

REFERAT PRACY DYPLMOWEJ. Temat pracy: Projekt i realizacja warstwy serwerowej gry internetowej

Kurs wybieralny: Zastosowanie technik informatycznych i metod numerycznych w elektronice

Zastosowanie sztucznych sieci neuronowych w prognozowaniu szeregów czasowych (prezentacja 2)

Systemy agentowe. Uczenie ze wzmocnieniem. Jędrzej Potoniec

Gry społecznościowe. wykład 0. Joanna Kołodziejczyk. 24 lutego Joanna Kołodziejczyk Gry społecznościowe 24 lutego / 11

Rozdział 2. Programowanie Arduino i kodowanie społecznościowe (29)

Internetowa ogólnopolska baza informatycznych projektów badawczych otwartej innowacji Platforma współpracy SPINACZ 1/46

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Programowanie Komponentowe WebAPI

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Egzamin / zaliczenie na ocenę*

Dwie szkoły oceny 360 stopni. Sprawdź różnicę pomiędzy klasycznym a nowoczesnym podejściem

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Projektowanie rozwiązania prostych problemów w języku C++ obliczanie pola trójkąta

Referat Pracy Dyplomowej

Projekt Zaprogramować działanie robota w narzędziu USARSim

Konspekt pracy inżynierskiej

Obiekty Badawcze długoterminowe przechowywanie eksperymentów naukowych. Piotr Hołubowicz, Raúl Palma Poznańskie Centrum Superkomputerowo-Sieciowe

Programowanie obiektowe

Programowanie obiektowe - 1.

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Modelowanie Data Mining na wielką skalę z SAS Factory Miner. Paweł Plewka, SAS

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Innowacyjne narzędzia do zarządzania kompetencjami i ich rozwoju

JavaScript - korzenie

Program terapii i edukacji dzieci z autyzmem TEACCH Treatment and Education of Autistic Communication Handicapped Children

Programowanie obiektowe 1 - opis przedmiotu

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

Wykorzystanie platformy e-learningowej moodle do szkoleń i zarządzania

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl

PRZEWODNIK PO PRZEDMIOCIE

Podstawy Programowania Obiektowego

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,

Warszawa, Wytyczne dla projektu Biblioteka GUI

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Bilansowanie stacji SN/nN w PGE Dystrybucja SA. Wojciech Rutkowski

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Microsoft Class Server. Waldemar Pierścionek, DC EDUKACJA

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Customer Attribution Models. czyli o wykorzystaniu machine learning w domu mediowym.

Tworzenie oprogramowania

Architektury i protokoły dla budowania systemów wiedzy - zadania PCSS w projekcie SYNAT

Instrukcja laboratoryjna cz.0

OFERTA. Lp. Nazwa zadania Cena netto (zł) VAT (zł) Cena brutto (zł)

System wizyjny OMRON Xpectia FZx

Dostawa oprogramowania. Nr sprawy: ZP /15

Jazda autonomiczna Delphi zgodna z zasadami sztucznej inteligencji

Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+

Zarządzanie konfiguracją produktu w całym cyklu Ŝycia. Aleksandra Grzywak-Gawryś Warsztaty Rola IRIS w branŝy kolejowej

Identyfikacja istotnych atrybutów za pomocą Baysowskich miar konfirmacji

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Firma Informatyczna ASDER. Prezentacja. Serwer danych lokalnych. Przemysław Kroczak ASDER

Aparaty słuchowe Hi-Fi z Multiphysics Modeling

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

Czym jest Ruby on Rails?

ALGORYTM PROJEKTOWANIA ROZMYTYCH SYSTEMÓW EKSPERCKICH TYPU MAMDANI ZADEH OCENIAJĄCYCH EFEKTYWNOŚĆ WYKONANIA ZADANIA BOJOWEGO

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

O-MaSE Organization-based Multiagent System Engineering. MiASI2, TWO2,

Wtyczka Crop3D. Wstęp. Implementacja. Sprawozdanie z realizacji projektu Bartłomiej Trzewiczek Kraków,

Transkrypt:

OpenAI Gym Adam Szczepaniak, Kamil Walkowiak

Plan prezentacji Programowanie agentowe Uczenie przez wzmacnianie i problemy związane z rozwojem algorytmów Charakterystyka OpenAI Gym Biblioteka gym Podsumowanie

Programowanie agentowe wyższy poziom abstrakcji programowania niż programowanie obiektowe polega na tworzeniu agentów każdy z agentów jest przygotowany na otrzymanie błędnych danych od innego agenta powielanie tych samych obliczeń przez wielu agentów jest zjawiskiem pożądanym systemy agentowe przystosowane są do uruchamiania dużych lub niepewnych środowiskach system agentowy często zwraca wynik przybliżony lub obarczony pewnym prawdopodobieństwem błędu systemy wieloagentowe = połączenie wielu agentów

Uczenie przez wzmacnianie (Reinforcement Learning, RL) zainspirowane psychologią behawioralną metoda wyznaczania optymalnej polityki sterowania przez agenta w nieznanym środowisku na podstawie interakcji z tym środowiskiem agent opiera decyzję na podstawie sygnału wzmocnienia sygnał osiąga wysoką wartość (nagrodę), gdy agent podejmuje poprawne decyzje lub niską (karę), gdy podejmuje decyzje błędnie

Problemy związane z rozwojem algorytmów RL potrzeba większej liczby środowisk open-source brak standaryzacji środowisk

OpenAI Gym Zestaw narzędzi pozwalający na rozwijanie i porównywanie algorytmów uczenia maszynowego z kategorii uczenia przez wzmacnianie.

OpenAI Gym - główne cechy non-profit w wersji beta (od kwietnia 2016) wsparcie dla języka Python (planowane wsparcie dla innych języków) brak jakichkolwiek założeń co do struktury agentów kompatybilny z wieloma bibliotekami numerycznymi (np. TensorFlow, Theano) wiele wersjonowanych środowisk o wspólnym interfejsie prosty sposób rejestracji i udostępniania uzyskanych wyników

OpenAI Gym - cele udostępnienie dużej bazy środowisk open-source standaryzacja środowisk używanych w algorytmach stworzenie otwartej biblioteki zawierającej działające rozwiązania umożliwienie łatwej reprodukcji uzyskanych wyników większe skupienie na współpracy w procesie ulepszania rozwiązań niż rywalizacji

OpenAI Gym - struktura 1. Biblioteka gym (open-source): przeznaczona dla języka Python zestaw testowych problemów (środowisk), które mogą zostać użyte w procesie treningu algorytmu środowiska współdzielą jeden interfejs, co pozwala na większą generalizację implementacji 2. Serwis OpenAI Gym: strona i API pozwalające na udostępnianie i szczegółowe porównywanie wyników osiąganych przez wytrenowanych agentów

OpenAI Gym - workflow 1. Implementacja algorytmu uczenia przez wzmacnianie (od podstaw lub ulepszając istniejące rozwiązanie) 2. Przeprowadzenie symulacji w wybranym środowisku 3. Upload uzyskanych wyników dla danego środowiska wraz z kodem pozwalającym na uzyskanie wyniku 4. Weryfikacja wyniku przez innych użytkowników i umieszczenie na liście potwierdzonych wyników dla danego środowiska. Rozwiązanie powinno stanowić nowe podejście do tematu (nowy lub ulepszony algorytm). Rozwiązania specyficzne dla środowiska nie są akceptowane

OpenAI Gym - przykładowe środowiska

Przykładowe środowiska CartPole-v0 - http://bit.ly/2gnnu8b DoomBasic-v0 - http://bit.ly/2h4j0go BipedalWalkerHardcore-v2 - http://bit.ly/2haep4b LunarLander-v2 - http://bit.ly/2hkyizg

Cechy środowiska jednolity interfejs powtarzalność uzyskanie informacji na temat struktury obiektów środowiska (krok, obserwacja) system nagród odczyt bieżącego stanu dodatkowe informacje pomocnicze (debugowanie)

Przykładowy kod

Pomiary kod programu definiuje zadanie większość zadań składa się z epizodów każdy epizod ma zdefiniowany stan zakończenia każde zadanie/epizod składa się z czynności renderowania środowiska oraz wykonywania kroków każdy krok zwraca 4 parametry pozwalające go ocenić

Parametry oceny kroku obserwacja (object) - obiekt reprezentujący stan środowiska, np. informację o pikselu z kamery, kąty i prędkości robota itp. Struktura obiektu jest zależna od środowiska nagroda (float) - wartość nagrody za poprzednią akcję, zakres wartości jest zależny od środowiska, ale zawsze należy ją maksymalizować zakończone (boolean) - wartość określająca, czy epizod został zakończony info (dict) - słownik wartości pomocniczych przy debugowaniu, są to wartości, które nie mogą być wykorzystywane przez algorytm (np. prawdopodobieństwa)

Przykładowe wartości obserwacji http://bit.ly/2h4 YuKq

Jak poznać strukturę kroku i obserwacji? Każde środowisko zawiera w sobie informację na temat zakresu możliwych wartości kroku oraz obserwacji. Informacje te znajdują się w klasie Space. Wykorzystanie tych informacji pozwala stworzyć algorytmy, które mogą być wykorzystywane w różnych środowiskach.

Cel Dla większości środowisk zdefiniowany jest próg funkcji celu, od którego zadanie uznaje się za rozwiązane. W tym przypadku rezultat oceniany jest za pomocą liczby wykonanych kroków. Jednakże istnieją także środowiska (trudne), dla których nie została jeszcze zdefiniowana wartość progowa. Dla tych środowisk wynik stanowi wartość osiągniętej funkcji celu.

Porównywanie wyników Jednym z głównych celów omawianego narzędzia jest publikacja i porównywanie wyników. Proces zbierania pomiarów, rejestracji symulacji oraz samej publikacji został zautomatyzowany w ramach biblioteki.

Podsumowanie OpenAI Gym - darmowa platforma wspierająca rozwój algorytmów RL biblioteka gym dostarcza bogatą bazę środowisk o ustandaryzowanym sposobie interakcji ciekawy sposób testowania i symulacji algorytmów dostępne API oraz strona internetowa w celu udostępniania i porównywania wyników uzyskanych dla konkretnych środowisk społeczność współtworząca uniwersalne algorytmy do powszechnego wykorzystania

Dziękujemy za uwagę! Pytania?