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
Johdatus Vahvistusoppimiseen
course content

Kurssisisältö

Johdatus Vahvistusoppimiseen

Johdatus Vahvistusoppimiseen

1. RL:n Ydinteoria
2. Moniaseinen Bandiittiongelma
3. Dynaaminen Ohjelmointi
4. Monte Carlo -Menetelmät
5. Aikaisen Eron Oppiminen

book
Epsilon-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ä erityistehtävässä, sen yksinkertaisuus ja monipuolisuus tekevät siitä laajasti sovellettavan vahvistusoppimisen alalla.

Toimintaperiaate

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 parhaiten 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-ahne-algoritmin tehokkuus riippuu vahvasti ε\varepsilon-arvosta. Kaksi strategiaa on yleisesti käytössä tämän arvon valitsemiseen:

  • 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 arvoon 0), mikä kannustaa tutkimiseen 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

course content

Kurssisisältö

Johdatus Vahvistusoppimiseen

Johdatus Vahvistusoppimiseen

1. RL:n Ydinteoria
2. Moniaseinen Bandiittiongelma
3. Dynaaminen Ohjelmointi
4. Monte Carlo -Menetelmät
5. Aikaisen Eron Oppiminen

book
Epsilon-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ä erityistehtävässä, sen yksinkertaisuus ja monipuolisuus tekevät siitä laajasti sovellettavan vahvistusoppimisen alalla.

Toimintaperiaate

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 parhaiten 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-ahne-algoritmin tehokkuus riippuu vahvasti ε\varepsilon-arvosta. Kaksi strategiaa on yleisesti käytössä tämän arvon valitsemiseen:

  • 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 arvoon 0), mikä kannustaa tutkimiseen 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