Navigera RL-ramverket

Reinforcement Learning med Gymnasium i Python

Fouad Trad

Machine Learning Engineer

RL-ramverket

Bild som visar en agentkomponent.

Reinforcement Learning med Gymnasium i Python

RL-ramverket

Bild som visar agent- och miljökomponenter.

Reinforcement Learning med Gymnasium i Python

RL-ramverket

  • Agent: inlärare, beslutsfattare
  • Miljö: utmaningar att lösa

Bild som visar alla RL-komponenter: agent, miljö, tillstånd, handlingar och belöningar.

Reinforcement Learning med Gymnasium i Python

RL-ramverket

  • Agent: inlärare, beslutsfattare
  • Miljö: utmaningar att lösa
  • Tillstånd: ögonblicksbild av miljön vid en given tidpunkt

Bild som visar att miljön skickar tillstånd till agenten.

Reinforcement Learning med Gymnasium i Python

RL-ramverket

  • Agent: inlärare, beslutsfattare
  • Miljö: utmaningar att lösa
  • Tillstånd: ögonblicksbild av miljön vid en given tidpunkt
  • Handling: agentens val som svar på tillståndet

Bild som visar att agenten svarar på miljöns tillstånd genom att utföra en handling.

Reinforcement Learning med Gymnasium i Python

RL-ramverket

  • Agent: inlärare, beslutsfattare
  • Miljö: utmaningar att lösa
  • Tillstånd: ögonblicksbild av miljön vid en given tidpunkt
  • Handling: agentens val som svar på tillståndet
  • Belöning: återkoppling för agentens handling

Bild som visar att agenten svarar på miljöns tillstånd genom att utföra en handling och får en belöning från miljön baserat på den utförda handlingen.

Reinforcement Learning med Gymnasium i Python

RL-interaktionsloopen

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)

Bild som visar att agenten svarar på miljöns tillstånd genom att utföra en handling och får en belöning från miljön baserat på den utförda handlingen.

Reinforcement Learning med Gymnasium i Python

Episodiska vs. kontinuerliga uppgifter

Episodiska uppgifter
  • Uppgifter uppdelade i episoder
  • En episod har en början och ett slut
  • Exempel: agent som spelar schack

Bild som visar en katt som spelar schack.

Kontinuerliga uppgifter
  • Kontinuerlig interaktion
  • Inga tydliga episoder
  • Exempel: Justera trafikljus

Bild som visar en groda som cyklar och väntar på att trafikljuset ska bli grönt.

Reinforcement Learning med Gymnasium i Python

Avkastning

  • Handlingar har långsiktiga konsekvenser
  • Agenten strävar efter att maximera den totala belöningen över tid
  • Avkastning: summan av alla förväntade belöningar

Bild som visar att avkastningen är summan av de enskilda belöningarna r_1 till r_n.

Reinforcement Learning med Gymnasium i Python

Diskonterad avkastning

  • Omedelbara belöningar är mer värdefulla än framtida
  • Diskonterad avkastning: ger mer vikt åt närliggande belöningar
  • Diskonteringsfaktor ($\gamma$): diskonterar framtida belöningar

Bild som visar formeln för diskonterad avkastning som summan av belöningar, var och en multiplicerad med diskonteringsfaktorn upphöjd till respektive tidssteg.

Reinforcement Learning med Gymnasium i Python

Diskonteringsfaktor

  • Mellan noll och ett
  • Balanserar omedelbara och långsiktiga belöningar
    • Lägre värde → omedelbara vinster
    • Högre värde → långsiktiga fördelar

Bild som visar hur diskonteringsfaktorns extremvärden påverkar: ett värde nära noll gynnar enbart omedelbara vinster, och ett värde nära ett gynnar framtida vinster utan diskontering.

Reinforcement Learning med Gymnasium i Python

Numeriskt exempel

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
Reinforcement Learning med Gymnasium i Python

Nu kör vi en övning!

Reinforcement Learning med Gymnasium i Python

Preparing Video For Download...