Nawigacja w środowisku RL

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Fouad Trad

Machine Learning Engineer

Środowisko RL

Obraz przedstawiający komponent agenta.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Środowisko RL

Obraz przedstawiający komponenty agenta i środowiska.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Środowisko RL

  • Agent: uczący się, decydent
  • Środowisko: problemy do rozwiązania

Obraz przedstawiający wszystkie komponenty RL: agenta, środowisko, stany, akcje i nagrody.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Środowisko RL

  • Agent: uczący się, decydent
  • Środowisko: problemy do rozwiązania
  • Stan: migawka środowiska w danym momencie

Obraz pokazujący, że środowisko przekazuje stany agentowi.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Środowisko RL

  • Agent: uczący się, decydent
  • Środowisko: problemy do rozwiązania
  • Stan: migawka środowiska w danym momencie
  • Akcja: wybór agenta w odpowiedzi na stan

Obraz pokazujący, że agent odpowiada na stan środowiska, wykonując akcję.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Środowisko RL

  • Agent: uczący się, decydent
  • Środowisko: problemy do rozwiązania
  • Stan: migawka środowiska w danym momencie
  • Akcja: wybór agenta w odpowiedzi na stan
  • Nagroda: informacja zwrotna za akcję agenta

Obraz pokazujący, że agent odpowiada na stan środowiska, wykonując akcję, i otrzymuje nagrodę od środowiska na podstawie wykonanej akcji.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Pętla interakcji RL

env = create_environment()
state = env.get_initial_state()

for i in range(n_iterations): action = choose_action(state)
state, reward = env.execute(action)
update_knowledge(state, action, reward)

Obraz pokazujący, że agent odpowiada na stan środowiska, wykonując akcję, i otrzymuje nagrodę od środowiska na podstawie wykonanej akcji.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Zadania epizodyczne a ciągłe

Zadania epizodyczne
  • Zadania podzielone na epizody
  • Epizod ma początek i koniec
  • Przykład: agent grający w szachy

Obraz przedstawiający kota grającego w szachy.

Zadania ciągłe
  • Ciągła interakcja
  • Brak odrębnych epizodów
  • Przykład: sterowanie sygnalizacją świetlną

Obraz przedstawiający żabę jadącą na rowerze i czekającą na zielone światło.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Zwrot

  • Akcje mają długoterminowe konsekwencje
  • Agent dąży do maksymalizacji łącznej nagrody
  • Zwrot: suma wszystkich oczekiwanych nagród

Obraz pokazujący, że zwrot jest sumą nagród cząstkowych r_1 do r_n.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Zdyskontowany zwrot

  • Natychmiastowe nagrody są cenniejsze niż przyszłe
  • Zdyskontowany zwrot: przypisuje większą wagę bliższym nagrodom
  • Współczynnik dyskontowania ($\gamma$): dyskontuje przyszłe nagrody

Obraz przedstawiający wzór na zdyskontowany zwrot jako sumę nagród, każda pomnożona przez współczynnik dyskontowania podniesiony do potęgi odpowiadającego kroku czasowego.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Współczynnik dyskontowania

  • Między zerem a jedynką
  • Równoważy nagrody natychmiastowe i długoterminowe
    • Niższa wartość → natychmiastowe korzyści
    • Wyższa wartość → korzyści długoterminowe

Obraz pokazujący wpływ skrajnych wartości współczynnika dyskontowania: wartość zero faworyzuje wyłącznie natychmiastowe korzyści, a wartość jeden faworyzuje przyszłe korzyści bez dyskontowania.

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Przykład numeryczny

import numpy as np
expected_rewards = np.array([1, 6, 3])

discount_factor = 0.9
discounts = np.array([discount_factor ** i for i in range(len(expected_rewards))])
print(f"Discounts: {discounts}")
Discounts: [1.   0.9  0.81]
discounted_return = np.sum(expected_rewards * discounts)
print(f"The discounted return is {discounted_return}")
The discounted return is 8.83
Uczenie przez wzmacnianie z Gymnasium w Pythonie

Czas na ćwiczenia!

Uczenie przez wzmacnianie z Gymnasium w Pythonie

Preparing Video For Download...