WEBVTT

00:00.090 --> 00:00.923
Instructeur : Bonjour,

00:00.923 --> 00:03.870
mes amis, et bienvenue dans ce nouveau cas d'utilisation de la science des

00:03.870 --> 00:07.560
données avec ChatGPT, qui portera cette fois sur l'apprentissage par renforcement.

00:07.560 --> 00:09.420
Nous allons donc dire à ChatGPT

00:09.420 --> 00:13.260
que nous avons programmé une voiture virtuelle à conduite autonome

00:13.260 --> 00:14.730
sans aucune IA.

00:14.730 --> 00:19.020
Nous venons donc de mettre en œuvre sa capacité à avancer, à tourner

00:19.020 --> 00:21.300
à gauche, à droite et à s'arrêter.

00:21.300 --> 00:25.050
Nous allons dire que cette voiture autonome est récompensée si elle

00:25.050 --> 00:27.540
parvient à atteindre une certaine destination,

00:27.540 --> 00:30.420
et pénalisée si elle s'éloigne de cette destination

00:30.420 --> 00:33.360
ou si elle rencontre des obstacles.

00:33.360 --> 00:35.460
D'accord, et ensuite nous allons demander à

00:35.460 --> 00:37.680
ChatGPT quel modèle d'IA devrait être mis en œuvre

00:37.680 --> 00:40.020
pour la voiture auto-conduite et comment.

00:40.020 --> 00:40.853
D'accord ?

00:40.853 --> 00:41.686
C'est ce que nous allons faire.

00:41.686 --> 00:43.530
Je vais ouvrir un nouveau chat ici.

00:43.530 --> 00:45.637
Et à l'intérieur, nous

00:45.637 --> 00:49.110
dirons exactement : "J'ai programmé

00:49.110 --> 00:53.550
une voiture virtuelle autopilotée dont

00:53.550 --> 00:57.000
les actions sont d'avancer, de

00:57.000 --> 01:01.320
tourner à gauche, de tourner à droite et

01:01.320 --> 01:04.710
de s'arrêter.

01:04.710 --> 01:08.370
Cette voiture est récompensée

01:08.370 --> 01:16.080
lorsqu'elle atteint une certaine destination, et pénalisée

01:16.080 --> 01:23.070
si elle s'éloigne de cette destination ou si elle rencontre

01:23.070 --> 01:28.070
des obstacles. Bon, maintenant, soyons plus gourmands.

01:28.650 --> 01:29.760
Je voulais juste demander quelques

01:29.760 --> 01:31.530
recommandations sur la manière de construire un modèle

01:31.530 --> 01:34.110
d'apprentissage par renforcement pour la voiture auto-conduite, mais demandons

01:34.110 --> 01:35.490
en fait de le construire directement.

01:35.490 --> 01:38.700
Pourquoi pas ?

01:38.700 --> 01:39.533
Voyons ce dont ChatGPT est capable.

01:39.533 --> 01:41.730
Je vais donc demander : "Pouvez-vous

01:41.730 --> 01:44.650
m'écrire un code Python utilisant

01:45.750 --> 01:49.230
les meilleures bibliothèques pour construire

01:49.230 --> 01:53.580
un modèle d'apprentissage par renforcement qui met

01:53.580 --> 01:58.580
en œuvre l'IA à l'intérieur de cette voiture autopilotée

01:59.340 --> 02:01.770
? D'accord, c'est un peu gourmand

02:01.770 --> 02:06.750
de demander cela, mais on ne sait jamais.

02:08.010 --> 02:09.870
ChatGPT pourrait nous donner exactement ce que nous voulons.

02:09.870 --> 02:11.160
Essayons donc et en

02:11.160 --> 02:14.010
cas de problème, nous l'aiderons.

02:14.010 --> 02:16.500
D'accord, appuyons sur Entrée et c'est parti.

02:16.500 --> 02:17.340
Bien sûr, d'accord, c'est un bon début.

02:17.340 --> 02:20.670
"Je peux vous aider à mettre en œuvre un modèle d'apprentissage

