Ifi6057w12: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
PriitJ (arutelu | kaastöö)
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...'
 
PriitJ (arutelu | kaastöö)
 
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

Q-Learning/SARSA

Reinforcement Learning: Example and Tutorial

Harjutustund

MDP Grid

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

  1. Lase Q-learning agendil pikemalt õppida (run_single_trial jooksutada mitu korda, näit. 10, 100, 200)
  2. Katseta erinevate uurimise (exploration) parameetritega - kas see muudab õppimist paremaks
  3. Proovi muuta õppimise koefitsenti (ap = rl.QLearningAgent(env, 10, 1, alpha=lambda n: 60./(59+n)))
  4. Implementeeri SARSA
class SARSAAgent(rl.QLearningAgent):
    def __call__(self, percept):
        # SARSA kood siia