WEBVTT

00:00.090 --> 00:00.923
Istruttore: Salve,

00:00.923 --> 00:03.870
amici, e benvenuti a questo nuovo caso d'uso della scienza dei dati

00:03.870 --> 00:07.560
con ChatGPT, che questa volta riguarderà l'apprendimento per rinforzo.

00:07.560 --> 00:09.420
Quindi diremo subito a ChatGPT che abbiamo

00:09.420 --> 00:13.260
programmato un'auto virtuale a guida autonoma senza ancora alcuna intelligenza

00:13.260 --> 00:14.730
artificiale.

00:14.730 --> 00:19.020
Quindi abbiamo appena implementato la capacità di avanzare, girare a sinistra,

00:19.020 --> 00:21.300
girare a destra e fermarsi.

00:21.300 --> 00:25.050
E diremo che questa auto a guida autonoma viene premiata se riesce

00:25.050 --> 00:27.540
a raggiungere una certa destinazione,

00:27.540 --> 00:30.420
e penalizzata se si allontana da questa destinazione

00:30.420 --> 00:33.360
o se incontra degli ostacoli.

00:33.360 --> 00:35.460
Ok, e poi chiederemo a ChatGPT quale modello

00:35.460 --> 00:37.680
di AI dovrebbe essere implementato per

00:37.680 --> 00:40.020
l'auto a guida autonoma e come.

00:40.020 --> 00:40.853
Ok?

00:40.853 --> 00:41.686
Quindi facciamo così.

00:41.686 --> 00:43.530
Aprirò una nuova chat qui.

00:43.530 --> 00:45.637
E all'interno diremo

00:45.637 --> 00:49.110
esattamente: "Ehi, ho programmato

00:49.110 --> 00:53.550
un'auto a guida autonoma virtuale con

00:53.550 --> 00:57.000
le azioni di andare avanti, girare

00:57.000 --> 01:04.710
a sinistra, girare a destra e fermarsi.

01:04.710 --> 01:08.370
L'auto viene premiata quando

01:08.370 --> 01:13.370
raggiunge una certa destinazione

01:13.890 --> 01:16.080
e penalizzata

01:16.080 --> 01:23.070
se si allontana dalla destinazione o se incontra

01:23.070 --> 01:28.070
degli ostacoli. Ok, ora siamo più avidi.

01:28.650 --> 01:29.760
Volevo solo chiedere qualche

01:29.760 --> 01:31.530
consiglio su come costruire un modello di apprendimento

01:31.530 --> 01:34.110
per rinforzo per l'auto a guida autonoma, ma in realtà chiediamo di costruirlo

01:34.110 --> 01:35.490
direttamente.

01:35.490 --> 01:38.700
Perché no?

01:38.700 --> 01:39.533
Vediamo di cosa è capace ChatGPT.

01:39.533 --> 01:41.730
Quindi chiederò: "Puoi

01:41.730 --> 01:44.650
scrivermi un codice Python utilizzando

01:45.750 --> 01:49.230
le migliori librerie per costruire un

01:49.230 --> 01:53.580
modello di apprendimento per rinforzo che implementi

01:53.580 --> 02:01.770
l'intelligenza artificiale all'interno dell'auto a guida autonoma?

02:01.770 --> 02:01.770
Va

02:01.770 --> 02:06.750
bene, è un po' avido chiederlo, ma non si sa mai.

02:08.010 --> 02:09.870
ChatGPT potrebbe darci esattamente quello che vogliamo.

02:09.870 --> 02:11.160
Quindi proviamo e se

02:11.160 --> 02:14.010
incontra qualche problema, lo aiuteremo.

02:14.010 --> 02:16.500
Ok, premiamo Invio ed eccoci al punto di partenza.

02:16.500 --> 02:17.340
Certo, ok, è di nuovo un ottimo inizio.

