Ciao e bentornato.
Nell'ultima lezione, hai visto come utilizziamo le nostre funzioni di supporto per impostare davvero il nucleo delle nostre funzionalità per addestrare
i nostri modelli.
Quindi avevamo il nostro stato terminale, la nostra posizione di partenza, la nostra prossima azione, la prossima posizione e il
percorso più breve definisce davvero la maggior parte di come il nostro agente o come funzionerà il nostro ambiente.
L'ultima cosa che dobbiamo fare è usare la nostra formazione per usare la nostra formazione.
È piuttosto semplice nel senso di ciò che dobbiamo includere, ma il modo in cui lo facciamo è una storia
diversa.
Detto questo, inoltre, se voi ragazzi usate un approccio diverso o volete personalizzarlo e
sperimentarlo, è altamente raccomandato.
Inoltre, se utilizzi un approccio diverso e vuoi discuterne, non esitare a condividere le
domande e risposte.
Più che felice di discuterne con te.
È una grande idea perché ci sono così tanti modi per risolverlo e potresti trovare
un modo migliore, più vantaggioso.
Potremmo guardare di nuovo ai pro e ai contro, più che felici di discuterne.
Va bene.
Allora cosa dobbiamo fare?
Dobbiamo lanciare la nostra formazione.
Per la nostra formazione
Vogliamo usare l'Epsilon.
Quindi, in pratica, la percentuale che prenderemo per l'azione migliore per R invece di un'azione casuale.
Quindi impostiamo il nostro epsilon e lo impostiamo a 0. 9 e faremo qualcosa di simile con i nostri valori per il nostro fattore
di sconto e il nostro tasso di apprendimento.
Quindi facciamo un fattore di sconto uguale a 0. 9.
Prendiamo anche il nostro tasso di apprendimento e impostiamolo su 0. 9.
Questo sarà il tasso che il nostro agente imparerà o dovrebbe imparare.
E vogliamo anche prendere il numero di episodi di allenamento, chiamiamolo così, e di episodi di allenamento.
Quindi abbiamo una serie di episodi di formazione.
Mettiamolo a mille.
Quante volte si allenerà o in quanti episodi si allenerà?
Eccezionale.
Ora, essenzialmente quello che vogliamo fare è scorrere ogni episodio.
Vogliamo prendere la gamma del nostro numero di episodi di allenamento e impostare il nostro fondamentalmente il nostro epsilon.
Vogliamo trovare la nostra differenza temporale.
Per impostarlo, dobbiamo guardare alcuni valori Q precedenti.
Dobbiamo calcolare la nostra posizione di partenza nel nostro indice di azione.
Quindi iniziamo.
Facciamo un grande giro.
Quindi abbiamo i nostri quattro episodi.
Nella gamma del nostro numero di episodi di formazione.
Eccoci qui.
Salvo errori di sintassi da parte mia, vogliamo prendere l'indice di riga e l'indice di colonna per la nostra griglia per il
nostro Ms. indice di colonna.
E detto una posizione di partenza target, abbiamo bisogno di una posizione di partenza.
Quindi facciamo quell'ora povera ogni episodio.
Ora possiamo impostare il nostro stato terminale mentre.
Non.
È lo stato terminale.
Vogliamo esaminare l'indice di riga e l'indice di colonna.
Bene.
Quindi, impostiamo il nostro indice di azione per la nostra prossima azione.
Quindi abbiamo bisogno della nostra prossima azione.
Poiché questo agente scorre i mezzi per il nostro indice di azione, possiamo utilizzare la nostra azione successiva.
E possiamo usare il nostro indice di colonna di indice di riga e chiamiamo il nostro epsilon.
Quindi vogliamo avere questo invece della nostra azione casuale, usiamo l'indice di colonna.
E abbiamo bisogno di Epsilon.
Eccezionale.
Se potessi scrivere correttamente.
Qui, vogliamo Epsilon.
Va bene, lasciami cancellare questo.
Bene.
Fammi prendere il resto del codice e lo esamineremo in modo da non dovermi guardare mentre scrivo
ogni riga.
Ma tienilo a mente come vogliamo avvicinarci a questo.
Compensando la vecchia riga, avremmo bisogno di un vecchio indice di riga.
Vorremmo anche avere i premi per le nostre colonne e le nostre righe.
Dobbiamo dare un'occhiata ai valori della coda e ai vecchi valori della coda e dobbiamo calcolare la nostra differenza
temporale.
Bene.
Quindi vedi la modifica nel codice o l'aggiornamento del codice.
Stiamo prendendo il nostro vecchio indice di riga e il nostro vecchio indice di colonna per esaminare il nostro indice di riga e l'indice di colonna.
Il nostro indice della colonna dell'indice di riga è uguale alla nostra posizione successiva.
E la nostra prossima posizione richiederebbe l'indice di riga, la colonna, l'indice e l'azione.
Infine, stiamo esaminando una ricompensa.
I nostri vecchi valori Q sarebbero valori Q con il vecchio indice di riga, il vecchio indice di colonna e ancora, facendo riferimento
al nostro indice di azione e al calcolo della nostra differenza temporale, che è la nostra ricompensa, più il fattore
di sconto moltiplicato per i valori Q con la riga indice e indice di colonna meno il vecchio valore Q dal valore Q
precedente.
Abbiamo quasi finito dove abbiamo bisogno del nostro nuovo valore Q, che è il nostro vecchio valore di cue, più il tasso
di apprendimento, i tempi, la differenza temporale e i nostri valori di cue con il vecchio indice di riga nel nostro vecchio indice di colonna uguale al nuovo
valore di cue.
Se volete discuterne ulteriormente, ancora una volta, vi consiglio vivamente di fare domande e risposte.
Sentiti libero di stampare.
Prova a sperimentare tutte le variabili utilizzate qui.
Se vuoi vedere la loro forma, vedere come possono essere utilizzati, a cosa si riferisce, lo consiglio vivamente e
sono più che felice di discuterne ulteriormente.
Un'ultima cosa che possiamo fare, quindi abbiamo una piccola notifica.
Aggiungiamo una dichiarazione di stampa in modo da sapere quando l'addestramento è completo per le nostre mille righe.
Va bene.
Se non ci sono errori di sintassi da parte mia, dovremmo essere a posto.
Il blocco appunti delle colonne viene inizializzato.
Ho eseguito di nuovo tutto, quindi fammi eseguire questo.
Dovrebbe essere molto veloce poiché stiamo usando solo numpy.
È un modello molto ottimizzato in un certo senso.
Fammi fare clic su questo e cercheremo quindi il percorso più breve.
Va bene.
Abbiamo la nostra formazione completa.
Stampiamo anche il percorso più breve per alcune opzioni di partenza.
Quindi stiamo iniziando una riga tre, colonna nove con l'opzione del percorso più breve con il nostro percorso più breve.
Vogliamo guardare la riga cinque e zero e a partire dalla riga nove e la colonna numero cinque.
Stampiamoli.
Eccezionale.
Abbiamo il percorso più breve, ma non abbiamo finito.
Ci siamo quasi.
Possiamo vedere il nostro postino ottenere automaticamente il percorso più breve da una posizione legale che possiamo considerare dalla nostra
città all'area di confezionamento degli articoli.
Ma che ne sarebbe del contrario allo scenario opposto, sostanzialmente riferito a, sai, il nostro postino
può consegnare un articolo da qualsiasi parte della città all'area di confezionamento?
Ma dopo l'articolo dovrebbe andare da quella zona, dall'area di imballaggio a un altro luogo della
città, perché dovrebbe ritirare l'articolo successivo.
Quindi cosa possiamo fare per risolvere questo?
Ed in realtà è piuttosto semplice.
È possibile modificare l'ordine del percorso più breve.
Prova a pensarci per un secondo e poi questa sarebbe la soluzione.
Possiamo usare il percorso più breve.
Quindi prendiamo scritto cinque e colonna due e quindi tutto ciò che dovresti fare è usare l'opzione inversa con
Python.
Usiamo il punto del percorso inverso e potremmo stampare il percorso.
Quindi stiamo guardando cinque più due.
E ci andiamo.
Abbiamo il percorso più breve.
Ed è davvero utile se vuoi prendere l'immagine nella cella e portarla giù per confrontare e guardare
quei percorsi.
Ma puoi effettivamente vedere il percorso se prendi la dichiarazione stampata, guardi la colonna nell'ordine
e vedi come sta viaggiando il venditore.
Che lavoro fantastico che stai usando.
Q Apprendimento.
Quello che abbiamo imparato da questo corso ha un piccolo bonus e uno scenario divertente nella sezione per risolvere
questo tipo di problema essenzialmente del venditore ambulante.
Stiamo esaminando il postino per consegnare pacchi e articoli in città per trovare le opzioni più brevi e i percorsi
più brevi.
Consiglio vivamente di personalizzare, testare altre opzioni, modificare i parametri iper e, se scopri
qualcosa di meglio, se scopri dei parametri ottimizzati o migliori da utilizzare, non esitare a condividerli nelle
domande e risposte.
Sorprendente.
Spero che questo vi sia piaciuto davvero.
Per favore personalizza, sperimenta e continua ad imparare.
È così divertente lavorare con te.
Imparare e divertirsi I.