WEBVTT

00:00.090 --> 00:00.923
Instructor: Hola,

00:00.923 --> 00:03.870
amigos, y bienvenidos a este nuevo caso de uso de la ciencia de datos

00:03.870 --> 00:07.560
con ChatGPT, que esta vez versará sobre el aprendizaje por refuerzo.

00:07.560 --> 00:09.420
Así que vamos a decirle a ChatGPT

00:09.420 --> 00:13.260
ahora mismo que hemos programado un coche virtual autoconducido

00:13.260 --> 00:14.730
sin ninguna IA todavía.

00:14.730 --> 00:19.020
Así que acabamos de implementar su capacidad para avanzar, girar a la izquierda,

00:19.020 --> 00:21.300
girar a la derecha y detenerse.

00:21.300 --> 00:25.050
Y vamos a decir que este coche autoconducido es recompensado

00:25.050 --> 00:27.540
si consigue llegar a un determinado destino,

00:27.540 --> 00:30.420
y penalizado si se aleja de este destino, o si

00:30.420 --> 00:33.360
se topa con algunos obstáculos.

00:33.360 --> 00:35.460
Vale, y luego vamos a preguntar a ChatGPT

00:35.460 --> 00:37.680
qué modelo de IA debería implementarse

00:37.680 --> 00:40.020
para el coche autoconducido y cómo.

00:40.020 --> 00:40.853
¿De acuerdo?

00:40.853 --> 00:41.686
Así que hagamos esto.

00:41.686 --> 00:43.530
Voy a abrir un nuevo chat aquí.

00:43.530 --> 00:45.637
Y dentro vamos a decir

00:45.637 --> 00:49.110
exactamente: "Oye, he programado

00:49.110 --> 00:53.550
un coche virtual autoconducido cuyas

00:53.550 --> 00:57.000
acciones son avanzar, girar

00:57.000 --> 01:01.320
a la izquierda, girar a la derecha y

01:01.320 --> 01:04.710
parar.

01:04.710 --> 01:08.370
Y entonces este coche es recompensado

01:08.370 --> 01:16.080
una vez que llega a un determinado destino, y penalizado

01:16.080 --> 01:19.980
si se aleja más de este destino,

01:19.980 --> 01:23.070
o si tropieza con algunos

01:23.070 --> 01:28.070
obstáculos. Bien, ahora, seamos más codiciosos.

01:28.650 --> 01:29.760
Sólo quería pedirte algunas recomendaciones

01:29.760 --> 01:31.530
sobre cómo construir un modelo de aprendizaje por

01:31.530 --> 01:34.110
refuerzo para el coche autoconducido, pero vamos a pedirte que lo construyas

01:34.110 --> 01:35.490
directamente.

01:35.490 --> 01:38.700
¿Por qué no?

01:38.700 --> 01:39.533
Veamos de qué es capaz ChatGPT.

01:39.533 --> 01:41.730
Así que voy a preguntar:

01:41.730 --> 01:44.650
"¿Puedes escribirme un código

01:45.750 --> 01:49.230
Python usando las mejores librerías

01:49.230 --> 01:53.580
para construir un modelo de aprendizaje por

01:53.580 --> 02:01.770
refuerzo que implemente la IA dentro de ese coche autoconducido?".

02:01.770 --> 02:01.770
De

02:01.770 --> 02:06.750
acuerdo, es un poco codicioso preguntar esto, pero nunca se sabe.

02:08.010 --> 02:09.870
ChatGPT podría darnos exactamente lo que queremos.

02:09.870 --> 02:11.160
Así que vamos a intentarlo

02:11.160 --> 02:14.010
y si se encuentra con algún problema, le ayudaremos.

02:14.010 --> 02:16.500
Bien, pulsemos Enter y allá vamos.

02:16.500 --> 02:17.340
Claro, vale, eso es un gran comienzo de nuevo.

