WEBVTT

00:01.340 --> 00:02.810
Olá e bem-vindo de volta.

00:03.200 --> 00:10.010
Na última palestra, você viu como usamos nossas funções auxiliares para realmente configurar o núcleo de nossa funcionalidade para

00:10.010 --> 00:11.300
treinar nossos modelos.

00:11.300 --> 00:16.370
Então nós tínhamos nosso estado terminal, nosso local inicial, nossa próxima ação, próximo local e caminho mais

00:16.370 --> 00:21.230
curto realmente define a maioria de como nosso agente ou como nosso ambiente vai funcionar.

00:21.560 --> 00:25.460
A última coisa que temos que fazer é usar nosso treinamento para usar nosso treinamento.

00:25.460 --> 00:31.280
É bastante simples no sentido do que precisamos incluir, mas como fazemos isso é uma história

00:31.280 --> 00:31.670
diferente.

00:32.240 --> 00:36.800
Dito isto, também, se vocês usarem uma abordagem diferente ou quiserem personalizar isso e

00:36.800 --> 00:38.300
experimentar, é altamente recomendável.

00:38.600 --> 00:42.410
Além disso, se você usar uma abordagem diferente e quiser discuti-la, sinta-se à vontade para compartilhar

00:42.410 --> 00:43.520
nas perguntas e respostas.

00:43.730 --> 00:45.410
Mais do que feliz em discutir isso com você.

00:45.410 --> 00:50.480
É uma ótima ideia porque há muitas maneiras de resolver isso e você pode encontrar uma

00:50.480 --> 00:52.190
maneira muito melhor, mais vantajosa.

00:52.190 --> 00:55.520
Poderíamos analisar os prós e os contras novamente, mais do que felizes em discutir isso.

00:55.670 --> 00:56.030
Tudo bem.

00:56.090 --> 00:57.260
Então o que temos que fazer?

00:57.260 --> 00:58.880
Temos que lançar nosso treinamento.

00:59.210 --> 00:59.990
Para nosso treinamento.

00:59.990 --> 01:01.490
Queremos usar o Epsilon.

01:01.490 --> 01:08.930
Então, basicamente, a porcentagem que vamos tomar para a melhor ação para R em vez de uma ação aleatória.

01:08.930 --> 01:15.650
Então vamos definir nosso epsilon e vamos defini-lo para 0. 9 e faremos algo semelhante com nossos valores para nosso fator

01:15.650 --> 01:17.900
de desconto e nossa taxa de aprendizado.

01:18.140 --> 01:23.030
Então vamos fazer o fator de desconto igual a 0. 9.

01:23.690 --> 01:29.480
Vamos também pegar nossa taxa de aprendizado e defini-la como igual a 0. 9.

01:29.900 --> 01:33.620
Essa será a taxa que nosso agente aprenderá ou deveria aprender.

01:33.920 --> 01:39.140
E também queremos pegar o número de episódios de treinamento, vamos chamá-lo, e episódios de treinamento.

01:39.290 --> 01:41.300
Então nós temos uma série de episódios de treinamento.

01:41.300 --> 01:42.500
Vamos definir para mil.

01:42.500 --> 01:46.400
Quantas vezes vai treinar ou em quantos episódios isso vai treinar?

01:48.050 --> 01:48.500
Impressionante.

01:49.130 --> 01:52.870
Agora, essencialmente, o que queremos fazer é percorrer cada episódio.

01:52.880 --> 02:00.060
Queremos pegar o alcance do nosso número de episódios de treinamento e definir nosso basicamente nosso epsilon.

02:00.080 --> 02:01.760
Queremos encontrar nossa diferença temporal.

02:01.760 --> 02:04.610
Para definir isso, precisamos examinar alguns valores Q anteriores.

02:04.610 --> 02:08.210
Precisamos calcular nossa posição inicial em nosso índice de ação.

02:08.660 --> 02:10.520
Então vamos começar.

02:11.060 --> 02:12.440
Vamos dar um grande laço for.

02:12.450 --> 02:14.450
Então nós temos nossos quatro episódios.

02:16.810 --> 02:19.780
No intervalo do nosso número de episódios de treinamento.

02:22.060 --> 02:22.540
Aqui vamos nós.

02:22.690 --> 02:31.360
Salvo qualquer erro de sintaxe da minha parte, queremos pegar o índice de linha e o índice de coluna de nossa grade para

02:31.360 --> 02:33.700
nosso Ms. índice da coluna.

02:36.080 --> 02:41.240
E disse um local inicial de destino, precisamos de um local inicial.

02:41.240 --> 02:44.210
Então vamos ter aquela hora ruim a cada episódio.

