Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Gradient Bandit-Algoritme | Multi-Armet Bandit-Problem
Introduktion til Reinforcement Learning
course content

Kursusindhold

Introduktion til Reinforcement Learning

Introduktion til Reinforcement Learning

1. RL Kerneprincipper
2. Multi-Armet Bandit-Problem
3. Dynamisk Programmering
4. Monte Carlo-metoder
5. Temporal Difference-Læring

book
Gradient Bandit-Algoritme

Når man arbejder med multi-armed banditter, estimerer traditionelle metoder som epsilon-greedy og UCB aktionsværdier for at afgøre, hvilken handling der skal vælges. Gradient banditter anvender dog en anden tilgang — de lærer præferencer for handlinger i stedet for at estimere deres værdier. Disse præferencer justeres over tid ved hjælp af stokastisk gradientopstigning.

Præferencer

I stedet for at opretholde aktionsværdiestimater Q(a)Q(a), opretholder gradient banditter præferenceværdier H(a)H(a) for hver handling aa. Disse præferencer opdateres ved hjælp af en stokastisk gradientopstigningsmetode for at maksimere forventede belønninger. Sandsynligheden for hver handling beregnes ved hjælp af en softmax-funktion:

P(At=a)=eHt(a)b=1neHt(b)=πt(a)P(A_t = a) = \frac{e^{H_t(a)}}{\sum_{b=1}^n e^{H_t(b)}} = \pi_t(a)

hvor:

  • Ht(a)H_t(a) er præferencen for handling aa på tidspunkt tt;
  • P(At=a)P(A_t = a) er sandsynligheden for at vælge handling aa på tidspunkt tt;
  • Nævneren sikrer, at sandsynlighederne summerer til 1.

Softmax er en central funktion i ML, ofte brugt til at konvertere lister af reelle tal til lister af sandsynligheder. Denne funktion fungerer som en glat tilnærmelse til arg max\argmax-funktionen, hvilket muliggør naturlig udforskning ved at give handlinger med lavere præference en ikke-nul sandsynlighed for at blive valgt.

Opdateringsregel

Efter valg af en handling AtA_t på tidspunkt tt opdateres præferenceværdierne ved hjælp af følgende regel:

Ht+1(At)Ht(At)+α(RtRˉt)(1π(At))Ht+1(a)Ht(a)α(RtRˉt)π(a)aAt\begin{aligned} &H_{t+1}(A_t) \gets H_t(A_t) + \alpha (R_t - \bar R_t)(1 - \pi(A_t))\\ &H_{t+1}(a) \gets H_t(a) - \alpha (R_t - \bar R_t)\pi(a) \qquad \forall a \ne A_t \end{aligned}

hvor:

  • α\alpha er skridtstørrelsen;
  • RtR_t er modtaget belønning;
  • Rˉt\bar R_t er gennemsnitlig belønning observeret indtil nu.

Intuition

Ved hvert tidssteg justeres alle præferencer en smule. Justeringen afhænger hovedsageligt af modtaget belønning og gennemsnitlig belønning, og kan forklares således:

  • Hvis modtaget belønning er højere end gennemsnittet, bliver den valgte handling mere foretrukken, og andre handlinger bliver mindre foretrukne;
  • Hvis modtaget belønning er lavere end gennemsnittet, falder præferencen for den valgte handling, mens præferencerne for de andre handlinger stiger, hvilket fremmer udforskning.

Eksempelkode

def softmax(x):
  """Simple softmax implementation"""
  return np.exp(x) / np.sum(np.exp(x))

