Głębokie uczenie przez wzmacnianie. Praca z chatbotami oraz robotyka, optymalizacja dyskretna i automatyzacja sieciowa w praktyce - ebook
Głębokie uczenie przez wzmacnianie. Praca z chatbotami oraz robotyka, optymalizacja dyskretna i automatyzacja sieciowa w praktyce - ebook
Głębokie uczenie przez wzmacnianie rozwija się bardzo dynamicznie. Dziedzinę tę charakteryzuje niewyczerpany potencjał rozwiązywania trudnych problemów. Zajmuje się tym co najmniej kilka grup badawczych, koncentrujących się na wdrażaniu głębokiego uczenia przez wzmacnianie w różnych branżach. Niestety, opisy najnowszych osiągnięć są trudne do zrozumienia i zbyt abstrakcyjne, aby można było je łatwo zastosować w praktycznych implementacjach, a przecież poprawne działanie aplikacji jest uwarunkowane gruntownym zrozumieniem problemu przez projektanta.
To zaktualizowane i rozszerzone wydanie bestsellerowego przewodnika po najnowszych narzędziach i metodach związanych z uczeniem przez wzmacnianie. Zawiera wprowadzenie do teorii uczenia przez wzmacnianie, a także wyjaśnia praktyczne sposoby kodowania samouczących się agentów w celu rozwiązywania praktycznych zadań. W tym wydaniu dodano sześć nowych rozdziałów poświęconych takim osiągnięciom technologii jak dyskretna optymalizacja, metody wieloagentowe, środowisko Microsoft TextWorld czy zaawansowane techniki eksploracji. Opisano również inne zagadnienia, między innymi głębokie sieci Q, gradienty polityk, sterowanie ciągłe i wysoce skalowalne metody bezgradientowe. Poszczególne kwestie zostały zilustrowane kodem wraz z opisem szczegółów implementacji.
W książce między innymi:
- związki między uczeniem przez wzmacnianie a głębokim uczeniem
- różne metody uczenia przez wzmacnianie, w tym entropia krzyżowa, sieć DQN, a także algorytmy: aktor-krytyk, TRPO, PPO, DDPG, D4PG i inne
- praktyczne zastosowanie dyskretnej optymalizacji w celu rozwiązania problemu kostki Rubika
- trenowanie agentów przy użyciu oprogramowania AlphaGo Zero
- chatboty oparte na sztucznej inteligencji
- zaawansowane techniki eksploracyjne, w tym metody destylacji sieci
Witaj, świecie prawdziwej sztucznej inteligencji!
Spis treści
O autorze
O recenzentach
Wstęp
Rozdział 1. Czym jest uczenie przez wzmacnianie
- Uczenie nadzorowane
- Uczenie nienadzorowane
- Uczenie przez wzmacnianie
- Trudności związane z uczeniem przez wzmacnianie
- Formalne podstawy uczenia przez wzmacnianie
- Nagroda
- Agent
- Środowisko
- Akcje
- Obserwacje
- Teoretyczne podstawy uczenia przez wzmacnianie
- Procesy decyzyjne Markowa
- Polityka
- Podsumowanie
Rozdział 2. Zestaw narzędzi OpenAI Gym
- Anatomia agenta
- Wymagania sprzętowe i programowe
- Interfejs API biblioteki OpenAI Gym
- Przestrzeń akcji
- Przestrzeń obserwacji
- Środowisko
- Tworzenie środowiska
- Sesja CartPole
- Losowy agent dla środowiska CartPole
- Dodatkowa funkcjonalność biblioteki Gym - opakowania i monitory
- Opakowania
- Monitory
- Podsumowanie
Rozdział 3. Uczenie głębokie przy użyciu biblioteki PyTorch
- Tensory
- Tworzenie tensorów
- Tensory skalarne
- Operacje na tensorach
- Tensory GPU
- Gradienty
- Tensory a gradienty
- Bloki konstrukcyjne sieci neuronowych
- Warstwy definiowane przez użytkownika
- Funkcje straty i optymalizatory
- Funkcje straty
- Optymalizatory
- Monitorowanie za pomocą narzędzia TensorBoard
- Podstawy obsługi narzędzia TensorBoard
- Narzędzia do tworzenia wykresów
- Przykład - użycie sieci GAN z obrazami Atari
- Biblioteka PyTorch Ignite
- Zasady działania biblioteki Ignite
- Podsumowanie
Rozdział 4. Metoda entropii krzyżowej
- Taksonomia metod uczenia przez wzmacnianie
- Praktyczne wykorzystanie entropii krzyżowej
- Użycie entropii krzyżowej w środowisku CartPole
- Użycie metody entropii krzyżowej w środowisku FrozenLake
- Teoretyczne podstawy metody entropii krzyżowej
- Podsumowanie
Rozdział 5. Uczenie tabelaryczne i równanie Bellmana
- Wartość, stan i optymalność
- Równanie optymalności Bellmana
- Wartość akcji
- Metoda iteracji wartości
- Wykorzystanie iteracji wartości w praktyce
- Q-uczenie w środowisku FrozenLake
- Podsumowanie
Rozdział 6. Głębokie sieci Q
- Rozwiązywanie realnego problemu z wykorzystaniem metody iteracji wartości
- Q-uczenie tabelaryczne
- Głębokie Q-uczenie
- Interakcja ze środowiskiem
- Optymalizacja za pomocą stochastycznego spadku wzdłuż gradientu (SGD)
- Korelacja pomiędzy krokami
- Własność Markowa
- Ostateczna wersja procedury trenowania dla głębokich sieci Q
- Użycie głębokiej sieci Q w grze Pong
- Opakowania
- Model głębokiej sieci Q
- Trenowanie
- Uruchomienie programu i sprawdzenie jego wydajności
- Użycie modelu
- Rzeczy do przetestowania
- Podsumowanie
Rozdział 7. Biblioteki wyższego poziomu uczenia przez wzmacnianie
- Dlaczego potrzebujemy bibliotek uczenia przez wzmacnianie?
- Biblioteka PTAN
- Selektory akcji
- Agent
- Źródło doświadczeń
- Bufory doświadczeń
- Klasa TargetNet
- Klasy upraszczające współpracę z biblioteką Ignite
- Rozwiązanie problemu środowiska CartPole za pomocą biblioteki PTAN
- Inne biblioteki związane z uczeniem przez wzmacnianie
- Podsumowanie
Rozdział 8. Rozszerzenia sieci DQN
- Podstawowa, głęboka sieć Q
- Wspólna biblioteka
- Implementacja
- Wyniki
- Głęboka sieć Q o n krokach
- Implementacja
- Wyniki
- Podwójna sieć DQN
- Implementacja
- Wyniki
- Sieci zakłócone
- Implementacja
- Wyniki
- Bufor priorytetowy
- Implementacja
- Wyniki
- Rywalizujące sieci DQN
- Implementacja
- Wyniki
- Kategoryczne sieci DQN
- Implementacja
- Wyniki
- Połączenie wszystkich metod
- Wyniki
- Podsumowanie
- Bibliografia
Rozdział 9. Sposoby przyspieszania metod uczenia przez wzmacnianie
- Dlaczego prędkość ma znaczenie?
- Model podstawowy
- Wykres obliczeniowy w bibliotece PyTorch
- Różne środowiska
- Granie i trenowanie w oddzielnych procesach
- Dostrajanie opakowań
- Podsumowanie testów
- Rozwiązanie ekstremalne: CuLE
- Podsumowanie
- Bibliografia
Rozdział 10. Inwestowanie na giełdzie za pomocą metod uczenia przez wzmacnianie
- Handel
- Dane
- Określenie problemu i podjęcie kluczowych decyzji
- Środowisko symulujące giełdę
- Modele
- Kod treningowy
- Wyniki
- Model ze sprzężeniem wyprzedzającym
- Model konwolucyjny
- Rzeczy do przetestowania
- Podsumowanie
Rozdział 11. Alternatywa - gradienty polityki
- Wartości i polityka
- Dlaczego polityka?
- Reprezentacja polityki
- Gradienty polityki
- Metoda REINFORCE
- Przykład środowiska CartPole
- Wyniki
- Porównanie metod opartych na polityce z metodami opartymi na wartościach
- Ograniczenia metody REINFORCE
- Wymagane jest ukończenie epizodu
- Wariancja dużych gradientów
- Eksploracja
- Korelacja danych
- Zastosowanie metody gradientu polityki w środowisku CartPole
- Implementacja
- Wyniki
- Zastosowanie metody gradientu polityki w środowisku Pong
- Implementacja
- Wyniki
- Podsumowanie
Rozdział 12. Metoda aktor-krytyk
- Zmniejszenie poziomu wariancji
- Wariancja w środowisku CartPole
- Aktor-krytyk
- Użycie metody A2C w środowisku Pong
- Wyniki użycia metody A2C w środowisku Pong
- Dostrajanie hiperparametrów
- Podsumowanie
Rozdział 13. Asynchroniczna wersja metody aktor-krytyk
- Korelacja i wydajność próbkowania
- Zrównoleglenie metody A2C
- Przetwarzanie wieloprocesorowe w języku Python
- Algorytm A3C wykorzystujący zrównoleglenie na poziomie danych
- Implementacja
- Wyniki
- Algorytm A3C wykorzystujący zrównoleglenie na poziomie gradientów
- Implementacja
- Wyniki
- Podsumowanie
Rozdział 14. Trenowanie chatbotów z wykorzystaniem uczenia przez wzmacnianie
- Czym są chatboty?
- Trenowanie chatbotów
- Podstawy głębokiego przetwarzania języka naturalnego
- Rekurencyjne sieci neuronowe
- Osadzanie słów
- Architektura koder-dekoder
- Trenowanie modelu koder-dekoder
- Trenowanie z wykorzystaniem logarytmu prawdopodobieństwa
- Algorytm "Bilingual Evaluation Understudy" (BLEU)
- Zastosowanie uczenia przez wzmacnianie w modelu koder-dekoder
- Krytyczna analiza trenowania sekwencji
- Projekt chatbota
- Przykładowa struktura
- Moduły cornell.py i data.py
- Wskaźnik BLEU i moduł utils.py
- Model
- Eksploracja zbioru danych
- Trenowanie - entropia krzyżowa
- Implementacja
- Wyniki
- Trenowanie - metoda SCST
- Implementacja
- Wyniki
- Przetestowanie modeli przy użyciu danych
- Bot dla komunikatora Telegram
- Podsumowanie
Rozdział 15. Środowisko TextWorld
- Fikcja interaktywna
- Środowisko
- Instalacja
- Generowanie gry
- Przestrzenie obserwacji i akcji
- Dodatkowe informacje o grze
- Podstawowa sieć DQN
- Wstępne przetwarzanie obserwacji
- Osadzenia i kodery
- Model DQN i agent
- Kod treningowy
- Wyniki trenowania
- Model generujący polecenia
- Implementacja
- Wyniki uzyskane po wstępnym trenowaniu
- Kod treningowy sieci DQN
- Wyniki uzyskane po trenowaniu sieci DQN
- Podsumowanie
Rozdział 16. Nawigacja w sieci
- Nawigacja w sieci
- Automatyzacja działań w przeglądarce i uczenie przez wzmacnianie
- Test porównawczy MiniWoB
- OpenAI Universe
- Instalacja
- Akcje i obserwacje
- Tworzenie środowiska
- Stabilność systemu MiniWoB
- Proste klikanie
- Akcje związane z siatką
- Przegląd rozwiązania
- Model
- Kod treningowy
- Uruchamianie kontenerów
- Proces trenowania
- Testowanie wyuczonej polityki
- Problemy występujące podczas prostego klikania
- Obserwacje ludzkich działań
- Zapisywanie działań
- Format zapisywanych danych
- Trenowanie z wykorzystaniem obserwacji działań
- Wyniki
- Gra w kółko i krzyżyk
- Dodawanie opisów tekstowych
- Implementacja
- Wyniki
- Rzeczy do przetestowania
- Podsumowanie
Rozdział 17. Ciągła przestrzeń akcji
- Dlaczego jest potrzebna ciągła przestrzeń akcji?
- Przestrzeń akcji
- Środowiska
- Metoda A2C
- Implementacja
- Wyniki
- Użycie modeli i zapisywanie plików wideo
- Deterministyczne gradienty polityki
- Eksploracja
- Implementacja
- Wyniki
- Nagrywanie plików wideo
- Dystrybucyjne gradienty polityki
- Architektura
- Implementacja
- Wyniki
- Nagrania wideo
- Rzeczy do przetestowania
- Podsumowanie
Rozdział 18. Metody uczenia przez wzmacnianie w robotyce
- Roboty i robotyka
- Złożoność robota
- Przegląd sprzętu
- Platforma
- Sensory
- Siłowniki
- Szkielet
- Pierwszy cel trenowania
- Emulator i model
- Plik z definicją modelu
- Klasa robota
- Trenowanie zgodnie z algorytmem DDPG i uzyskane wyniki
- Sterowanie sprzętem
- MicroPython
- Obsługa czujników
- Sterowanie serwomechanizmami
- Przenoszenie modelu do sprzętu
- Połączenie wszystkiego w całość
- Eksperymentowanie z polityką
- Podsumowanie
Rozdział 19. Regiony zaufania - PPO, TRPO, ACKTR i SAC
- Biblioteka Roboschool
- Model bazowy A2C
- Implementacja
- Wyniki
- Nagrywanie plików wideo
- Algorytm PPO
- Implementacja
- Wyniki
- Algorytm TRPO
- Implementacja
- Wyniki
- Algorytm ACKTR
- Implementacja
- Wyniki
- Algorytm SAC
- Implementacja
- Wyniki
- Podsumowanie
Rozdział 20. Optymalizacja typu "czarna skrzynka" w przypadku uczenia przez wzmacnianie
- Metody typu "czarna skrzynka"
- Strategie ewolucyjne
- Testowanie strategii ewolucyjnej w środowisku CartPole
- Testowanie strategii ewolucyjnej w środowisku HalfCheetah
- Algorytmy genetyczne
- Testowanie algorytmu genetycznego w środowisku CartPole
- Dostrajanie algorytmu genetycznego
- Testowanie algorytmu genetycznego w środowisku HalfCheetah
- Podsumowanie
- Bibliografia
Rozdział 21. Zaawansowana eksploracja
- Dlaczego eksploracja jest ważna?
- Co złego jest w metodzie epsilonu zachłannego?
- Alternatywne sposoby eksploracji
- Sieci zakłócone
- Metody oparte na liczebności
- Metody oparte na prognozowaniu
- Eksperymentowanie w środowisku MountainCar
- Metoda DQN z wykorzystaniem strategii epsilonu zachłannego
- Metoda DQN z wykorzystaniem sieci zakłóconych
- Metoda DQN z licznikami stanów
- Optymalizacja bliskiej polityki
- Metoda PPO z wykorzystaniem sieci zakłóconych
- Metoda PPO wykorzystująca eksplorację opartą na liczebności
- Metoda PPO wykorzystująca destylację sieci
- Eksperymentowanie ze środowiskami Atari
- Metoda DQN z wykorzystaniem strategii epsilonu zachłannego
- Klasyczna metoda PPO
- Metoda PPO z wykorzystaniem destylacji sieci
- Metoda PPO z wykorzystaniem sieci zakłóconych
- Podsumowanie
- Bibliografia
Rozdział 22. Alternatywa dla metody bezmodelowej - agent wspomagany wyobraźnią
- Metody oparte na modelu
- Porównanie metody opartej na modelu z metodą bezmodelową
- Niedoskonałości modelu
- Agent wspomagany wyobraźnią
- Model środowiskowy
- Polityka wdrożenia
- Koder wdrożeń
- Wyniki zaprezentowane w artykule
- Użycie modelu I2A w grze Breakout
- Podstawowy agent A2C
- Trenowanie modelu środowiskowego
- Agent wspomagany wyobraźnią
- Wyniki eksperymentów
- Agent podstawowy
- Trenowanie wag modelu środowiskowego
- Trenowanie przy użyciu modelu I2A
- Podsumowanie
- Bibliografia
Rozdział 23. AlphaGo Zero
- Gry planszowe
- Metoda AlphaGo Zero
- Wprowadzenie
- Przeszukiwanie drzewa metodą Monte Carlo (MCTS)
- Granie modelu z samym sobą
- Trenowanie i ocenianie
- Bot dla gry Czwórki
- Model gry
- Implementacja algorytmu przeszukiwania drzewa metodą Monte Carlo (MCTS)
- Model
- Trenowanie
- Testowanie i porównywanie
- Wyniki uzyskane w grze Czwórki
- Podsumowanie
- Bibliografia
Rozdział 24. Użycie metod uczenia przez wzmacnianie w optymalizacji dyskretnej
- Rola uczenia przez wzmacnianie
- Kostka Rubika i optymalizacja kombinatoryczna
- Optymalność i liczba boska
- Sposoby układania kostki
- Reprezentacja danych
- Akcje
- Stany
- Proces trenowania
- Architektura sieci neuronowej
- Trenowanie
- Aplikacja modelowa
- Wyniki
- Analiza kodu
- Środowiska kostki
- Trenowanie
- Proces wyszukiwania
- Wyniki eksperymentu
- Kostka 2×2
- Kostka 3×3
- Dalsze usprawnienia i eksperymenty
- Podsumowanie
Rozdział 25. Metoda wieloagentowa
- Na czym polega działanie metody wieloagentowej?
- Formy komunikacji
- Użycie uczenia przez wzmacnianie
- Środowisko MAgent
- Instalacja
- Przegląd rozwiązania
- Środowisko losowe
- Głęboka sieć Q obsługująca tygrysy
- Trenowanie i wyniki
- Współpraca między tygrysami
- Trenowanie tygrysów i jeleni
- Walka pomiędzy równorzędnymi aktorami
- Podsumowanie
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-8053-0 |
Rozmiar pliku: | 24 MB |