WEBVTT

00:00.090 --> 00:00.923
Instrutor: Olá,

00:00.923 --> 00:03.870
amigos, e bem-vindos a este novo caso de uso de ciência de dados

00:03.870 --> 00:07.560
com o ChatGPT, que desta vez será sobre aprendizagem por reforço.

00:07.560 --> 00:09.420
Portanto, vamos dizer ao ChatGPT

00:09.420 --> 00:13.260
agora mesmo que programamos um carro virtual autônomo sem nenhuma

00:13.260 --> 00:14.730
IA ainda.

00:14.730 --> 00:19.020
Portanto, acabamos de implementar sua capacidade de avançar, virar

00:19.020 --> 00:21.300
à esquerda, virar à direita e parar.

00:21.300 --> 00:25.050
E vamos dizer que esse carro autônomo é recompensado se

00:25.050 --> 00:27.540
conseguir chegar a um determinado destino,

00:27.540 --> 00:30.420
e penalizado se se afastar desse destino ou

00:30.420 --> 00:33.360
se encontrar alguns obstáculos.

00:33.360 --> 00:35.460
Ok, e depois vamos perguntar ao ChatGPT

00:35.460 --> 00:37.680
qual modelo de IA deve ser implementado

00:37.680 --> 00:40.020
para o carro autônomo e como.

00:40.020 --> 00:40.853
Está bem?

00:40.853 --> 00:41.686
Então, vamos fazer isso.

00:41.686 --> 00:43.530
Vou abrir um novo bate-papo aqui.

00:43.530 --> 00:45.637
E, lá dentro, vamos

00:45.637 --> 00:49.110
dizer exatamente: "Ei, programei

00:49.110 --> 00:53.550
um carro virtual autônomo com as ações

00:53.550 --> 00:57.000
de seguir em frente, virar

00:57.000 --> 01:04.710
à esquerda, virar à direita e parar.

01:04.710 --> 01:08.370
Em seguida, esse carro é recompensado

01:08.370 --> 01:16.080
quando chega a um determinado destino e penalizado se

01:16.080 --> 01:19.980
se afastar mais desse destino

01:19.980 --> 01:23.070
ou se encontrar alguns

01:23.070 --> 01:28.070
obstáculos. Ok, agora vamos ser mais gananciosos.

01:28.650 --> 01:29.760
Eu só queria pedir algumas recomendações

01:29.760 --> 01:31.530
sobre como criar um modelo de aprendizagem por

01:31.530 --> 01:34.110
reforço para o carro autônomo, mas, na verdade, vamos pedir para criá-lo

01:34.110 --> 01:35.490
diretamente.

01:35.490 --> 01:38.700
Por que não?

01:38.700 --> 01:39.533
Vamos ver do que o ChatGPT é capaz.

01:39.533 --> 01:41.730
Então, vou perguntar:

01:41.730 --> 01:44.650
"Você pode me escrever um código

01:45.750 --> 01:49.230
Python usando as melhores bibliotecas

01:49.230 --> 01:53.580
para criar um modelo de aprendizagem por

01:53.580 --> 02:01.770
reforço que implemente a IA dentro desse carro autônomo?

02:01.770 --> 02:01.770
Tudo

02:01.770 --> 02:06.750
bem, é um pouco ganancioso perguntar isso, mas nunca se sabe.

02:08.010 --> 02:09.870
O ChatGPT pode nos dar exatamente o que queremos.

02:09.870 --> 02:11.160
Portanto, vamos tentar

02:11.160 --> 02:14.010
e, se ele tiver algum problema, nós o ajudaremos.

02:14.010 --> 02:16.500
Ok, então vamos pressionar Enter e vamos lá.

02:16.500 --> 02:17.340
Claro, tudo bem, esse é um ótimo começo novamente.

02:17.340 --> 02:20.670
"Posso ajudá-lo a começar a implementar um modelo de aprendizagem

02:20.670 --> 02:22.477
por reforço para seu carro autônomo

02:22.477 --> 02:24.180
em Python. Incrível.

02:24.180 --> 02:25.230
"Aqui está um código que demonstra

02:25.230 --> 02:26.700
como você pode usar a biblioteca OpenAI Gym. Incrível.

02:26.700 --> 02:27.533
"Para treinar um modelo

02:27.533 --> 02:29.730
de aprendizagem por reforço para seu carro autônomo. Ok, isso é realmente incrível, eu não esperava que o ChatGPT fizesse isso

02:29.730 --> 02:30.960
tão facilmente, e faz todo o sentido o que

02:30.960 --> 02:31.793
ele está fazendo agora.

02:31.793 --> 02:33.180
Ele está inicializando o Q-table, o

02:33.180 --> 02:34.920
número de estados, o número de ações e uma taxa

02:34.920 --> 02:36.330
de aprendizado inicializada em 0. 1, um fator

02:36.330 --> 02:40.050
de desconto para 0. 95.

02:40.050 --> 02:43.230
Isso é realmente incrível, estou maravilhado.

02:43.230 --> 02:45.600
A taxa de exploração para 0. 5, o número máximo de episódios para 1.000,

02:45.600 --> 02:47.670
o número máximo de etapas por episódio

02:47.670 --> 02:49.920
para 100.

02:49.920 --> 02:51.660
Em seguida, ele treina o modelo de aprendizado Q, o que é incrível.

02:51.660 --> 02:54.270
Vou desafiá-lo a implementar um modelo mais avançado,

02:54.270 --> 02:55.743
como o modelo de

02:56.610 --> 02:58.950
aprendizado Q profundo ou o A3C, mas vamos ver.

02:58.950 --> 03:01.950
Ele implementa tudo do zero com o For Loop.

