Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Epsilon-grådig Algoritme | Multi-Armet Bandittproblem
Introduksjon til Forsterkende Læring
course content

Kursinnhold

Introduksjon til Forsterkende Læring

Introduksjon til Forsterkende Læring

1. Kjerneprinsipper i RL
2. Multi-Armet Bandittproblem
3. Dynamisk Programmering
4. Monte Carlo-metoder
5. Temporal Difference-læring

book
Epsilon-grådig Algoritme

Den epsilon-grådige (ε\varepsilon-grådige) algoritmen er en enkel, men svært effektiv strategi for å løse multi-armede bandittproblemer. Selv om den kanskje ikke er like robust som enkelte andre metoder for denne spesifikke oppgaven, gjør dens enkelhet og allsidighet den mye brukt innenfor forsterkende læring.

Hvordan det fungerer

Algoritmen følger disse stegene:

  1. Initialiser handlingsverdiestimatene Q(a)Q(a) for hver handling aa;
  2. Velg en handling ved å bruke følgende regel:
    • Med sannsynlighet ε\varepsilon: velg en tilfeldig handling (utforskning);
    • Med sannsynlighet 1ε1 - \varepsilon: velg handlingen med høyest estimert verdi (utnyttelse).
  3. Utfør handlingen og observer belønningen;
  4. Oppdater handlingsverdiestimatet Q(a)Q(a) basert på observert belønning;
  5. Gjenta steg 2-4 et fast antall tidssteg.

Hyperparameteren ε\varepsilon (epsilon) styrer balansen mellom utforskning og utnyttelse:

  • En høy ε\varepsilon (f.eks. 0,5) oppmuntrer til mer utforskning;
  • En lav ε\varepsilon (f.eks. 0,01) favoriserer utnyttelse av den best kjente handlingen.

Eksempelkode

class EpsilonGreedyAgent:
  def __init__(self, n_actions, epsilon):
    """Initialize an agent"""
    self.n_actions = n_actions # Number of available actions
    self.epsilon = epsilon # epsilon
    self.Q = np.zeros(self.n_actions) # Estimated action values
    self.N = np.zeros(self.n_actions) # Action selection counters

  def select_action(self):
    """Select an action according to the epsilon-greedy strategy"""
    # With probability epsilon - random action
    if np.random.rand() < self.epsilon:
      return np.random.randint(self.n_actions)
    # Otherwise - action with highest estimated action value
    else:
      return np.argmax(self.Q)

  def update(self, action, reward):
    """Update the values using sample average estimate"""
    # Increasing the action selection counter
    self.N[action] += 1
    # Updating the estimated action value
    self.Q[action] += (reward - self.Q[action]) / self.N[action]

Tilleggsinformasjon

Effektiviteten til ε\varepsilon-grådig algoritme avhenger i stor grad av verdien til ε\varepsilon. To strategier brukes ofte for å velge denne verdien:

  • Fast ε\varepsilon: dette er det mest generelle alternativet, hvor verdien til ε\varepsilon velges som en konstant (f.eks. 0.1);
  • Avtagende ε\varepsilon: verdien til ε\varepsilon reduseres over tid etter en bestemt plan (f.eks. starter på 1, og avtar gradvis til 0) for å oppmuntre til utforskning i de tidlige fasene.

Sammendrag

ε\varepsilon-grådig algoritme er en grunnleggende tilnærming for å balansere utforskning og utnyttelse. Selv om den er enkel, fungerer den som et fundament for å forstå mer avanserte strategier som upper confidence bound (UCB) og gradient banditter.

question mark

Hva er en hovedegenskap ved ε\varepsilon-grådig-algoritmen?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

course content

Kursinnhold

Introduksjon til Forsterkende Læring

Introduksjon til Forsterkende Læring

1. Kjerneprinsipper i RL
2. Multi-Armet Bandittproblem
3. Dynamisk Programmering
4. Monte Carlo-metoder
5. Temporal Difference-læring

book
Epsilon-grådig Algoritme

Den epsilon-grådige (ε\varepsilon-grådige) algoritmen er en enkel, men svært effektiv strategi for å løse multi-armede bandittproblemer. Selv om den kanskje ikke er like robust som enkelte andre metoder for denne spesifikke oppgaven, gjør dens enkelhet og allsidighet den mye brukt innenfor forsterkende læring.

Hvordan det fungerer

Algoritmen følger disse stegene:

  1. Initialiser handlingsverdiestimatene Q(a)Q(a) for hver handling aa;
  2. Velg en handling ved å bruke følgende regel:
    • Med sannsynlighet ε\varepsilon: velg en tilfeldig handling (utforskning);
    • Med sannsynlighet 1ε1 - \varepsilon: velg handlingen med høyest estimert verdi (utnyttelse).
  3. Utfør handlingen og observer belønningen;
  4. Oppdater handlingsverdiestimatet Q(a)Q(a) basert på observert belønning;
  5. Gjenta steg 2-4 et fast antall tidssteg.

Hyperparameteren ε\varepsilon (epsilon) styrer balansen mellom utforskning og utnyttelse:

  • En høy ε\varepsilon (f.eks. 0,5) oppmuntrer til mer utforskning;
  • En lav ε\varepsilon (f.eks. 0,01) favoriserer utnyttelse av den best kjente handlingen.

Eksempelkode

class EpsilonGreedyAgent:
  def __init__(self, n_actions, epsilon):
    """Initialize an agent"""
    self.n_actions = n_actions # Number of available actions
    self.epsilon = epsilon # epsilon
    self.Q = np.zeros(self.n_actions) # Estimated action values
    self.N = np.zeros(self.n_actions) # Action selection counters

  def select_action(self):
    """Select an action according to the epsilon-greedy strategy"""
    # With probability epsilon - random action
    if np.random.rand() < self.epsilon:
      return np.random.randint(self.n_actions)
    # Otherwise - action with highest estimated action value
    else:
      return np.argmax(self.Q)

  def update(self, action, reward):
    """Update the values using sample average estimate"""
    # Increasing the action selection counter
    self.N[action] += 1
    # Updating the estimated action value
    self.Q[action] += (reward - self.Q[action]) / self.N[action]

Tilleggsinformasjon

Effektiviteten til ε\varepsilon-grådig algoritme avhenger i stor grad av verdien til ε\varepsilon. To strategier brukes ofte for å velge denne verdien:

  • Fast ε\varepsilon: dette er det mest generelle alternativet, hvor verdien til ε\varepsilon velges som en konstant (f.eks. 0.1);
  • Avtagende ε\varepsilon: verdien til ε\varepsilon reduseres over tid etter en bestemt plan (f.eks. starter på 1, og avtar gradvis til 0) for å oppmuntre til utforskning i de tidlige fasene.

Sammendrag

ε\varepsilon-grådig algoritme er en grunnleggende tilnærming for å balansere utforskning og utnyttelse. Selv om den er enkel, fungerer den som et fundament for å forstå mer avanserte strategier som upper confidence bound (UCB) og gradient banditter.

question mark

Hva er en hovedegenskap ved ε\varepsilon-grådig-algoritmen?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3
some-alt