WEBVTT

00:00.300 --> 00:02.000
Ciao e benvenuto in questo tutorial.

00:02.160 --> 00:05.090
Congratulazioni ancora per aver finito con questo.

00:05.150 --> 00:08.200
Vediamo che ce l'abbiamo fatta, abbiamo creato il cervello e li abbiamo addestrati.

00:08.400 --> 00:15.600
Ma ora dobbiamo ancora creare un agente di prova che domani non sarà un appuntamento, ma userà semplicemente

00:15.780 --> 00:19.430
il modello di condivisione per fare le proprie esplorazioni.

00:19.530 --> 00:26.080
E ovviamente in questo codice registreremo alcuni video e questi saranno i video che gli

00:26.090 --> 00:28.750
agenti testeranno con un certo punteggio.

00:28.810 --> 00:30.840
Quindi passiamo attraverso questo codice.

00:30.850 --> 00:35.860
Il più importante è fatto in modo tale che ti ho detto che non lo codificheremo riga per riga,

00:35.860 --> 00:38.580
ma penso che sia importante capire cosa sta succedendo qui.

00:38.800 --> 00:42.680
Quindi eccoci con questo codice nella prima sezione, come hai notato.

00:42.790 --> 00:49.480
Importiamo le librerie e poi abbiamo trovato questa funzione di test che farà sì che questo agente di test

00:49.480 --> 00:52.390
esegua la propria esplorazione e giochi il breakout.

00:52.600 --> 00:58.610
Quindi otteniamo che questa funzione di test richieda tre argomenti, il primo è la classifica che deve ancora sincronizzare l'agente

00:58.850 --> 01:02.060
di test come abbiamo fatto per gli agenti di formazione.

01:02.230 --> 01:05.380
Quindi abbiamo i nostri parametri, ovviamente perché ne hai bisogno.

01:05.380 --> 01:12.220
E naturalmente abbiamo il modello condiviso perché questo test agent utilizzerà un modello condiviso per fare

01:12.220 --> 01:13.360
la propria esplorazione.

01:13.360 --> 01:18.790
Va bene allora entriamo nella funzione e questa linea di codice che sincronizziamo con l'agente di test.

01:18.820 --> 01:23.120
Esattamente come prima, importiamo l'ambiente.

01:23.170 --> 01:27.070
Quindi lo ricordo nel codice principale che sarà nel prossimo tutorial.

01:27.250 --> 01:33.970
Bene e il nome qui sarà sostituito dalla rottura dello zero in modo che possiamo andare nell'ambiente di break

01:34.060 --> 01:40.180
zero e giocare al gioco e alla Croce Rossa Trumani che otterrà i video della nostra serata.

01:40.180 --> 01:46.680
Quindi in pratica questa linea di codice significa che eseguiamo un ambiente con il video.

01:47.080 --> 01:54.520
Quindi alla prossima riga di codice sincronizziamo questo ambiente in modo esattamente lo stesso principio della funzione Trend.

01:54.700 --> 02:02.170
Poi otteniamo il nostro modello e per fare questo creiamo un oggetto della classe di attività e mettiamo la forma di

02:02.170 --> 02:08.920
input con il nostro spazio di osservazione ambientale e gli zero di forma sono esattamente come la funzione del

02:09.190 --> 02:13.690
treno e le nostre uscite che sono le azioni con uno spazio azione.

02:13.900 --> 02:19.770
Quindi, esattamente come prima, allora qualcosa di nuovo qui da quando abbiamo finito con l'allenamento.

02:19.870 --> 02:25.450
Non vogliamo mettere il modello in modalità treno perché semplicemente non vogliamo che si formi,

02:25.450 --> 02:26.880
vogliamo metterlo in sviluppo.

02:27.160 --> 02:29.740
Ed è quello che facciamo qui con il modello che si è evoluto.

02:29.890 --> 02:36.940
Quindi questo è solo fondamentalmente mettere l'agente di test in una modalità che testerà fondamentalmente le

02:37.030 --> 02:38.350
prestazioni testate valutate.

02:38.720 --> 02:45.680
Poi qui otteniamo i nostri stati di input che sono le immagini di input del gioco che a questo punto

02:45.680 --> 02:46.790
rappresentano un'intera gara.

02:46.840 --> 02:49.360
Quindi li convertiamo in danzatori di torce.