03:01.950 --> 03:04.770
Ele começa escolhendo uma ação, depois

03:04.770 --> 03:07.140
implementa a etapa em que a IA realiza

03:07.140 --> 03:09.810
a ação, atualiza o Q-table e define o

03:09.810 --> 03:12.720
estado para o dia seguinte.

03:12.720 --> 03:16.380
Esse é realmente o processo de aprendizado por reforço, o processo de

03:16.380 --> 03:18.030
aprendizado por Q. É incrível.

03:18.030 --> 03:21.690
Em seguida, ele ainda implementa como testar o modelo

03:21.690 --> 03:25.410
de Q-learning e, por fim, fecha o ambiente.

03:25.410 --> 03:26.243
Uau, isso foi realmente incrível.

03:26.243 --> 03:28.260
Ok, eu não esperava tanto.

03:28.260 --> 03:30.510
Então, já que ele fez isso tão facilmente,

03:30.510 --> 03:33.450
vamos desafiá-lo ainda mais, ainda mais difícil.

03:33.450 --> 03:36.960
Então, primeiro, vamos dizer, é claro, "Muito

03:36.960 --> 03:39.780
obrigado, isso foi muito útil.

03:39.780 --> 03:41.430
No entanto, já

03:41.430 --> 03:43.080
sei como implementar

03:43.080 --> 03:46.470
o Q-learning.

03:46.470 --> 03:48.247
Portanto, você poderia

03:48.247 --> 03:56.040
fazer o mesmo com um modelo de aprendizado

03:56.040 --> 03:59.700
por reforço mais avançado, como, por

03:59.700 --> 04:04.260
exemplo, o Q-learning profundo. Ou, melhor ainda, vamos ser super gananciosos.

04:04.260 --> 04:06.210
"Um modelo de aprendizagem por reforço de última geração. Muito bem, estão prontos para isso?

04:06.210 --> 04:09.030
Aqui vamos nós.

04:09.030 --> 04:11.280
E, "Certamente. Ele sempre diz: "Com certeza. Isso é incrível.

04:11.280 --> 04:16.280
"Aqui está um código que demonstra como você pode usar

04:18.720 --> 04:21.990
a biblioteca de linhas de base da OpenAI

04:21.990 --> 04:25.297
para treinar um modelo de aprendizado

04:25.297 --> 04:30.297
Q profundo, DQN, para seu carro autônomo. E lá vamos nós de novo.

04:32.340 --> 04:33.420
Ele nos fornece o código.

04:33.420 --> 04:34.980
Isso é realmente incrível.

04:34.980 --> 04:36.420
Tudo bem, então sim, ele usa agora a biblioteca Wrap DeepMind

04:36.420 --> 04:37.800
da biblioteca Atari comum da linha de base e implementa

04:37.800 --> 04:38.633
a IA novamente com o modelo de aprendizado

04:38.633 --> 04:39.870
Q profundo desta vez.

04:39.870 --> 04:42.180
Isso é realmente incrível.

04:42.180 --> 04:44.760
"Esse código usa o algoritmo DQN para treinar um modelo de aprendizado Q profundo

04:44.760 --> 04:45.900
para seu carro autônomo.

04:45.900 --> 04:47.310
O modelo aprenderá a tomar a melhor ação

04:47.310 --> 04:49.140
em cada estado para maximizar a recompensa.

04:49.140 --> 04:50.820
Como alternativa, se quiser

04:50.820 --> 04:55.820
usar um modelo de aprendizado por reforço mais avançado, você pode usar a biblioteca

04:57.300 --> 05:01.260
OpenAI Spinning Up, que fornece implementações de algoritmos

05:01.260 --> 05:03.270
de aprendizado por reforço de última

05:03.270 --> 05:05.040
geração.

05:05.040 --> 05:07.117
Aqui está um código que demonstra como você

05:07.117 --> 05:09.450
pode usar a biblioteca Spinning Up para treinar

05:09.450 --> 05:12.120
um modelo de otimização de política proximal, PPO. De fato, esse é um ótimo modelo.

05:12.120 --> 05:15.450
"Para seu carro autônomo. E aqui está, ele fornece o modelo novamente

05:15.450 --> 05:17.430
com o código completo.

05:17.430 --> 05:20.460
Uau, que revolução, esse ChatGPT.

05:20.460 --> 05:21.930
Sério, estou realmente impressionado.

05:21.930 --> 05:24.450
Certo, e aí está, você tem o código.

05:24.450 --> 05:26.790
"Esse código usa o algoritmo PPO para treinar

05:26.790 --> 05:28.380
um modelo de aprendizagem por

05:28.380 --> 05:30.960
reforço para seu carro autônomo.

05:30.960 --> 05:32.250
O modelo aprenderá a realizar ações

05:32.250 --> 05:34.950
para maximizar a soma esperada de recompensas descontadas.

05:34.950 --> 05:36.097
Espero que isso ajude.

05:36.097 --> 05:37.290
Entre em contato comigo se

05:37.290 --> 05:39.690
tiver alguma dúvida ou se quiser mais assistência. Bem, nem eu esperava tanto, por isso estou

05:39.690 --> 05:40.950
impressionado, assim

05:40.950 --> 05:44.430
como você, ao mesmo tempo em que faço tudo isso.

05:44.430 --> 05:47.220
Então, vamos dizer: "Muito obrigado, isso foi incrível. E pronto.

05:47.220 --> 05:49.357
Mais uma vez, obrigado por assistir a esse caso

05:49.357 --> 05:51.210
de uso de ciência de dados com o ChatGPT.

05:51.210 --> 05:52.530
Vamos agora passar para a próxima.

05:52.530 --> 05:53.940
E até lá, aproveite o aprendizado de máquina.
