Il Q-learning è un calcolo di apprendimento fuori approccio che cerca di individuare la mossa migliore da fare dato lo stato attuale. È considerato off-strategy sulla base del fatto che il q-taking in lavoro guadagna da attività che sono al di fuori dell’accordo attuale, come l’assunzione di attività arbitrarie, e in questo modo un approccio non è richiesto. Tanto più esplicitamente, il q-learning cerca di familiarizzare con un approccio che amplifica la compensazione assoluta.
Che cos’è la ‘Q’?
La ‘q’ in q-learning rappresenta la qualità. La qualità per questa situazione parla di quanto una data attività sia utile per aumentare una certa ricompensa futura.
Fare una q-tabella
Nel momento in cui viene eseguito il q-learning facciamo ciò che è noto come q-table o framework che persegue lo stato di [stato, azione] e installiamo le nostre qualità a zero. A quel punto aggiorniamo e memorizziamo i nostri valori q dopo una scena. Questa q-table si trasforma in una tabella di riferimento per il nostro specialista per scegliere la migliore attività che dipende dalla q-estema.
importare intorpidito come np
# Introdurre le qualità della tavola q a 0
Q = np.zeri((state_size, action_size))
Q-imparare e fare rinfreschi
La fase successiva è solo per lo specialista di connettersi con la terra e fare gli aggiornamenti per l’attività di stato corrisponde nella nostra q-table Q [stato, azione].
Facciamo una mossa: Indagare o Avventura
Un operatore associato alla terra in 1 di 2 modi diversi. Il primo è quello di utilizzare la tavola q come fonte di prospettiva e visualizzare ogni singola attività immaginabile per un dato stato. L’operatore a quel punto sceglie l’attività in funzione della stima massima di tali attività. Questo è noto come abuso, poiché utilizziamo i dati che abbiamo a disposizione per stabilire una scelta.
Il metodo successivo per fare una mossa è agire a caso. Questo si chiama indagare. Invece di scegliere attività che dipendono dalla massima ricompensa futura, selezioniamo un’attività arbitraria. Agire a casaccio è significativo in quanto consente allo specialista di indagare e trovare nuove espressioni che generalmente non possono essere scelte durante la procedura di abuso. È possibile regolare l’indagine/misuso utilizzando epsilon (ε) e impostando la stima della regolarità dell’indagine rispetto all’abuso. Ecco un codice spiacevole che si baserà su come lo stato e lo spazio di attività sono un accordo.
importazione arbitraria
# Imposta la percentuale su cui devi indagare
epsilon = 0,2
nel caso in cui random.uniform(0, 1) < epsilon:
“””
Indagare: selezionare un’attività arbitraria
“””
altro:
“””
Favore: selezionare l’attività con la massima stima (ricompensa futura)
“””
Rinfrescare la tavola q
Gli aggiornamenti avvengono dopo ogni progressione o attività e si chiudono quando una scena è terminata. Fatto per questa situazione implica l’arrivo in qualche punto terminale da parte dell’operatore. Uno stato terminale, per esempio, può essere in qualche modo simile all’arrivo in una pagina di checkout, all’arrivo al termine di una partita, al completamento di un obiettivo ideale e così via. Lo specialista non si adatterà molto dopo una scena solitaria, ma inevitabilmente con abbastanza indagini (passi e scene) si combinerà e prenderà confidenza con le q-qualità ideali o q-star (Q∗).
Ecco i 3 progressi fondamentali:
Lo specialista inizia in uno stato (s1) fa una mossa (a1) e ottiene una ricompensa (r1)
L’operatore sceglie l’attività facendo riferimento alla tabella Q con il valore più elevato (max) OPPURE in modo arbitrario (epsilon, ε)
Aggiornamento dei valori q
Ecco la regola essenziale di aggiornamento per il q-learning:
# Aggiorna q stime
Q[stato, azione] = Q[stato, azione] + lr * (compensare + gamma * np.max(Q[nuovo_stato, :]) – Q[stato, azione])
Nell’aggiornamento di cui sopra ci sono due o tre fattori a cui non abbiamo fatto riferimento a questo punto. Quello che sta succedendo qui è che cambiamo i nostri valori q in funzione della distinzione tra le nuove qualità limitate e le vecchie qualità. Scontiamo le nuove qualità utilizzando la gamma e modifichiamo la nostra dimensione di progressione utilizzando il tasso di apprendimento (lr). Di seguito sono riportati alcuni riferimenti.
Tasso di apprendimento: lr o tasso di apprendimento, regolarmente indicato come alfa o α, può essere caratterizzato fondamentalmente come l’importo che si riconosce il nuovo valore rispetto al vecchio valore. Sopra stiamo facendo la distinzione tra nuovo e vecchio e in seguito aumenteremo questo incentivo con il tasso di apprendimento. Questo valore a quel punto viene aggiunto alla nostra passata q-estema che fondamentalmente lo sposta verso il nostro più recente aggiornamento.
Gamma: la gamma o γ è un fattore di markdown. Viene utilizzato per regolare le ricompense rapide e future. Dalla nostra regola di aggiornamento di cui sopra si può vedere che applichiamo lo sconto alla ricompensa futura. Normalmente, questo valore può funzionare in un intervallo compreso tra 0,8 e 0,99.
Ricompensa: la ricompensa è il valore ottenuto in seguito al completamento di una specifica attività in un determinato stato. Una ricompensa può avvenire in una fase di tempo casuale o solo nella fase di tempo terminale.
Max: np.max() utilizza la libreria np.max() utilizza la libreria np.max e sta prendendo il limite delle cose per venire remunerato e lo sta applicando alla ricompensa per lo stato attuale. Ciò che questo fa è influenzare l’attività presente dalla possibile ricompensa futura. Questa è la magnificenza di q-