class GradientBanditsAgent:
  def __init__(self, n_actions, alpha):
    """Initialize an agent"""
    self.n_actions = n_actions # Number of available actions
    self.alpha = alpha # alpha
    self.H = np.zeros(n_actions) # Preferences
    self.reward_avg = 0 # Average reward
    self.t = 0 # Time step counter

  def select_action(self):
    """Select an action according to the gradient bandits strategy"""
    # Compute probabilities from preferences with softmax
    probs = softmax(self.H)
    # Choose an action according to the probabilities
    return np.random.choice(self.n_actions, p=probs)

  def update(self, action, reward):
    """Update preferences"""
    # Increase the time step counter
    self.t += 1
    # Update the average reward
    self.reward_avg += reward / self.t

    # Compute probabilities from preferences with softmax
    probs = softmax(self.H) # Getting action probabilities from preferences

    # Update preference values using stochastic gradient ascent
    self.H -= self.alpha * (reward - self.reward_avg) * probs
    self.H[action] += self.alpha * (reward - self.reward_avg)

Yderligere information

Gradient banditter har flere interessante egenskaber:

  • Præference-relativitet: De absolutte værdier af handlingspræferencer påvirker ikke udvælgelsesprocessen — kun deres relative forskelle har betydning. Hvis alle præferencer forskydes med den samme konstant (f.eks. ved at lægge 100 til), resulterer det i den samme sandsynlighedsfordeling;
  • Effekten af baseline i opdateringsreglen: Selvom opdateringsformlen typisk inkluderer den gennemsnitlige belønning som baseline, kan denne værdi erstattes med en hvilken som helst konstant, der er uafhængig af den valgte handling. Baseline påvirker konvergenshastigheden, men ændrer ikke den optimale løsning;
  • Indflydelse af skridtlængde: Skridtlængden bør tilpasses den aktuelle opgave. En mindre skridtlængde sikrer mere stabil indlæring, mens en større værdi fremskynder indlæringsprocessen.

Resumé

Gradient banditter tilbyder et kraftfuldt alternativ til traditionelle bandit-algoritmer ved at udnytte præferencebaseret læring. Deres mest interessante egenskab er evnen til naturligt at balancere udforskning og udnyttelse.

question mark

Hvad er den største fordel ved at bruge gradient banditter frem for traditionelle bandit-algoritmer?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

course content

Kursusindhold

Introduktion til Reinforcement Learning

Introduktion til Reinforcement Learning

1. RL Kerneprincipper
2. Multi-Armet Bandit-Problem
3. Dynamisk Programmering
4. Monte Carlo-metoder
5. Temporal Difference-Læring

book
Gradient Bandit-Algoritme

Når man arbejder med multi-armed banditter, estimerer traditionelle metoder som epsilon-greedy og UCB aktionsværdier for at afgøre, hvilken handling der skal vælges. Gradient banditter anvender dog en anden tilgang — de lærer præferencer for handlinger i stedet for at estimere deres værdier. Disse præferencer justeres over tid ved hjælp af stokastisk gradientopstigning.

Præferencer

I stedet for at opretholde aktionsværdiestimater Q(a)Q(a), opretholder gradient banditter præferenceværdier H(a)H(a) for hver handling aa. Disse præferencer opdateres ved hjælp af en stokastisk gradientopstigningsmetode for at maksimere forventede belønninger. Sandsynligheden for hver handling beregnes ved hjælp af en softmax-funktion:

P(At=a)=eHt(a)b=1neHt(b)=πt(a)P(A_t = a) = \frac{e^{H_t(a)}}{\sum_{b=1}^n e^{H_t(b)}} = \pi_t(a)

hvor:

  • Ht(a)H_t(a) er præferencen for handling aa på tidspunkt tt;
  • P(At=a)P(A_t = a) er sandsynligheden for at vælge handling aa på tidspunkt tt;
  • Nævneren sikrer, at sandsynlighederne summerer til 1.

Softmax er en central funktion i ML, ofte brugt til at konvertere lister af reelle tal til lister af sandsynligheder. Denne funktion fungerer som en glat tilnærmelse til arg max\argmax-funktionen, hvilket muliggør naturlig udforskning ved at give handlinger med lavere præference en ikke-nul sandsynlighed for at blive valgt.

