Ifi6057w12: erinevus redaktsioonide vahel
Mine navigeerimisribale
Mine otsikasti
Uus lehekülg: '= 12. Nädal = Hüvitusega õppimine. ''Q-Learning''. ''AIMA'' 21.2-21.3 [http://mnemstudio.org/path-finding-q-learning-tutorial.htm A Painless Q-Learning Tutorial] [http://ww...' |
|||
| 8. rida: | 8. rida: | ||
[http://www.youtube.com/watch?v=f2nIKFMyfSg Reinforcement Learning: Example and Tutorial] | [http://www.youtube.com/watch?v=f2nIKFMyfSg Reinforcement Learning: Example and Tutorial] | ||
== Harjutustund == | |||
[[File:Ifi6057w12_md.png|MDP Grid]] | |||
Q-learning agent ja tegevuskeskkond | |||
<pre> | |||
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) | |||
</pre> | |||
Abifunktsioonid Q-learning agendi tegevuse ja õppimise visualiseerimiseks | |||
<pre> | |||
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 | |||
</pre> | |||
Liikumise kuumuskaart ja õpitud parimad käigud | |||
<pre> | |||
from utils import print_table | |||
print_table(env.to_grid(heatmap(ap))) | |||
print_table(env.to_arrows(policy(ap))) | |||
</pre> | |||
=== Tegevused === | |||
# Lase Q-learning agendil pikemalt õppida (<code>run_single_trial</code> jooksutada mitu korda, näit. 10, 100, 200) | |||
# Katseta erinevate uurimise (''exploration'') parameetritega - kas see muudab õppimist paremaks | |||
# Proovi muuta õppimise koefitsenti (<code>ap = rl.QLearningAgent(env, 10, 1, alpha=lambda n: 60./(59+n))</code>) | |||
# Implementeeri SARSA | |||
<pre> | |||
class SARSAAgent(rl.QLearningAgent): | |||
def __call__(self, percept): | |||
# SARSA kood siia | |||
</pre> | |||
Viimane redaktsioon: 1. detsember 2017, kell 18:05
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
