Ciao e benvenuto in questo tutorial Python.
Tutto ok.
In questo olio creeremo la funzione che selezionerà l'azione giusta e ogni volta.
Quindi fondamentalmente implementeremo la parte che renderà la macchina la mossa giusta.
E ogni volta che sta andando a sinistra andando dritto o andando a destra per raggiungere l'obiettivo e
per evitare gli ostacoli che è discesa.
Quindi facciamolo adesso.
azione select piuttosto che alcune parentesi e questa funzione di selezione select prenderà due argomenti.
Cominceremo come al solito con i non udenti per definire una funzione e quindi daremo un nome alla nostra funzione
che chiameremo
Il primo è sé come si cresce per riferirsi all'oggetto e il secondo argomento
che secondo te sarà quale.
Bene, cosa potrebbe essere.
neurale oi valori q per ciascuna delle tre azioni possibili e quindi l'azione che svolgiamo l'azione che
sarà l'output di la rete neurale dipende dallo stato di input e gli stati di
input è esattamente il secondo argomento di cui abbiamo bisogno con la funzione action selezionata.
Se ci pensi, l'azione che selezioniamo viene dall'output della rete neurale perché l'output della rete
È perché stiamo letteralmente prendendo l'output della rete neurale.
E naturalmente l'uscita della rete neurale dipende direttamente dall'ingresso della rete neurale.
Quindi questa sarà la nostra argomentazione.
E ora possiamo dargli un nome qualsiasi, in realtà lo chiameremo stato perché l'input delle reti neurali sono gli stati
di input che sono e codificati da un vettore di cinque dimensioni a tre segnali di orientamento
e meno orientamento.
E così ora le cose saranno facili.
Inseriremo lo stato di input nella rete neurale che costruiamo qui sopra proprio qui con
la classe successiva e quindi otterremo gli output che sono i valori chiave per ciascuna delle tre azioni
possibili e quindi usando il metodo Max morbido che ho intenzione di spiegare
in questo tutorial.
Avremo l'azione finale da giocare.
Quindi, facciamolo entrare nella funzione e implementiamo tutto questo.
Quindi la prima cosa di cui abbiamo bisogno è iniziare da quello che ho appena menzionato. Max
l'idea del morbido Max è che cercheremo di ottenere l'azione migliore da giocare ogni volta.
Ma allo stesso tempo esploreremo le diverse azioni.
E come lo facciamo.
Come possiamo ottenere l'azione migliore da giocare mentre esploriamo ancora le altre azioni.
Bene, abbiamo usato questa idea di cose che consiste nel generare una distribuzione di probabilità per ciascuno dei
valori q.
Q dichiara l'azione.
Ora abbiamo un valore di Q per ogni azione andare a sinistra, andare dritto o andare a destra.
Ma questo valore q dipende anche dallo stato di input.
Questo è esattamente l'uso della funzione Q sulle lezioni di intuizione.
Questa funzione Q è una funzione dello stato e dell'azione.
Quindi, dato che qui abbiamo uno stato di input che è lo stato qui e
tre azioni possibili abbiamo tre nuovi valori Q. Azione statale 1 Azione stato Q 2 e azione 2
stati 3 e genereremo una distribuzione di probabilità rispetto a questi tre valori chiave.
Cioè avremo una probabilità per il primo valore Q una delle probabilità per il secondo valore Q
e una terza probabilità per il terzo Q E tutte e tre le probabilità saranno pari a 1.
tutto questo con Massimi sgraziati e Massimi sgraziati attribuiremo una grande probabilità al massimo Q intorno.
E così faremo
Ecco perché un'alternativa al soft Max è un semplice RMX che non prende direttamente il massimo dei valori q, ma
in questo caso non stiamo esplorando le altre azioni.
Grazie a queste probabilità possiamo esplorare da qualche altra parte utilizzando un parametro di temperatura
che vedremo molto rapidamente.
Possiamo ancora esplorarli configurando questo parametro di temperatura.
Ecco perché, in generale, per la sicurezza consiglio vivamente di utilizzare una x soft anziché una semplice RMX.
Va bene quindi facciamo gli strumenti di X e quindi come hai capito.
Dal momento che Soughed Max restituisce le probabilità di ciascuno dei tre valori Q per le tre azioni possibili.
Bene, la prima variabile che stiamo per creare probabilmente si riferirà naturalmente a queste probabilità.
Quindi gli oggetti di scena sono uguali e ora prenderemo la nostra prossima funzione a lungo e in base
a dove la prenderemo.
Beh, certo, ricorda che abbiamo importato il.
E poi il sottomodulo funzionale che ricordo è il modulo che contiene la maggior parte delle azioni per
implementare una rete neurale.
e quindi è proprio da questo sottomodulo funzionale che ci occuperemo della prossima funzione.
Gli abbiamo dato la scorciatoia F
Ma dal momento che gli abbiamo dato una scorciatoia, iniziamo qui con un Neph che rappresenta il funzionale dal quale
prendiamo la nostra prossima funzione soughed.
Ecco qui.
Questo è il primo e una parentesi.
Tutto ok.
Ora cosa dobbiamo inserire nella prossima funzione.
Beh, questo è ovviamente le entità per le quali vogliamo generare una distribuzione di probabilità.
E quali sono queste entità.
Bene, questi sono ovviamente i valori chiave.
Quindi ora la domanda è come possiamo ottenere i valori di q.
Bene, ovviamente i valori q sono l'output della rete neurale e ottengono questi output della
rete neurale.
Bene, qui andiamo
Dobbiamo prendere la nostra nuova rete.
Ma in realtà lo abbiamo già perché è quello che inizializzato alla fine è la sua funzione.
Sappiamo di aver creato un modello autodidatta che non è altro che non funzionerà perché è un nuovo oggetto
della classe di rete.
E così è perfetto.
Possiamo semplicemente prendere il nostro modello qui e roba successiva applicare questo modello allo stato di input che
è l'argomento qui e che restituirà le uscite che stiamo cercando.
Questo è i valori chiave.
E così ora il tuo intuito per cui abbiamo dovuto prendere il modello qui per introdurlo nella funzione
potrebbe migliorare.
Quelli di voi che iniziano con la programmazione orientata agli oggetti vedrete che tutto questo diventerà
naturale così morbido in seguito.
Quindi prendiamo i nostri modelli di auto-modello perché questo deve essere il modello dell'oggetto che abbiamo creato qui.
Ma poi abbiamo bisogno di ottenere l'output del nostro modello di rete neurale e quindi
sentiremo una parentesi in cui introdurremo lo stato di input denominato stato qui.
Quindi quello che vogliamo fare all'inizio è entrare nello stato, ma ora dobbiamo stare attenti a qualcosa di stato che assomiglia ad un semplice
set al momento.
seguito useremo questa cella a un livello inferiore per metterla come argomento della funzione di azione Seleziona.
Ma ricorda che lo stato sarà in realtà un sensore di torcia perché in
L'argomento dello stato che è qui sta per diventare in seguito questo stato meno autodidatta.
E poiché questo è un mondo di risposte torturato, il modello lo accetterà.
Quindi va bene.
Ma ora possiamo migliorare l'algoritmo.
Quindi, non appena lo stato è un sensore di torcia e come abbiamo detto prima, la maggior parte dei sensori sono avvolti
nel voivode.
Questo conterrà anche un gradiente.
Quindi adesso quello che faremo per prima cosa è avvolgere questo stato di input che è un tensore in
una torcia molto bene, ma poiché questo è gli stati di input Beh, non ci sarà alcuna differenziazione.
Non useremo il gradiente di questa torcia di stato Voivode e che possono
essere stazioni e quindi quello che faremo ora è convertire lo stato di questo sensore torcia in una variabile torcia come tale.
Ma poi per specificare che non vogliamo che le sfumature nel grafico siano tutte predatrici alla
fine di Mudgal.
Bene, a questo punto arriveremo volatili uguali veri.
ora abbiamo il nostro stato torched sensore in una torcia molto bene ma grazie a questo Votel equivale a vero barometro.
In modo che
Bene includeremo i gradienti associati a questi stati di input al grafico di tutte le condizioni della fine
in quel modello.
Quindi questo è un altro trucco tecnico.
Questo ci salverà un po 'di memoria e quindi questo migliorerà le prestazioni.
Quindi consiglio vivamente di farlo e ora aggiungeremo qualcosa di più divertente.
Riguarda questo parametro di temperatura che ho appena menzionato.
di modulare come la rete neurale sarà sicura di quale azione dovrebbe decidere di giocare.
Quindi questo parametro di temperatura è il parametro che ci permetterebbe
Quindi questo parametro di temperatura sarà un numero positivo e più vicino è a zero meno la rete neurale sarà sicura
quando si gioca in azione e più alto è il parametro di temperatura, più la rete neuronale
sarà più sicura dell'azione che decide di giocare .
E per aggiungere questo parametro, moltiplicherò le uscite che sono i Kugan usati da questo parametro
di temperatura.
Quindi iniziamo ad esempio con 7 e specificherò qui il piccolo commento T uguale a 7.
Quindi questo è il parametro della temperatura.
Mi dispiace andare a 7.
Ne proveremo altri, ma voglio iniziare con uno piccolo perché lo
vedrai con uno piccolo.
La nostra macchina si comporterà ancora come una specie di insetto, ma aumentando il parametro di temperatura
il nostro codice sembrerà più simile a una macchina e deciderà di vendere la guida sarà molto meglio.
E quindi è logico perché più è alto questo parametro di temperatura, più alta sarà
la probabilità di vincere il Juval me perché, per esempio, se abbiamo il massimo per i valori di q.
Prendiamo alcuni semplici numeri uno due tre se riempiti max da uno a tre uguale.
Ad esempio 0. 04 0. 11 e aperto ottantacinque.
Quindi aumentando la temperatura aumentando la temperatura.
In questo momento la temperatura è uguale a una prendendo una temperatura elevata, ad esempio sottotitoli
di Tussaud, copiamo questo e moltiplicandolo per due o tre, quindi gli stessi valori sono moltiplicati per il parametro
di temperatura di tre.
Bene otterremo qualcosa come zero per il primo valore di Q perché questo ha avuto una probabilità molto bassa
che qualcosa intorno allo zero quindi qualcosa di molto piccolo per la seconda probabilità perché questa era ancora
una bassa probabilità.
Quindi diciamo per esempio o punto 0 2.
Ma poi questa terza probabilità poiché era la più grande e piuttosto alta.
Beh, aumentando la temperatura questa probabilità sarà ancora più grande perché saremo
ancora più sicuri che questo sia il valore Q corretto corrispondente all'azione che dobbiamo giocare e quindi
sarà qualcosa come 0. 2 98.
Ora aumentando il parametro della temperatura Bene, ora siamo ancora più sicuri che la terza azione qui dovrebbe
essere l'azione da giocare perché la probabilità per il valore q di questa azione non è solo la
più grande ma anche molto alta.
Ecco, questo è il parametro di temperatura.
Riguarda la certezza in quale direzione dovremmo decidere di giocare.
Tutto ok.
Quindi ho intenzione di rimuovere questo commento.
Questo era solo per spiegare.
E ora prendiamo la nostra azione.
Quindi, come hai intenzione di farlo.
probabilità per ciascuno dei valori chiave, ma anche e questo è il secondo passo del metodo successivo morbido.
Bene, il principio del prossimo metodo non è solo quello di generare una distribuzione di
Prendiamo un sorteggio casuale da questa distribuzione per ottenere la nostra azione finale.
E naturalmente avremo un'alta probabilità di ottenere l'azione che corrisponde al valore Q che
ha la più alta probabilità perché è esattamente come funziona la distribuzione.
Quindi eccoci.
Prendiamo la nostra azione.
Quindi introdurremo un nuovo Voivode, chiameremo azione e questa azione rappresenterà un assaggio
casuale della distribuzione di probabilità che abbiamo appena creato in precedenza.
E quindi come possiamo ottenere un sorteggio così casuale.
Bene, prenderemo le probabilità del nostro prop di ciascuno dei valori chiave che prendiamo per
puntelli e poi dardeggiamo e poi useremo la funzione multi Gnomeo e questo ci darà un assaggio casuale
da questo processo di distribuzione.
Quindi è tutto ciò che otterrà la sua reazione.
Perfezionare.
E ora, naturalmente, restituiremo l'azione.
C'è un piccolo trucco qui.
Che cosa è il fatto che questo Propst che il multinomiale restituisca il PI verso il vitale con un badge falso.
Conoscete questo falso diamanti e corrispondete al lotto e quindi per ottenere il risultato giusto
che vogliamo sia l'azione in 0 1 o 2.
Abbiamo solo bisogno di aggiungere qui i dati e poi alcune parentesi e le azioni qui sono uno o
due che stiamo cercando è il contenuto e l'indice è 0 e 0.
Tutto ok.
E noi andiamo.
Ora abbiamo la nostra azione grazie a questa funzione di azione selezionata l'IA ora saprà quale azione giocare.
E ogni volta.
Terrific.
Quindi ora possiamo passare alla funzione successiva che sarà la funzione di apprendimento.
Ed è qui che formeremo l'intera rete neurale che conosci con tutta la propagazione diretta
e quindi la propagazione posteriore è quella di categorizzare nel senso.
In pratica, implementeremo l'intera formazione del modello di apprendimento profondo che è il cuore
della nostra intelligenza artificiale.
Quindi non vedo l'ora di farlo.
Questo sarà un tutorial eccitante e quindi ti vedrò nel prossimo Statoil.
Fino ad allora divertiti.
IO.