02:17.340 --> 02:20.670
"Posso aiutarvi a iniziare a implementare un modello di apprendimento

02:20.670 --> 02:22.477
per rinforzo per la vostra auto a guida

02:22.477 --> 02:24.180
autonoma in Python. Incredibile.

02:24.180 --> 02:25.230
"Ecco un po' di codice che dimostra

02:25.230 --> 02:26.700
come si può usare la libreria OpenAI Gym. Fantastico.

02:26.700 --> 02:27.533
"Per addestrare un modello

02:27.533 --> 02:29.730
di apprendimento per rinforzo per la vostra auto a guida autonoma. Ok, è davvero incredibile, non mi aspettavo che ChatGPT lo facesse

02:29.730 --> 02:30.960
così facilmente e ha senso quello che

02:30.960 --> 02:31.793
sta facendo ora.

02:31.793 --> 02:33.180
Inizializza la tabella Q, il numero

02:33.180 --> 02:34.920
di stati, il numero di azioni, il tasso di apprendimento

02:34.920 --> 02:36.330
inizializzato a 0. 1, un fattore

02:36.330 --> 02:40.050
di sconto a 0. 95.

02:40.050 --> 02:43.230
Questo è davvero incredibile, sono in soggezione.

02:43.230 --> 02:45.600
Il tasso di esplorazione a 0. 5, il numero massimo di episodi a 1.000,

02:45.600 --> 02:47.670
il numero massimo di passi per episodio

02:47.670 --> 02:49.920
a 100.

02:49.920 --> 02:51.660
Poi addestra il modello di apprendimento Q, sorprendente.

02:51.660 --> 02:54.270
Lo sfiderò allora a implementare un modello più avanzato

02:54.270 --> 02:55.743
come il modello di

02:56.610 --> 02:58.950
apprendimento profondo Q, o l'A3C, ma vediamo.

02:58.950 --> 03:01.950
Implementa tutto da zero con il ciclo For.

03:01.950 --> 03:04.770
Inizia scegliendo un'azione, poi implementa

03:04.770 --> 03:07.140
la fase in cui l'intelligenza artificiale

03:07.140 --> 03:09.810
compie l'azione, aggiorna la tabella Q e imposta

03:09.810 --> 03:12.720
lo stato al giorno successivo.

03:12.720 --> 03:16.380
Questo è davvero il processo di apprendimento per rinforzo, il processo di

03:16.380 --> 03:18.030
apprendimento Q, è incredibile.

03:18.030 --> 03:21.690
Poi implementa anche il modo di testare il modello

03:21.690 --> 03:25.410
di apprendimento Q e infine chiude l'ambiente.

03:25.410 --> 03:26.243
Wow, è stato davvero incredibile.

03:26.243 --> 03:28.260
Ok, non mi aspettavo tanto.

03:28.260 --> 03:30.510
Quindi, visto che l'ha fatto così facilmente,

03:30.510 --> 03:33.450
sfidiamolo ancora di più, ancora più duramente.

03:33.450 --> 03:36.960
Quindi, per prima cosa, diciamo, ovviamente, "Grazie

03:36.960 --> 03:39.780
mille, è stato davvero utile".

03:39.780 --> 03:41.430
Tuttavia, so

03:41.430 --> 03:43.080
già come implementare

03:43.080 --> 03:46.470
il Q-learning.

03:46.470 --> 03:48.247
Potreste quindi

03:48.247 --> 03:56.040
fare lo stesso con un modello di apprendimento

03:56.040 --> 03:59.700
per rinforzo più avanzato come, ad

03:59.700 --> 04:04.260
esempio, il deep Q-learning. O meglio ancora, siamo super avidi.

04:04.260 --> 04:06.210
"Un modello di apprendimento per rinforzo allo stato dell'arte. Ok, siete pronti?

04:06.210 --> 04:09.030
Eccoci qua.

04:09.030 --> 04:11.280
E: "Certamente. Lui dice sempre: "Certamente. È incredibile.

