Ifi6057w12
Allikas: Lambda
12. Nädal
Hüvitusega õppimine. Q-Learning. AIMA 21.2-21.3
A Painless Q-Learning Tutorial
Reinforcement Learning: Example and Tutorial
Harjutustund
Q-learning agent ja tegevuskeskkond
import rl import mdp env = mdp.sequential_decision_environment ap = rl.QLearningAgent(env, 10, 1) # 10 - exploration trials, 1 - exploration reward rl.run_single_trial(ap, env)
Abifunktsioonid Q-learning agendi tegevuse ja õppimise visualiseerimiseks
from collections import defaultdict
def heatmap(ap):
hm = defaultdict(int)
for k, v in ap.Nsa.items():
s, a = k
hm[s] += v
return hm
def policy(ap):
best_move = defaultdict(lambda: (0, 1))
best_score = defaultdict(lambda: -1000)
for k, v in ap.Q.items():
s, a = k
if v > best_score[s]:
best_move[s] = a
best_score[s] = v
return best_move
Liikumise kuumuskaart ja õpitud parimad käigud
from utils import print_table print_table(env.to_grid(heatmap(ap))) print_table(env.to_arrows(policy(ap)))
Tegevused
- Lase Q-learning agendil pikemalt õppida (
run_single_trialjooksutada mitu korda, näit. 10, 100, 200) - Katseta erinevate uurimise (exploration) parameetritega - kas see muudab õppimist paremaks
- Proovi muuta õppimise koefitsenti (
ap = rl.QLearningAgent(env, 10, 1, alpha=lambda n: 60./(59+n))) - Implementeeri SARSA
class SARSAAgent(rl.QLearningAgent):
def __call__(self, percept):
# SARSA kood siia
