WEBVTT

00:00.490 --> 00:01.720
Olá a todos e bem-vindos de volta.

00:02.080 --> 00:05.290
Na última palestra, acabamos começando a construir nosso ambiente.

00:05.300 --> 00:13.090
Temos essencialmente uma grade de 11 por 11 aqui que queremos que nosso carteiro itere para resolver nosso desafio.

00:14.020 --> 00:18.430
Queremos agora começar a pensar assim que tivermos a grade.

00:18.430 --> 00:23.860
Também precisamos ter ações para nosso agente e vou excluí-las muito rapidamente.

00:23.860 --> 00:24.940
Não precisamos dessas células.

00:24.940 --> 00:27.670
Eu só queria tê-lo em algum espaçamento.

00:27.790 --> 00:29.440
Apenas facilita a visualização de você.

00:29.440 --> 00:35.290
Dê-me 1/2, deixe-me excluir isso e podemos deixar este aqui.

00:35.950 --> 00:36.280
Então.

00:37.390 --> 00:43.060
Deixei um texto em que temos e queremos definir nossas ações como em cima, baixo e esquerda.

00:43.630 --> 00:45.550
Com Python, é bastante simples.

00:45.550 --> 00:48.010
Podemos construir a lista e definir nossas ações.

00:48.280 --> 00:51.160
Nossas ações serão iguais.

00:52.200 --> 00:55.170
Dois como temos acima à direita, abaixo à esquerda.

00:55.380 --> 00:56.760
Então vamos configurar.

00:57.630 --> 01:01.050
Direita para baixo e esquerda.

01:01.380 --> 01:06.570
Precisamos dar ao nosso agente, desculpe-me, alguma habilidade de manobrar com essas ações através do

01:06.570 --> 01:07.020
labirinto.

01:08.300 --> 01:11.780
Além disso, também temos que começar a definir recompensas.

01:12.110 --> 01:17.990
Agora, é aqui que vai começar a se tornar um pouco mais complicado porque

01:17.990 --> 01:24.920
temos que definir diferentes estados do nosso ambiente, diferentes estados no sentido de que queremos poder atribuir esses

01:24.920 --> 01:31.670
-100 e um negativo a essas etapas ou esses valores de estado para cada quadrado dentro da grade.

01:32.090 --> 01:39.260
Então vemos, para ajudar nosso agente a conhecer cada estado ou localidade em nossa cidade, queremos ter um valor de recompensa.

01:39.260 --> 01:40.700
É assim que nosso agente vai aprender.

01:41.030 --> 01:45.020
Assim, o agente pode começar em qualquer quadrado branco, mas seu objetivo é sempre o mesmo.

01:45.260 --> 01:50.900
Ele quer maximizar suas recompensas totais com Q aprendendo recompensas negativas, sabemos que elas são chamadas

01:50.900 --> 01:51.770
de punições.

01:52.040 --> 01:54.040
Estes são usados para todos os estados, exceto o objetivo.

01:54.050 --> 01:59.840
É assim que vamos estabelecer essa política ótima, que estimula o olhar a identificar o caminho mais

01:59.840 --> 02:02.540
curto para a meta, minimizando suas punições.

02:03.200 --> 02:03.560
Tudo bem.

02:04.460 --> 02:09.830
Além disso, para maximizar as recompensas acumuladas, o agente precisará encontrar o caminho mais curto entre a área de

02:09.830 --> 02:14.510
embalagem do item, nossa Praça Verde, lembre-se, e os outros locais da cidade onde o carteiro

02:14.510 --> 02:16.310
pode percorrer os quadrados brancos.

02:16.730 --> 02:20.420
Os agentes vão aprender a evitar colidir com qualquer um dos limites da cidade.

02:20.420 --> 02:23.050
Esses são os quadrados pretos, como vemos com o -100.

02:23.120 --> 02:24.260
Queremos ficar longe deles.

02:24.470 --> 02:26.480
Eles têm mais de uma punição.

02:26.930 --> 02:32.450
Então, para fazer isso, temos nossa grade, o ambiente que criamos acima com nossas linhas.

02:32.810 --> 02:35.990
Mas também queremos atribuir esses valores a ele.

02:36.410 --> 02:42.020
Então, para fazer isso, vamos tentar pensar em como podemos estabelecer que podemos usar o NumPy e

02:42.020 --> 02:46.880
também podemos começar a defini-lo como -100 para linhas e colunas de ambiente.

02:47.120 --> 02:49.310
Portanto, temos nossas linhas de ambiente e colunas de ambiente.

02:49.580 --> 03:02.540
Então vamos chamar isso de recompensas igual a numpy full e vamos passar em nossas linhas de ambiente, colunas de

03:03.290 --> 03:10.100
ambiente e para definir nossos valores, podemos começar com -100.

03:11.920 --> 03:18.370
Além disso, também queremos definir nossa janela de recompensas para.

03:20.090 --> 03:23.510
Use os índices de zero e cinco.

03:24.260 --> 03:25.640
Igual a 100.

03:26.650 --> 03:28.420
E isso vai fazer sentido em um segundo.

03:28.540 --> 03:30.130
Então, estamos dando uma olhada na nossa Praça Verde.

03:30.160 --> 03:31.280
Nós temos o nosso zero cinco.

03:31.300 --> 03:37.060
Temos nosso Quadrado Verde definido como 100 tomando estes ou este local para definir o valor.

03:37.540 --> 03:41.650
Agora, vou colar o próximo trecho de código para que possamos passar por ele.

03:41.680 --> 03:44.700
Então você não precisa me ver avaliar cada passo porque é um pouco repetitivo.

03:44.710 --> 03:47.440
E agora temos nossos espaços em branco.