02:17.340 --> 02:20.670
"Puedo ayudarte a empezar a implementar un modelo de aprendizaje

02:20.670 --> 02:22.477
por refuerzo para tu coche autoconducido

02:22.477 --> 02:24.180
en Python. Increíble.

02:24.180 --> 02:25.230
"Aquí hay algo de código que demuestra

02:25.230 --> 02:26.700
cómo se puede utilizar, OpenAI Gym biblioteca. Impresionante.

02:26.700 --> 02:27.533
"Entrenar un modelo de

02:27.533 --> 02:29.730
aprendizaje por refuerzo para tu coche autoconducido. Bueno, eso es increíble en realidad, no me lo esperaba, ChatGPT hacerlo

02:29.730 --> 02:30.960
tan fácilmente, y tiene todo el sentido lo

02:30.960 --> 02:31.793
que está haciendo ahora.

02:31.793 --> 02:33.180
Está inicializando, la tabla Q, el número

02:33.180 --> 02:34.920
de estados, el número de acciones, una tasa de

02:34.920 --> 02:36.330
aprendizaje inicializada a 0. 1, un factor

02:36.330 --> 02:40.050
de descuento a 0. 95.

02:40.050 --> 02:43.230
Esto es realmente asombroso, estoy asombrado.

02:43.230 --> 02:45.600
La tasa de exploración a 0. 5, el número máximo de episodios a 1.000,

02:45.600 --> 02:47.670
el número máximo de pasos por episodios

02:47.670 --> 02:49.920
a 100.

02:49.920 --> 02:51.660
Luego entrena el modelo Q-learning, increíble.

02:51.660 --> 02:54.270
Le voy a retar entonces a que implemente un modelo más avanzado

02:54.270 --> 02:55.743
como el modelo de

02:56.610 --> 02:58.950
aprendizaje Q profundo, o el A3C pero vamos a ver.

02:58.950 --> 03:01.950
Implementa todo desde cero con el bucle For.

03:01.950 --> 03:04.770
Empieza eligiendo una acción, luego ejecuta

03:04.770 --> 03:07.140
el paso en el que la IA realiza la acción,

03:07.140 --> 03:09.810
luego actualiza la tabla Q y luego establece

03:09.810 --> 03:12.720
el estado al día siguiente.

03:12.720 --> 03:16.380
Esto es realmente el proceso de aprendizaje por refuerzo, el proceso de aprendizaje

03:16.380 --> 03:18.030
Q, esto es increíble.

03:18.030 --> 03:21.690
Luego incluso implementa cómo probar el modelo

03:21.690 --> 03:25.410
Q-learning, y finalmente cierra el entorno.

03:25.410 --> 03:26.243
Wow, eso fue realmente asombroso.

03:26.243 --> 03:28.260
Vale, no esperaba tanto.

03:28.260 --> 03:30.510
Así que ya que lo hizo tan fácilmente,

03:30.510 --> 03:33.450
vamos a desafiarlo aún más, aún más difícil.

03:33.450 --> 03:36.960
Así que primero digamos, por supuesto, "Muchas

03:36.960 --> 03:39.780
gracias, ha sido muy útil.

03:39.780 --> 03:41.430
Sin embargo,

03:41.430 --> 03:43.080
ya sé cómo aplicar

03:43.080 --> 03:46.470
el Q-learning.

03:46.470 --> 03:48.247
Así que podrías

03:48.247 --> 03:52.593
hacer lo mismo con un modelo de aprendizaje

03:54.690 --> 03:56.040
por refuerzo

03:56.040 --> 03:59.700
más avanzado como, por ejemplo,

03:59.700 --> 04:04.260
el aprendizaje Q profundo. O mejor aún, seamos súper codiciosos.

04:04.260 --> 04:06.210
"Un modelo de aprendizaje por refuerzo de última generación. Bien, ¿listos para esto?

04:06.210 --> 04:09.030
Allá vamos.