02:49.480 --> 02:52.810
Qui inizializziamo alcune delle parole qui.

02:52.840 --> 02:54.980
Inizializziamo al vero.

02:55.200 --> 03:03.430
poi qualcosa di nuovo, introduciamo questo terzo vitale con una funzione temporale per misurare il tempo dei calcoli.

03:03.850 --> 03:05.990
Quindi, proprio come l'ultima volta,

03:06.190 --> 03:08.680
E questo perché vuoi ottenere il punto di partenza.

03:08.890 --> 03:15.160
Quindi qui le azioni utilizziamo un tipo molto pratico di stecca che consente di aggiungere un elemento alla stecca da

03:15.160 --> 03:16.550
destra o da sinistra.

03:16.600 --> 03:21.960
Quindi è molto pratico e ti darò il riferimento che penso nella versione decrementata del codice.

03:22.180 --> 03:27.320
Daremo un'occhiata a cosa è questo dequio e questo è ciò che permette di farlo.

03:27.490 --> 03:33.370
Quindi inizializziamo la lunghezza di un episodio con zero ovviamente e poi incrementeremo la dimensione in

03:33.400 --> 03:34.690
questo ciclo di pozzi.

03:34.870 --> 03:36.480
Quindi usiamo lo stesso trucco qui.

03:36.680 --> 03:42.290
Mentre vero e nel ciclo incrementiamo la lunghezza dell'episodio di uno.

03:42.490 --> 03:49.700
Quando il gioco termina quando il gioco è finito, ricarichiamo l'ultimo set del modello condiviso del modello di condivisione

03:49.730 --> 03:51.460
datato dagli altri modelli.

03:51.460 --> 03:55.610
Ricorda che qui il modello condiviso non è più databile allora.

03:55.660 --> 04:04.030
Eppure, se il gioco è finito se il gioco è finito, Reinette reinizializziamo gli stati della cella, vedi X

04:04.190 --> 04:13.840
e poi States H x, e se il gioco non è troppo buono, manteniamo gli stessi stati delle celle e negli stati.

04:13.840 --> 04:18.030
Ma per essere sicuri che vengano insegnati alle variabili in modo che possano essere attaccati a un gradiente.

04:18.170 --> 04:25.240
OK, ecco qualcosa che è già morto nella funzione di trend e quindi ancora nel ciclo while e dopo aver avuto

04:25.240 --> 04:30.870
un dato che afferma negli stati nascosti la via giusta in base ai due casi qui.

04:31.060 --> 04:34.360
Bene, cosa facciamo, otteniamo le previsioni di domani.

04:34.450 --> 04:37.380
Questo è esattamente ciò che facciamo qui con questa linea di codice.

04:37.750 --> 04:43.360
Quindi otteniamo il valore che è l'output del critico il valore reale che è l'output dell'attore.

04:43.600 --> 04:49.750
E poi tocca tutti gli stati nascosti H x e la cella indica la X, quindi generiamo una distribuzione

04:49.750 --> 04:54.130
delle probabilità delle azioni che è al valore di azione dei valori Q qui.

04:54.270 --> 04:56.380
E lo facciamo con la prossima funzione.

04:56.470 --> 05:01.230
E ovviamente non abbiamo bisogno di ottenere le probabilità di fortuna qui perché questo è solo per la

05:01.480 --> 05:02.650
formazione per l'agente di prova.

05:02.650 --> 05:09.130
Giocherà solo le azioni che useremo, saprai come Doom una certa attività per giocarci ma non stiamo

05:09.190 --> 05:10.920
facendo alcun allenamento qui.

05:10.960 --> 05:19.040
Quindi abbiamo solo un supporto e da questo giochiamo l'azione portando direttamente a RMX di queste probabilità che

05:19.040 --> 05:22.720
è l'azione che ha la più alta probabilità.

05:22.810 --> 05:26.860
E il motivo è che l'agente di test non fa alcuna esplorazione.

05:26.860 --> 05:32.830
massima probabilità, quindi una volta che giochiamo all'azione raggiungiamo lo stato successivo e otteniamo la parola successiva.

05:32.830 --> 05:38.170
Ricorda che vogliamo avere la possibilità di raccogliere alcune azioni che hanno basse probabilità quando

05:38.170 --> 05:44.260
vuoi fare qualche esplorazione di queste altre azioni e sai di non prendere ogni volta l'azione che

