Kurssisisältö
Johdatus Vahvistusoppimiseen
Johdatus Vahvistusoppimiseen
Epsilon-Ahne Algoritmi
Epsilon-greedy (-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:
- Alusta toimintojen arvoestimaatit jokaiselle toiminnolle ;
- Valitse toiminto seuraavan säännön mukaisesti:
- Todennäköisyydellä : valitse satunnainen toiminto (etsintä);
- Todennäköisyydellä : valitse toiminto, jolla on korkein arvioitu arvo (hyödyntäminen).
- Suorita toiminto ja havainnoi palkkio;
- Päivitä toiminnon arvoestimaatti saadun palkkion perusteella;
- Toista vaiheet 2–4 ennalta määrätyn ajan.
Hyperparametri (epsilon) säätelee etsinnän ja hyödyntämisen välistä tasapainoa:
- Korkea (esim. 0.5) kannustaa enemmän etsintään;
- Matala (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
-ahne-algoritmin tehokkuus riippuu vahvasti -arvosta. Kaksi strategiaa on yleisesti käytössä tämän arvon valitsemiseen:
- Kiinteä : yleisin vaihtoehto, jossa -arvo valitaan vakioksi (esim. 0.1);
- Vähenevä : -arvo pienenee ajan myötä tietyn aikataulun mukaisesti (esim. alkaa arvosta 1 ja pienenee asteittain arvoon 0), mikä kannustaa tutkimiseen alkuvaiheessa.
Yhteenveto
-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.
Kiitos palautteestasi!