Opdateringsregel

Efter valg af en handling AtA_t på tidspunkt tt opdateres præferenceværdierne ved hjælp af følgende regel:

Ht+1(At)Ht(At)+α(RtRˉt)(1π(At))Ht+1(a)Ht(a)α(RtRˉt)π(a)aAt\begin{aligned} &H_{t+1}(A_t) \gets H_t(A_t) + \alpha (R_t - \bar R_t)(1 - \pi(A_t))\\ &H_{t+1}(a) \gets H_t(a) - \alpha (R_t - \bar R_t)\pi(a) \qquad \forall a \ne A_t \end{aligned}

hvor:

  • α\alpha er skridtstørrelsen;
  • RtR_t er modtaget belønning;
  • Rˉt\bar R_t er gennemsnitlig belønning observeret indtil nu.

Intuition

Ved hvert tidssteg justeres alle præferencer en smule. Justeringen afhænger hovedsageligt af modtaget belønning og gennemsnitlig belønning, og kan forklares således:

  • Hvis modtaget belønning er højere end gennemsnittet, bliver den valgte handling mere foretrukken, og andre handlinger bliver mindre foretrukne;
  • Hvis modtaget belønning er lavere end gennemsnittet, falder præferencen for den valgte handling, mens præferencerne for de andre handlinger stiger, hvilket fremmer udforskning.

Eksempelkode

def softmax(x):
  """Simple softmax implementation"""
  return np.exp(x) / np.sum(np.exp(x))

class GradientBanditsAgent:
  def __init__(self, n_actions, alpha):
    """Initialize an agent"""
    self.n_actions = n_actions # Number of available actions
    self.alpha = alpha # alpha
    self.H = np.zeros(n_actions) # Preferences
    self.reward_avg = 0 # Average reward
    self.t = 0 # Time step counter

  def select_action(self):
    """Select an action according to the gradient bandits strategy"""
    # Compute probabilities from preferences with softmax
    probs = softmax(self.H)
    # Choose an action according to the probabilities
    return np.random.choice(self.n_actions, p=probs)

  def update(self, action, reward):
    """Update preferences"""
    # Increase the time step counter
    self.t += 1
    # Update the average reward
    self.reward_avg += reward / self.t

    # Compute probabilities from preferences with softmax
    probs = softmax(self.H) # Getting action probabilities from preferences

    # Update preference values using stochastic gradient ascent
    self.H -= self.alpha * (reward - self.reward_avg) * probs
    self.H[action] += self.alpha * (reward - self.reward_avg)

Yderligere information

Gradient banditter har flere interessante egenskaber:

  • Præference-relativitet: De absolutte værdier af handlingspræferencer påvirker ikke udvælgelsesprocessen — kun deres relative forskelle har betydning. Hvis alle præferencer forskydes med den samme konstant (f.eks. ved at lægge 100 til), resulterer det i den samme sandsynlighedsfordeling;
  • Effekten af baseline i opdateringsreglen: Selvom opdateringsformlen typisk inkluderer den gennemsnitlige belønning som baseline, kan denne værdi erstattes med en hvilken som helst konstant, der er uafhængig af den valgte handling. Baseline påvirker konvergenshastigheden, men ændrer ikke den optimale løsning;
  • Indflydelse af skridtlængde: Skridtlængden bør tilpasses den aktuelle opgave. En mindre skridtlængde sikrer mere stabil indlæring, mens en større værdi fremskynder indlæringsprocessen.

Resumé

Gradient banditter tilbyder et kraftfuldt alternativ til traditionelle bandit-algoritmer ved at udnytte præferencebaseret læring. Deres mest interessante egenskab er evnen til naturligt at balancere udforskning og udnyttelse.

question mark

Hvad er den største fordel ved at bruge gradient banditter frem for traditionelle bandit-algoritmer?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5
some-alt