05:44.260 --> 05:50.800
ha la più alta probabilità ma qui il test agent può fare qualsiasi esplorazione e quindi è per questo

05:50.800 --> 05:53.340
che prendiamo direttamente l'azione che ha la

05:53.470 --> 05:56.920
E questo è un giorno datato se il gioco è finito o meno.

05:57.160 --> 06:03.700
Quindi questo otteniamo tutto questo con questa linea di codice giocando l'azione dopo averlo selezionato con il nostro

06:03.790 --> 06:04.630
Max qui.

06:04.840 --> 06:13.000
fatta di nuovo e poi da quando abbiamo appena ricevuto una nuova ricompensa. Aggiungeremo parte della ricompensa semplicemente aggiungendo questa nuova parola.

06:13.090 --> 06:18.950
Quindi suoniamo l'azione qui e otteniamo lo stato in cui otteniamo la ricompensa e l'abbiamo

06:19.180 --> 06:21.480
E infine ogni volta che il gioco è finito.

06:21.490 --> 06:28.510
Quindi se questo significa che quando il gioco termina quando finisco di giocare bene, stamperemo

06:28.510 --> 06:31.210
i risultati con il tempo opposto.

06:31.230 --> 06:36.100
Volevamo la durata dell'episodio, cioè quanto tempo è durato.

06:36.100 --> 06:42.890
Giocando alla grande e questo è come stampiamo tutte queste variabili usando questi piccoli trucchi.

06:42.910 --> 06:46.280
Questo è per il tempo quindi vogliamo che sia solo una variabile.

06:46.340 --> 06:51.960
Alcune delle parole e delle idee sono la lunghezza della presente OK.

06:52.160 --> 06:57.860
E poi, una volta stampati tutti i risultati da quando il gioco è finito e vogliamo iniziare

06:58.220 --> 06:59.930
un nuovo gioco, reinizializzeremo tutto.

06:59.930 --> 07:04.170
Questa è la somma di due parole zero della lunghezza di un episodio a zero.

07:04.230 --> 07:10.100
Ricreare tutte le azioni utilizzando questa funzione tasto reimposta le immagini di

07:10.100 --> 07:13.360
input che conosci ripetendo tutte le interruzioni.

07:13.610 --> 07:21.980
E finalmente usiamo questa volta che dormiamo 60 secondi per fare una pausa di un minuto per permettere agli altri agenti

07:21.980 --> 07:22.840
di esercitarsi.

07:22.850 --> 07:24.810
E questo se il gioco è finito.

07:25.210 --> 07:25.840
OK.

07:25.940 --> 07:32.210
E finalmente abbiamo questa ultima riga di codice che ci porterà il nuovo stato e poi potremo andare avanti.

07:32.240 --> 07:34.550
Possiamo continuare in questo nuovo gioco.

07:34.550 --> 07:35.840
Quindi eccoci.

07:35.870 --> 07:37.430
Questa è la funzione di test.

07:37.430 --> 07:40.550
Cose a cui vedrai i video in uno o due tutorial.

07:40.550 --> 07:45.310
Spero che sarai del tutto come l'ultima volta a guardare i risultati che è con te.

07:45.350 --> 07:47.360
Curial e io saremo divertenti.

07:47.480 --> 07:48.400
E te lo sto dicendo.

07:48.440 --> 07:50.330
Aspettatevi di vedere buoni risultati.

07:50.360 --> 07:55.130
Ma tieni presente che questo breakout è stato super impegnativo.

07:55.130 --> 07:58.430
Pensavamo che fosse un gioco semplice, ma non del tutto.

07:58.430 --> 08:01.480
In realtà si è rivelato molto più difficile del destino.

08:01.670 --> 08:03.890
Ed è per questo che lo abbiamo inserito nell'ultimo modulo.

08:04.190 --> 08:09.510
Ma comunque facciamo questa funzione principale nel prossimo tutorial.

08:09.590 --> 08:11.770
Lo stesso non è il più importante qui.

08:11.780 --> 08:18.860
Ora che l'A-380 è demente non lo codificheremo riga per riga per espandere il codice e molto

08:18.980 --> 08:20.570
rapidamente otterremo i risultati.

08:20.570 --> 08:22.130
Fino ad allora goditi l'intelligenza artificiale.