02:20.670 --> 02:22.477
par renforcement pour votre voiture

02:22.477 --> 02:24.180
autonome en Python. Incroyable.

02:24.180 --> 02:25.230
"Voici un code qui démontre comment

02:25.230 --> 02:26.700
vous pouvez utiliser la bibliothèque OpenAI Gym. Génial.

02:26.700 --> 02:27.533
"Pour former un modèle d'apprentissage

02:27.533 --> 02:29.730
par renforcement pour votre voiture auto-conduite. Je ne m'attendais pas à ce que ChatGPT le fasse si facilement,

02:29.730 --> 02:30.960
et ce qu'il fait maintenant est tout

02:30.960 --> 02:31.793
à fait logique.

02:31.793 --> 02:33.180
Il initialise la table Q, le nombre

02:33.180 --> 02:34.920
d'états, le nombre d'actions, un taux d'apprentissage

02:34.920 --> 02:36.330
initialisé à 0. 1, un facteur

02:36.330 --> 02:40.050
d'actualisation à 0. 95.

02:40.050 --> 02:43.230
C'est vraiment incroyable, je suis en admiration.

02:43.230 --> 02:45.600
Le taux d'exploration est fixé à 0. 5, le nombre maximum d'épisodes est de 1 000,

02:45.600 --> 02:47.670
le nombre maximum d'étapes par épisode

02:47.670 --> 02:49.920
est de 100.

02:49.920 --> 02:51.660
Il entraîne ensuite le modèle d'apprentissage Q, ce qui est étonnant.

02:51.660 --> 02:54.270
Je vais donc le mettre au défi de mettre en œuvre un modèle plus avancé,

02:54.270 --> 02:55.743
comme le modèle d'apprentissage

02:56.610 --> 02:58.950
Q profond, ou l'A3C, mais voyons voir.

02:58.950 --> 03:01.950
Il met tout en œuvre à partir de zéro avec la boucle For.

03:01.950 --> 03:04.770
Il commence par choisir une action, puis il

03:04.770 --> 03:07.140
met en œuvre l'étape au cours de laquelle

03:07.140 --> 03:09.810
l'IA effectue l'action, met à jour la table

03:09.810 --> 03:12.720
Q et fixe l'état au jour suivant.

03:12.720 --> 03:16.380
C'est vraiment le processus d'apprentissage par renforcement, le processus d'apprentissage

03:16.380 --> 03:18.030
Q, c'est incroyable.

03:18.030 --> 03:21.690
Ensuite, il met en œuvre la manière de tester le modèle d'apprentissage

03:21.690 --> 03:25.410
Q, et enfin, il ferme l'environnement.

03:25.410 --> 03:26.243
Wow, c'était vraiment incroyable.

03:26.243 --> 03:28.260
D'accord, je n'en attendais pas tant.

03:28.260 --> 03:30.510
Alors, puisqu'il l'a fait si facilement,

03:30.510 --> 03:33.450
défions-le encore plus, encore plus fort.

03:33.450 --> 03:36.960
Tout d'abord, disons, bien sûr, "Merci beaucoup,

03:36.960 --> 03:39.780
cela nous a beaucoup aidés".

03:39.780 --> 03:41.430
Cependant, je sais

03:41.430 --> 03:43.080
déjà comment mettre

03:43.080 --> 03:46.470
en œuvre le Q-learning.

03:46.470 --> 03:48.247
Pourriez-vous donc

03:48.247 --> 03:52.593
faire la même chose avec un modèle d'apprentissage

03:54.690 --> 03:56.040
par renforcement

03:56.040 --> 03:59.700
plus avancé comme, par exemple, l'apprentissage

03:59.700 --> 04:04.260
Q profond ? Ou mieux encore, soyons très gourmands.

04:04.260 --> 04:06.210
"Un modèle d'apprentissage par renforcement de l'état de l'art. D'accord, vous êtes prêts ?

04:06.210 --> 04:09.030
Nous y voilà.

