Kursinnhold
Introduksjon til Forsterkende Læring
Introduksjon til Forsterkende Læring
Epsilon-grådig Algoritme
Den epsilon-grådige (-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:
- Initialiser handlingsverdiestimatene for hver handling ;
- Velg en handling ved å bruke følgende regel:
- Med sannsynlighet : velg en tilfeldig handling (utforskning);
- Med sannsynlighet : velg handlingen med høyest estimert verdi (utnyttelse).
- Utfør handlingen og observer belønningen;
- Oppdater handlingsverdiestimatet basert på observert belønning;
- Gjenta steg 2-4 et fast antall tidssteg.
Hyperparameteren (epsilon) styrer balansen mellom utforskning og utnyttelse:
- En høy (f.eks. 0,5) oppmuntrer til mer utforskning;
- En lav (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 -grådig algoritme avhenger i stor grad av verdien til . To strategier brukes ofte for å velge denne verdien:
- Fast : dette er det mest generelle alternativet, hvor verdien til velges som en konstant (f.eks. 0.1);
- Avtagende : verdien til 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
-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.
Takk for tilbakemeldingene dine!