02:45.100 --> 02:49.300
Agora podemos definir nosso estado terminal while.

02:51.180 --> 02:51.690
Não.

02:52.850 --> 02:56.110
É estado terminal.

02:56.360 --> 03:01.280
Queremos ver o índice de linha e o índice de coluna.

03:02.330 --> 03:02.720
OK.

03:03.110 --> 03:07.160
Em seguida, vamos definir nosso índice de ação para nossa próxima ação.

03:07.430 --> 03:08.990
Então, precisamos de nossa próxima ação.

03:08.990 --> 03:16.550
À medida que esse agente itera pelos meios para nosso índice de ação, podemos usar nossa próxima ação.

03:17.770 --> 03:24.730
E podemos usar nosso índice de coluna de índice de linha e vamos chamar nosso epsilon.

03:24.730 --> 03:29.620
Então, queremos ter isso em vez de nossa ação aleatória, vamos usar o índice da coluna.

03:31.930 --> 03:33.610
E precisamos de Epsilon.

03:34.270 --> 03:34.650
Impressionante.

03:35.320 --> 03:36.610
Se eu pudesse soletrar corretamente.

03:36.610 --> 03:38.950
Aqui, queremos Epsilon.

03:39.790 --> 03:41.380
Tudo bem, deixe-me apenas excluir isso.

03:41.680 --> 03:42.070
OK.

03:42.460 --> 03:46.930
Deixe-me pegar o resto do código e vamos analisá-lo para que você não tenha que me ver digitando

03:47.350 --> 03:47.980
cada linha.

03:48.400 --> 03:51.440
Mas lembre-se de como queremos abordar isso.

03:51.460 --> 03:54.940
Deslocando a linha antiga, precisaríamos de um índice de linha antigo.

03:55.180 --> 04:00.130
Também gostaríamos de ter as recompensas para nossas colunas e nossas linhas.

04:00.370 --> 04:05.140
Precisamos dar uma olhada nos valores da fila e nos valores antigos da fila, e precisamos calcular nossa diferença

04:05.140 --> 04:05.620
temporal.

04:06.190 --> 04:06.640
OK.

04:06.880 --> 04:09.820
Então você vê a mudança no código ou a atualização do código.

04:10.030 --> 04:16.150
Estamos pegando nosso índice de linha antigo e nosso índice de coluna antigo para examinar nosso índice de linha e índice de coluna.

04:16.480 --> 04:20.020
Nosso índice de coluna de índice de linha é igual ao nosso próximo local.

04:20.020 --> 04:24.070
E nosso próximo local precisaria do índice de linha, coluna, índice e ação.

04:25.280 --> 04:27.110
Por último, estamos olhando para uma recompensa.

04:27.710 --> 04:34.580
Nossos antigos valores de Q seriam valores de Q com o índice de linha antigo, o índice de coluna antigo e, novamente,

04:34.580 --> 04:40.640
referenciando nosso índice de ação e o cálculo de nossa diferença temporal, que é nossa recompensa, mais o fator

04:40.640 --> 04:47.630
de desconto vezes os valores de Q com a linha índice e índice de coluna menos o valor Q antigo do valor Q

04:47.630 --> 04:48.140
anterior.

04:49.980 --> 04:55.980
Quase pronto onde precisamos do nosso novo valor Q, que é o nosso valor de sugestão antigo, mais a taxa

04:55.980 --> 05:03.330
de aprendizado, tempos, diferença temporal e nossos valores de sugestão com o índice de linha antigo em nosso índice de coluna antigo igual ao novo

05:03.360 --> 05:04.320
valor de sugestão.

05:05.770 --> 05:09.850
Se vocês quiserem discutir mais sobre isso, novamente, eu recomendo o Q&amp;A.

05:09.850 --> 05:11.080
Por favor, sinta-se livre para imprimir.

05:11.320 --> 05:13.630
Tente experimentar com todas as variáveis usadas aqui.

05:13.630 --> 05:18.430
Se você quiser ver sua forma, ver como eles podem ser usados, o que está referenciando, eu recomendo e estou

05:18.430 --> 05:20.380
mais do que feliz em discutir mais.

05:21.130 --> 05:24.430
Uma última coisa que podemos fazer, então temos uma pequena notificação.

05:24.700 --> 05:29.950
Vamos adicionar uma instrução de impressão para sabermos quando o treinamento está concluído para nossas mil linhas.

05:29.980 --> 05:30.580
Tudo bem.

05:30.970 --> 05:34.570
Se não houver erros de sintaxe da minha parte, devemos estar prontos.