04:09.030 --> 04:11.280
Et "Certainement". Il répond toujours : "Certainement. C'est incroyable.

04:11.280 --> 04:16.280
"Voici un code qui démontre comment vous pouvez utiliser

04:18.720 --> 04:21.990
la bibliothèque OpenAI baselines pour

04:21.990 --> 04:25.297
former un modèle d'apprentissage Q profond,

04:25.297 --> 04:30.297
DQN, pour votre voiture auto-conduite. Et c'est reparti.

04:32.340 --> 04:33.420
Il nous donne le code.

04:33.420 --> 04:34.980
C'est vraiment étonnant.

04:34.980 --> 04:36.420
D'accord, donc oui, il utilise maintenant la bibliothèque Wrap DeepMind

04:36.420 --> 04:37.800
à partir de la bibliothèque Atari commune de la ligne de base, et

04:37.800 --> 04:38.633
il met en œuvre l'IA à nouveau avec le modèle

04:38.633 --> 04:39.870
d'apprentissage profond Q cette fois-ci.

04:39.870 --> 04:42.180
C'est vraiment, vraiment étonnant.

04:42.180 --> 04:44.760
"Ce code utilise l'algorithme DQN pour former un modèle d'apprentissage Q profond

04:44.760 --> 04:45.900
pour votre voiture auto-conduite.

04:45.900 --> 04:47.310
Le modèle apprendra à prendre la meilleure

04:47.310 --> 04:49.140
action à chaque état afin de maximiser la récompense.

04:49.140 --> 04:50.820
Si vous souhaitez utiliser un

04:50.820 --> 04:55.820
modèle d'apprentissage par renforcement plus avancé, vous pouvez utiliser la bibliothèque

04:57.300 --> 05:01.260
OpenAI Spinning Up, qui fournit des implémentations d'algorithmes

05:01.260 --> 05:03.270
d'apprentissage par renforcement

05:03.270 --> 05:05.040
de pointe.

05:05.040 --> 05:07.117
Voici un code qui montre comment vous pouvez utiliser

05:07.117 --> 05:09.450
la bibliothèque Spinning Up pour former un modèle

05:09.450 --> 05:12.120
d'optimisation de politique proximale (PPO). C'est en effet un excellent modèle.

05:12.120 --> 05:15.450
"Pour votre voiture auto-conduite. Et voilà, le modèle est à nouveau disponible

05:15.450 --> 05:17.430
avec l'ensemble du code.

05:17.430 --> 05:20.460
Wow, quelle révolution, ce ChatGPT.

05:20.460 --> 05:21.930
Sérieusement, je suis vraiment impressionné.

05:21.930 --> 05:24.450
Voilà, vous avez le code.

05:24.450 --> 05:26.790
"Ce code utilise l'algorithme PPO pour former

05:26.790 --> 05:28.380
un modèle d'apprentissage par renforcement

05:28.380 --> 05:30.960
pour votre voiture auto-conduite.

05:30.960 --> 05:32.250
Le modèle apprendra à agir de manière

05:32.250 --> 05:34.950
à maximiser la somme attendue des récompenses actualisées.

05:34.950 --> 05:36.097
J'espère que cela vous aidera.

05:36.097 --> 05:37.290
N'hésitez pas à me contacter si vous

05:37.290 --> 05:39.690
avez des questions ou si vous souhaitez obtenir de l'aide. Même moi, je ne m'attendais pas à autant, alors

05:39.690 --> 05:40.950
je suis impressionné, tout

05:40.950 --> 05:44.430
comme vous, par le fait de faire tout cela en même temps.

05:44.430 --> 05:47.220
Nous allons donc dire : "Un grand merci, c'était formidable. Et c'est fait.

05:47.220 --> 05:49.357
Merci encore d'avoir regardé ce cas d'utilisation

05:49.357 --> 05:51.210
de la science des données avec ChatGPT.

05:51.210 --> 05:52.530
Passons maintenant au suivant.

05:52.530 --> 05:53.940
D'ici là, profitez de l'apprentissage automatique.
