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_trial
jooksutada 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