04:09.030 --> 04:11.280
Y, "Ciertamente. Siempre dice: "Desde luego. Es asombroso.

04:11.280 --> 04:16.280
"Aquí hay algo de código que demuestra cómo se puede utilizar

04:18.720 --> 04:21.990
la biblioteca de líneas de base OpenAI

04:21.990 --> 04:25.297
para entrenar un modelo profundo de aprendizaje

04:25.297 --> 04:30.297
Q, DQN, para su coche de auto-conducción. Y ya estamos otra vez.

04:32.340 --> 04:33.420
Nos da el código.

04:33.420 --> 04:34.980
Es realmente asombroso.

04:34.980 --> 04:36.420
Muy bien, entonces sí, utiliza ahora la biblioteca Wrap

04:36.420 --> 04:37.800
DeepMind de la biblioteca Atari común de la línea de base,

04:37.800 --> 04:38.633
e implementa la IA de nuevo con el

04:38.633 --> 04:39.870
modelo Q-learning profundo esta vez.

04:39.870 --> 04:42.180
Es realmente asombroso.

04:42.180 --> 04:44.760
"Este código utiliza el algoritmo DQN para entrenar un modelo profundo de aprendizaje

04:44.760 --> 04:45.900
Q para tu coche autoconducido.

04:45.900 --> 04:47.310
El modelo aprenderá a tomar la mejor acción

04:47.310 --> 04:49.140
en cada estado para maximizar la recompensa.

04:49.140 --> 04:50.820
Alternativamente, si desea

04:50.820 --> 04:55.820
utilizar un modelo de aprendizaje por refuerzo más avanzado, puede utilizar la biblioteca

04:57.300 --> 05:01.260
OpenAI Spinning Up, que proporciona implementaciones de algoritmos

05:01.260 --> 05:03.270
de aprendizaje por refuerzo de última

05:03.270 --> 05:05.040
generación.

05:05.040 --> 05:07.117
A continuación se muestra un código que demuestra

05:07.117 --> 05:09.450
cómo se puede utilizar la biblioteca Spinning Up para entrenar

05:09.450 --> 05:12.120
un modelo de optimización de política proximal, PPO. Efectivamente, es un gran modelo.

05:12.120 --> 05:15.450
"Para tu coche autoconducido. Y aquí tienes, te vuelve a dar el modelo

05:15.450 --> 05:17.430
con todo el código.

05:17.430 --> 05:20.460
Vaya, qué revolución, este ChatGPT.

05:20.460 --> 05:21.930
En serio, estoy realmente impresionado.

05:21.930 --> 05:24.450
Bien, y ahí lo tienes, tienes el código.

05:24.450 --> 05:26.790
"Este código utiliza el algoritmo PPO para entrenar

05:26.790 --> 05:28.380
un modelo de aprendizaje por refuerzo

05:28.380 --> 05:30.960
para tu coche autoconducido.

05:30.960 --> 05:32.250
El modelo aprenderá a realizar acciones

05:32.250 --> 05:34.950
para maximizar la suma esperada de recompensas descontadas.

05:34.950 --> 05:36.097
Espero que esto ayude.

05:36.097 --> 05:37.290
Hágame saber si tiene

05:37.290 --> 05:39.690
alguna pregunta o si desea más ayuda. Bueno, ni siquiera yo esperaba tanto, así

05:39.690 --> 05:40.950
que estoy impresionado

05:40.950 --> 05:44.430
igual que tú, al mismo tiempo haciendo todo esto.

05:44.430 --> 05:47.220
Así que vamos a decir: "Muchas gracias, ha sido increíble. Y listo.

05:47.220 --> 05:49.357
Gracias de nuevo por ver este caso de uso

05:49.357 --> 05:51.210
de ciencia de datos con ChatGPT.

05:51.210 --> 05:52.530
Pasemos ahora al siguiente.

05:52.530 --> 05:53.940
Y hasta entonces, disfruta del aprendizaje automático.