05:34.600 --> 05:36.730
O bloco de notas da coluna é inicializado.

05:36.730 --> 05:38.610
Eu repassei tudo, então deixe-me rodar isso.

05:38.620 --> 05:41.410
Deve ser muito rápido, pois estamos usando apenas numpy.

05:41.620 --> 05:43.750
É um modelo muito otimizado em certo sentido.

05:44.050 --> 05:46.840
Deixe-me clicar aqui e então procuraremos o caminho mais curto.

05:48.310 --> 05:48.750
Tudo bem.

05:48.760 --> 05:50.020
Temos nosso treinamento completo.

05:50.590 --> 05:54.760
Vamos também imprimir o caminho mais curto para algumas opções iniciais.

05:54.760 --> 05:59.650
Então estamos começando uma linha três, coluna nove com a opção de caminho mais curto com nosso caminho mais curto.

06:00.130 --> 06:06.670
Queremos olhar para a linha cinco e zero e começando na linha nove e coluna número cinco.

06:07.120 --> 06:08.080
Vamos imprimir isso.

06:08.890 --> 06:09.370
Impressionante.

06:09.370 --> 06:12.280
Temos o caminho mais curto, mas não terminamos.

06:12.460 --> 06:13.390
Estamos quase lá.

06:13.930 --> 06:20.650
Podemos ver nosso carteiro obter automaticamente o caminho mais curto de um local legal que podemos considerar de nossa cidade até

06:20.650 --> 06:22.780
a área de embalagem do item.

06:22.790 --> 06:27.430
Mas e o inverso do cenário oposto, basicamente referindo-se, sabe, o nosso carteiro pode entregar um

06:27.430 --> 06:31.090
item de qualquer lugar da cidade para a área de embalagem?

06:31.390 --> 06:37.510
Mas depois do item teria que ir então daquela área, da área de embalagem para outro local da cidade,

06:37.510 --> 06:40.180
porque teria que pegar o próximo item.

06:40.660 --> 06:43.780
Então o que podemos fazer para resolver isso?

06:43.780 --> 06:45.220
E na verdade é bem simples.

06:45.400 --> 06:47.890
Você pode revisar a ordem do caminho mais curto.

06:48.730 --> 06:51.940
Tente pensar nisso por um segundo e então esta seria a solução.

06:53.320 --> 06:55.110
Podemos usar o caminho mais curto.

06:55.120 --> 07:00.550
Então, vamos pegar a coluna cinco e a coluna dois e tudo o que você precisa fazer é usar a opção reversa com

07:00.550 --> 07:01.150
o Python.

07:01.270 --> 07:04.270
Usamos path dot reverse e podemos imprimir o caminho.

07:04.570 --> 07:06.040
Então, estamos olhando para cinco e dois.

07:07.050 --> 07:07.800
E lá vamos nós.

07:07.800 --> 07:09.220
Temos o caminho mais curto.

07:09.420 --> 07:14.250
E é realmente útil se você quiser pegar a imagem na célula e trazê-la para baixo para comparar e ver

07:14.250 --> 07:14.910
esses caminhos.

07:14.910 --> 07:20.310
Mas você pode realmente ver o caminho se você pegar o extrato impresso, olhar a coluna no

07:20.310 --> 07:23.250
pedido e ver como o vendedor está viajando.

07:23.250 --> 07:25.560
Trabalho tão incrível que você está usando.

07:25.770 --> 07:26.610
Q Aprendizagem.

07:26.880 --> 07:32.550
O que aprendemos com este curso tem um pouco de bônus e um cenário divertido na seção para resolver

07:32.550 --> 07:35.070
esse tipo de problema essencialmente do caixeiro viajante.

07:35.070 --> 07:40.770
Estamos olhando para o carteiro para entregar pacotes e itens na cidade para encontrar as opções mais curtas e os

07:40.770 --> 07:41.640
caminhos mais curtos.

07:41.670 --> 07:47.400
Eu recomendo que você personalize, teste outras opções, altere os hiperparâmetros e, se descobrir

07:47.400 --> 07:53.670
algo melhor, se descobrir algum parâmetro otimizado ou melhor para usar, sinta-se à vontade para compartilhá-los nas

07:53.670 --> 07:54.990
perguntas e respostas.

07:55.620 --> 07:56.280
Incrível.

07:56.300 --> 07:58.110
Espero que vocês realmente tenham gostado disso.

07:58.320 --> 08:01.350
Por favor, personalize, experimente e continue aprendendo.

08:01.380 --> 08:02.970
É muito divertido trabalhar com você.

08:02.970 --> 08:04.820
Aprender e desfrutar I.