03:47.650 --> 03:51.580
Vamos definir nosso conhecimento para nossos pontos de recompensa.

03:52.120 --> 03:57.420
E neste trecho de código, estamos usando um dicionário e definindo cada um de nossos valores dentro de nosso dicionário.

03:57.430 --> 03:58.450
Então nós temos nossos corredores.

03:58.450 --> 04:05.230
Estamos pensando nisso como cada linha individual, e podemos definir com nosso fatiamento, com nosso índice de um

04:05.230 --> 04:06.340
a nove.

04:06.610 --> 04:11.230
E queremos usar uma iteração com nosso loop for para definir esses valores.

04:11.860 --> 04:16.000
Ao fazer isso, você verá se olharmos de um a dez, um, sete e nove.

04:16.180 --> 04:21.280
E usando isso, podemos definir o índice de linha em nosso intervalo de um a dez, no qual

04:21.280 --> 04:23.050
estamos trabalhando em nosso ambiente.

04:23.530 --> 04:25.300
Podemos definir o índice da coluna.

04:26.530 --> 04:33.280
Em nossos corredores de nosso índice de linha com nosso dicionário, nosso índice de linha de recompensas e índice de coluna, podemos

04:33.280 --> 04:34.450
defini-lo como negativo.

04:34.870 --> 04:41.590
Então, o que isso está fazendo é essencialmente, se olharmos para cada específico, se pegarmos um intervalo aqui, por exemplo, nove

04:41.590 --> 04:48.100
por I em nosso intervalo, temos um conjunto negativo em todo o ambiente ou em cada estado dentro do nosso

04:48.100 --> 04:49.030
ambiente .

04:49.570 --> 04:52.410
Para oito, temos três e sete.

04:52.420 --> 04:57.670
Então, se pudermos rolar para cima, podemos ver que em três e sete, estamos configurando um negativo, já que

04:57.670 --> 05:00.130
todos seriam -100 ou configurados para cem negativos.

05:00.370 --> 05:07.180
E com essa iteração, podemos definir essas recompensas ou definir cada estado que estamos definindo em nossos

05:07.180 --> 05:08.590
corredores como negativo.

05:08.860 --> 05:10.390
Isso facilita muito.

05:10.390 --> 05:17.200
Em vez de ter que escrever mais lógica ou talvez funções ou instruções mais detalhadas, podemos iterar e

05:17.200 --> 05:18.640
definir esses valores.

05:18.940 --> 05:23.890
Eu recomendo que você reserve um minuto para explorar o experimento se quiser alterar o ambiente mais

05:23.920 --> 05:24.280
tarde.

05:24.280 --> 05:29.410
Depois de executar esta solução, é uma ótima maneira de ajudar a aprender e reforçar essas políticas.

05:29.410 --> 05:34.990
Mas isso está começando a tomar forma e uma coisa legal que podemos fazer é realmente visualizá-lo.

05:34.990 --> 05:38.380
Então vamos fazer quatro linhas em recompensas.

05:40.050 --> 05:46.620
Imprima a linha e vamos imprimir isso e podemos ver que talvez precise executar novamente essas células.

05:46.620 --> 05:47.400
Me desculpe.

05:47.640 --> 05:50.010
Eu não estava conectado ao notebook trabalhando por aqui.

05:50.280 --> 05:51.210
Dê 1/2.

05:51.210 --> 05:52.260
Vai dar um erro.

05:52.620 --> 05:55.240
Eu preciso voltar e executar novamente as células.

05:55.240 --> 05:56.940
Então deixe-me apenas reexecutar isso muito rapidamente.

05:57.210 --> 05:58.560
Eu quero importar NumPy.

05:58.770 --> 06:01.470
Na verdade, posso apenas esperar minhas desculpas.

06:02.130 --> 06:03.360
Deixe-me passar por este ano.

06:03.690 --> 06:04.830
Eu vou descer.

06:04.830 --> 06:06.780
Queremos executar nosso ambiente.

06:07.170 --> 06:08.550
Queremos executar nossas ações.

06:08.550 --> 06:10.680
Os outros são apenas texto, então não precisamos deles.

06:10.680 --> 06:14.430
Mas eu gosto de ter isso para que vocês possam ter uma referência a isso.

06:14.730 --> 06:18.450
Queremos recompensar pontos e finalmente queremos visualizar isso.

06:18.870 --> 06:25.770
Podemos ver a visualização, a representação numérica real em numpy do nosso ambiente.

06:25.920 --> 06:26.760
Realmente legal.

06:27.030 --> 06:28.860
Assim, montamos nosso ambiente.

06:29.130 --> 06:30.140
Ótimo trabalho.

06:30.150 --> 06:31.620
Espero que vocês estão achando isso útil.

06:31.740 --> 06:36.540
Agora vamos encerrar aqui porque na próxima palestra vamos começar a treinar o modelo.

06:36.810 --> 06:41.910
Então isso foi para definir as ações de nossos agentes, para definir nosso ambiente, para definir nossas recompensas.

06:41.910 --> 06:46.440
Nossa punição ajudará esse agente a estabelecer a política ótima dentro do aprendizado Q.

06:46.680 --> 06:53.310
No geral, temos essa representação visual ou essa imagem construída, e podemos vê-la aqui se

06:53.310 --> 06:54.750
imprimirmos nossa linha.

06:55.970 --> 06:56.510
Incrível.

06:56.900 --> 06:57.290
Tudo bem.

06:57.740 --> 06:58.970
Não vou continuar divagando.

06:58.970 --> 07:00.630
Vamos manter isso aqui na próxima palestra.

07:00.650 --> 07:02.090
Vamos começar a treinar o modelo.

07:02.570 --> 07:03.860
Vejo vocês na próxima palestra.
