Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Epsilon-Ahne Algoritmi | Moniaseinen Bandiittiongelma
Vahvistusoppimisen Perusteet

bookEpsilon-Ahne Algoritmi

Epsilon-greedy (ε\varepsilon-greedy) -algoritmi on suoraviivainen mutta erittäin tehokas strategia multi-armed bandit -ongelman ratkaisemiseen. Vaikka se ei välttämättä ole yhtä vankka kuin jotkin muut menetelmät tässä tehtävässä, sen yksinkertaisuus ja monipuolisuus tekevät siitä laajasti käytetyn vahvistusoppimisen alalla.

Miten se toimii

Algoritmi etenee seuraavasti:

  1. Alusta toimintojen arvoestimaatit Q(a)Q(a) jokaiselle toiminnolle aa;
  2. Valitse toiminto seuraavan säännön mukaisesti:
    • Todennäköisyydellä ε\varepsilon: valitse satunnainen toiminto (etsintä);
    • Todennäköisyydellä 1ε1 - \varepsilon: valitse toiminto, jolla on korkein arvioitu arvo (hyödyntäminen).
  3. Suorita toiminto ja havainnoi palkkio;
  4. Päivitä toiminnon arvoestimaatti Q(a)Q(a) saadun palkkion perusteella;
  5. Toista vaiheet 2-4 ennalta määrätyn ajan.

Hyperparametri ε\varepsilon (epsilon) säätelee etsinnän ja hyödyntämisen välistä tasapainoa:

  • Korkea ε\varepsilon (esim. 0.5) kannustaa enemmän etsintään;
  • Matala ε\varepsilon (esim. 0.01) suosii parhaan tunnetun toiminnon hyödyntämistä.

Esimerkkikoodi

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]

Lisätietoa

ε\varepsilon-ahneen algoritmin tehokkuus riippuu voimakkaasti ε\varepsilon-arvosta. Kaksi strategiaa on yleisesti käytössä tämän arvon valitsemiseksi:

  • Kiinteä ε\varepsilon: yleisin vaihtoehto, jossa ε\varepsilon-arvo valitaan vakioksi (esim. 0,1);
  • Vähenevä ε\varepsilon: ε\varepsilon-arvo pienenee ajan myötä tietyn aikataulun mukaisesti (esim. alkaa arvosta 1 ja pienenee asteittain kohti nollaa) kannustaen tutkimista alkuvaiheessa.

Yhteenveto

ε\varepsilon-ahne algoritmi on peruslähestymistapa tutkimisen ja hyödyntämisen tasapainottamiseen. Vaikka se on yksinkertainen, se toimii perustana kehittyneempien strategioiden, kuten upper confidence bound (UCB) ja gradienttibanditit, ymmärtämiselle.

question mark

Mikä on ε\varepsilon-ahneen algoritmin keskeinen ominaisuus?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 2.7

bookEpsilon-Ahne Algoritmi

Pyyhkäise näyttääksesi valikon

Epsilon-greedy (ε\varepsilon-greedy) -algoritmi on suoraviivainen mutta erittäin tehokas strategia multi-armed bandit -ongelman ratkaisemiseen. Vaikka se ei välttämättä ole yhtä vankka kuin jotkin muut menetelmät tässä tehtävässä, sen yksinkertaisuus ja monipuolisuus tekevät siitä laajasti käytetyn vahvistusoppimisen alalla.

Miten se toimii

Algoritmi etenee seuraavasti:

  1. Alusta toimintojen arvoestimaatit Q(a)Q(a) jokaiselle toiminnolle aa;
  2. Valitse toiminto seuraavan säännön mukaisesti:
    • Todennäköisyydellä ε\varepsilon: valitse satunnainen toiminto (etsintä);
    • Todennäköisyydellä 1ε1 - \varepsilon: valitse toiminto, jolla on korkein arvioitu arvo (hyödyntäminen).
  3. Suorita toiminto ja havainnoi palkkio;
  4. Päivitä toiminnon arvoestimaatti Q(a)Q(a) saadun palkkion perusteella;
  5. Toista vaiheet 2-4 ennalta määrätyn ajan.

Hyperparametri ε\varepsilon (epsilon) säätelee etsinnän ja hyödyntämisen välistä tasapainoa:

  • Korkea ε\varepsilon (esim. 0.5) kannustaa enemmän etsintään;
  • Matala ε\varepsilon (esim. 0.01) suosii parhaan tunnetun toiminnon hyödyntämistä.

Esimerkkikoodi

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]

Lisätietoa

ε\varepsilon-ahneen algoritmin tehokkuus riippuu voimakkaasti ε\varepsilon-arvosta. Kaksi strategiaa on yleisesti käytössä tämän arvon valitsemiseksi:

  • Kiinteä ε\varepsilon: yleisin vaihtoehto, jossa ε\varepsilon-arvo valitaan vakioksi (esim. 0,1);
  • Vähenevä ε\varepsilon: ε\varepsilon-arvo pienenee ajan myötä tietyn aikataulun mukaisesti (esim. alkaa arvosta 1 ja pienenee asteittain kohti nollaa) kannustaen tutkimista alkuvaiheessa.

Yhteenveto

ε\varepsilon-ahne algoritmi on peruslähestymistapa tutkimisen ja hyödyntämisen tasapainottamiseen. Vaikka se on yksinkertainen, se toimii perustana kehittyneempien strategioiden, kuten upper confidence bound (UCB) ja gradienttibanditit, ymmärtämiselle.

question mark

Mikä on ε\varepsilon-ahneen algoritmin keskeinen ominaisuus?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3
some-alt