04:11.280 --> 04:16.280
"Ecco un po' di codice che dimostra come sia possibile utilizzare

04:18.720 --> 04:21.990
la libreria OpenAI baselines per addestrare

04:21.990 --> 04:25.297
un modello di apprendimento Q profondo,

04:25.297 --> 04:30.297
DQN, per la propria auto a guida autonoma. E ci risiamo.

04:32.340 --> 04:33.420
Ci fornisce il codice.

04:33.420 --> 04:34.980
È davvero incredibile.

04:34.980 --> 04:36.420
Bene, quindi sì, ora utilizza la libreria Wrap DeepMind dalla

04:36.420 --> 04:37.800
libreria comune Atari della linea di base e implementa

04:37.800 --> 04:38.633
nuovamente l'IA con il modello di

04:38.633 --> 04:39.870
apprendimento profondo Q questa volta.

04:39.870 --> 04:42.180
È davvero, davvero incredibile.

04:42.180 --> 04:44.760
"Questo codice utilizza l'algoritmo DQN per addestrare un modello di apprendimento profondo

04:44.760 --> 04:45.900
Q per l'auto a guida autonoma.

04:45.900 --> 04:47.310
Il modello imparerà a intraprendere l'azione

04:47.310 --> 04:49.140
migliore in ogni stato per massimizzare la ricompensa.

04:49.140 --> 04:50.820
In alternativa, se si desidera

04:50.820 --> 04:55.820
utilizzare un modello di apprendimento per rinforzo più avanzato, è possibile utilizzare

04:57.300 --> 05:01.260
la libreria OpenAI Spinning Up, che fornisce implementazioni di algoritmi

05:01.260 --> 05:05.040
di apprendimento per rinforzo all'avanguardia.

05:05.040 --> 05:07.117
Ecco un codice che dimostra come sia possibile utilizzare

05:07.117 --> 05:09.450
la libreria Spinning Up per addestrare un modello di ottimizzazione

05:09.450 --> 05:12.120
delle politiche prossimali, PPO. In effetti, si tratta di un ottimo modello.

05:12.120 --> 05:15.450
"Per la vostra auto a guida autonoma. Ed ecco che viene riproposto il modello

05:15.450 --> 05:17.430
con l'intero codice.

05:17.430 --> 05:20.460
Wow, che rivoluzione questa ChatGPT.

05:20.460 --> 05:21.930
Davvero, sono davvero impressionato.

05:21.930 --> 05:24.450
Bene, ecco fatto, avete il codice.

05:24.450 --> 05:26.790
"Questo codice utilizza l'algoritmo PPO per addestrare

05:26.790 --> 05:28.380
un modello di apprendimento per

05:28.380 --> 05:30.960
rinforzo per l'auto a guida autonoma.

05:30.960 --> 05:32.250
Il modello imparerà a compiere azioni

05:32.250 --> 05:34.950
per massimizzare la somma attesa delle ricompense scontate.

05:34.950 --> 05:36.097
Spero che questo sia d'aiuto.

05:36.097 --> 05:37.290
Fatemi sapere se avete domande

05:37.290 --> 05:39.690
o se desiderate ulteriore assistenza. Beh, nemmeno io mi aspettavo tanto, quindi

05:39.690 --> 05:40.950
sono impressionato proprio

05:40.950 --> 05:44.430
come te, che fai tutto questo nello stesso momento.

05:44.430 --> 05:47.220
Quindi diremo: "Un grande grazie, è stato fantastico". E fatto.

05:47.220 --> 05:49.357
Grazie ancora per aver seguito questo caso d'uso

05:49.357 --> 05:51.210
della scienza dei dati con ChatGPT.

05:51.210 --> 05:52.530
Passiamo ora al prossimo.

05:52.530 --> 05:53.940
E fino ad allora, godetevi l'apprendimento automatico.
