WEBVTT

00:00.270 --> 00:02.590
Olá e bem vindo a este tutorial do Python.

00:02.820 --> 00:08.730
Tudo bem, então, hoje estaremos criando a função de atualização que atualizará tudo o que há até

00:08.850 --> 00:12.240
o momento, assim que o olho atinja um novo estado.

00:12.510 --> 00:16.140
Então, quando chega a um novo estágio, você sabe que precisamos atualizar a ação.

00:16.200 --> 00:19.320
O último realmente vem a nova ação que acabou de ser jogada.

00:19.530 --> 00:22.630
Mas também a última data que se torna o novo estado.

00:22.680 --> 00:27.450
E, finalmente, a última palavra que se torna a nova palavra que recebemos quando tocamos a ação.

00:27.480 --> 00:31.480
Então esse é o caminho lógico que acontece logo após selecionar uma ação.

00:31.530 --> 00:35.100
Precisamos atualizar todos os elementos das transições.

00:35.310 --> 00:37.370
E, claro, você terá uma nova transição.

00:37.420 --> 00:40.300
Então, teremos de acrescentar esta nova transição para a memória.

00:40.350 --> 00:46.200
E, finalmente, também atualizaremos ou recompensaremos a janela que você sabe para manter um olho na evolução de como

00:46.200 --> 00:49.460
o treinamento está indo e como a exploração está indo.

00:49.680 --> 00:55.380
finalmente estabelecer uma conexão entre a IA que estamos implementando agora no nosso mapa, porque se retornarmos

00:55.530 --> 01:01.650
ao nosso mapa, lembre-se de que esta função de atualização Beiji está na classe de jogo e Foi aí

01:01.650 --> 01:08.580
que estávamos realmente fazendo o jogo com o carro e definindo como o carro deveria ser punido quando cometeu um erro.

01:08.580 --> 01:12.940
Mas o que é mais importante para você entender é que agora podemos

01:13.170 --> 01:19.140
Mas nesta classe de jogos percebemos esta função de atualização e nesta função de atualização percebemos

01:19.500 --> 01:24.700
essa ação de linha porque a atualização do cérebro por último, trabalhamos menos sinal.

01:24.900 --> 01:28.410
E, na verdade, isso é exatamente o que estamos prestes a fazer.

01:28.410 --> 01:36.300
Estamos prestes a tornar esta função de atualização que levará a última palavra e o último sinal para que a

01:36.300 --> 01:37.860
próxima ação seja executada.

01:37.860 --> 01:41.640
Portanto, não só a atualização de todos os diferentes elementos da transição.

01:41.910 --> 01:48.390
estamos prestes a selecionar para selecionar a direção a desempenhar além de fazer todas as atualizações.

01:48.390 --> 01:55.920
Mas principalmente, estaremos jogando a ação que devemos tocar ao obter a última palavra e o último sinal e,

01:55.920 --> 02:02.400
claro, nesta função de atualização, usaremos a função de ação selecionada que acabamos de implementar antes

02:02.400 --> 02:07.740
de integrar a função de ação selecionada na função de atualização futura que

02:07.860 --> 02:11.200
Então, isso é realmente importante para fazer essa conexão com o mapa agora.

02:11.310 --> 02:18.480
O que estamos prestes a fazer é, eventualmente, a conexão entre o nosso olho e o jogo, o jogo que

02:18.480 --> 02:19.750
fazemos nesta classe.

02:19.770 --> 02:24.030
E então, o que podemos fazer agora é tomar diretamente esta atualização.

02:24.060 --> 02:29.970
último, ficamos menos sinal, porque essa é realmente a função que faremos com esses dois argumentos aqui.

02:29.970 --> 02:30.430
Por

02:30.720 --> 02:38.530
E, assim como um lembrete rápido, o cérebro é o nosso objeto de AI que é o objeto da classe de Dejuan.

02:38.540 --> 02:45.690
Então, o que vamos fazer agora é que vamos copiar esta atualização menos sinal de menos palavras e essa será

02:45.690 --> 02:48.390
a nossa próxima função que estamos fazendo.

02:48.480 --> 02:54.120
E, portanto, colando isso aqui, apenas para ter cuidado, eu gostaria de dar alguns nomes

02:54.120 --> 02:56.190
diferentes dos nomes que temos aqui.

02:56.200 --> 03:00.820
Você sabe que temos a última palavra aqui e não quero confundir esta última palavra com essa.

03:00.900 --> 03:02.060
Isso pode ser perigoso.

03:02.220 --> 03:06.100
Então, vou substituir a última palavra aqui por palavra.

03:06.390 --> 03:13.880
E, do mesmo modo, por menos sinal, vamos apenas colocar sinal ou mesmo novo sinal para especificar que você sabe que queremos

03:13.920 --> 03:18.900
medir isso ao chegar a um novo estado e, portanto, obter um novo sinal.

03:18.900 --> 03:26.100
Mas, claro, essa palavra aqui será a última recompensa que chegamos aqui.

03:26.280 --> 03:32.400
Você sabe quando vai em alguma areia ou pior se aproximando de uma borda do mapa, onde é que

03:32.670 --> 03:34.130
definimos a última palavra.

03:34.200 --> 03:39.400
Esta última palavra vai ser a entrada da função de atualização, então é por isso que temos a última palavra aqui.

03:39.600 --> 03:43.660
Mas aqui estou apenas dando outro nome para o argumento.

03:43.710 --> 03:47.640
Nós queremos não confundi-lo com a última palavra aqui.

03:47.640 --> 03:50.160
Tudo bem, então esta é a função de atualização.

03:50.310 --> 03:54.090
E agora vamos entrar e vamos fazer essas duas coisas.

03:54.090 --> 03:58.970
Esse é o dado de todos os elementos da nossa transição e, claro, selecionar a ação.

03:59.290 --> 04:01.670
OK então, o que precisamos para atualizar primeiro.

04:01.950 --> 04:06.760
Bem, como você entendeu, queremos fazer uma data quando chegar a algum estado.

04:06.840 --> 04:12.800
Então, a primeira coisa que vamos atualizar é, obviamente, esta notícia de que essa é a notícia de que estamos a alcançar.

04:12.840 --> 04:17.340
Então, vou chamar esse novo estado novo estado e depois o farei.

04:17.340 --> 04:19.810
E então, como podemos obter esse novo estado.

04:20.040 --> 04:25.460
Bem, claro, isso depende do sinal do novo sinal de detecção dos sensores.

04:25.830 --> 04:32.760
E, como lembrete, o estado é o próprio sinal composto dos três sinais que os sensores

04:32.760 --> 04:37.470
sinalizam um sinal para sinalizar três orientação mais e menor orientação.

04:37.530 --> 04:38.600
Esse é o nosso estado.

04:38.610 --> 04:42.470
Portanto, certifique-se de entender que o sinal é o estado.

04:42.660 --> 04:46.160
Mas agora é uma lista simples de cinco elementos.

04:46.200 --> 04:51.540
que esta será a entrada para fazer todo o trabalho, lembre-se de que devemos convertê-lo em um sensor de tocha.

04:51.540 --> 04:52.200
E uma vez

04:52.490 --> 04:54.960
Então é exatamente o que vamos fazer agora.

04:54.960 --> 05:03.910
Vamos pegar a nossa biblioteca de tochas e, em seguida, levar a classe de tensor lá, vamos converter o nosso novo

05:04.450 --> 05:12.420
sinal em uma torch mais densa, então é melhor certificar-se de que todos os elementos da tocha para

05:12.420 --> 05:19.650
responder são flutuadores, então eu vou faça uma conversão de tipo para convertê-los em flutuadores como este.

05:19.900 --> 05:24.500
E, finalmente, tente obter um reflexo sobre o que precisamos fazer em seguida.

05:24.530 --> 05:29.590
É claro que crie aquele motor falso para adicionar diamantes e corresponda ao

05:29.590 --> 05:37.080
lote e nós fazemos isso, claro, com a função de aperto a que devemos colocar o índice deste grande diamante.

05:37.100 --> 05:40.210
E queremos para o lote que é zero.

05:40.770 --> 05:41.320
Tudo bem.

05:41.320 --> 05:47.110
E agora temos nossos novos estados compostos dos três sinais dos três sensores mais

05:47.110 --> 05:54.290
orientação menos orientação e, claro, que dependerão do novo sinal que estamos recebendo com esta função de atualização.

05:54.400 --> 05:57.940
Direito neste último último sinal, recebemos os três sinais.

05:57.940 --> 06:04.450
Então, além disso, ou além disso, e como lembrete, os três sinais são a densidade do sensor

06:04.720 --> 06:06.490
detectado em torno dos sensores.

06:06.490 --> 06:06.940
Tudo bem.

06:06.970 --> 06:13.710
Então, nós conseguimos uma nova etapa, então significa que chegamos ao novo estágio e agora temos que fazer a próxima atualização.

06:13.750 --> 06:16.440
Então, de acordo com você, o que precisamos atualizar agora.

06:16.660 --> 06:22.320
Qual seria a coisa lógica até agora, depois de alcançar esse novo estado.

06:22.630 --> 06:25.940
Bem, o que precisamos agora é a memória.

06:25.960 --> 06:27.010
Por que é que.

06:27.010 --> 06:34.200
É porque, a cada tempo, uma transição é composta pelo estado atual Estey no dia seguinte como tipis

06:34.220 --> 06:37.660
quando a recompensa arti e a ação 80.

06:37.860 --> 06:44.020
e já temos 80 e acabamos de obter o último elemento da transição Estep plus one.

06:44.020 --> 06:47.540
E agora, já temos S-T, já temos nossa equipe

06:47.590 --> 06:55.720
Então, obtendo este novo estado tão profundo como um, estamos recebendo uma nova transição da memória e, portanto, temos

06:55.720 --> 07:01.910
que acrescentar esta nova transição para a memória, porque essa é simplesmente nossa próxima transição.

07:01.930 --> 07:03.980
Então é por isso que temos essa memória agora.

07:04.120 --> 07:10.990
E, portanto, o que eu vou fazer é tirar o meu objeto de memória criado a partir da

07:10.990 --> 07:17.130
classe de memória de repetição e, portanto, eu vou levar a memória para se referir ao objeto.

07:17.160 --> 07:22.700
Mas desde que eu estou usando o eu, tenho que incluir o auto naquela função.

07:22.950 --> 07:25.440
Então, agora você pode realmente ver o que é esse eu.

07:25.550 --> 07:32.600
É sempre que você usa uma variável que você criou e inicializou na função init aquela memória.

07:32.600 --> 07:33.960
E agora nós fizemos isso.

07:34.190 --> 07:36.950
E de acordo com você, como vamos atualizar isso.

07:37.160 --> 07:41.290
Bem, a boa notícia é que já fizemos uma função para fazer isso.

07:41.300 --> 07:46.990
É a função de envio que proíbe um evento ou uma transição para a memória.

07:47.190 --> 07:49.060
Então é exatamente isso que vamos usar agora.

07:49.070 --> 07:55.460
de empurrar para encadear nossa nova transição que acabamos de fazer na memória e, portanto, aqui

07:55.760 --> 08:01.820
não aceito igual porque usaremos o método e, portanto, podemos usar esse impulso diretamente.

08:02.320 --> 08:04.200
Nós vamos usar a função

08:04.280 --> 08:10.010
E primeiro vou adicionar a transição da nova transição que acabamos de receber e que é a

08:10.010 --> 08:10.780
primeira data.

08:10.850 --> 08:14.010
Então você mesmo na última data.

08:14.270 --> 08:18.680
Então, isso é S-T. É exatamente esse que já existe.

08:18.680 --> 08:23.620
Então, o próximo elemento dessa transição é, naturalmente, o novo estado que acabamos de alcançar.

08:23.840 --> 08:29.720
E, portanto, uma vez que não é viável do objeto que criamos e inicializamos nesta função init,

08:30.080 --> 08:31.470
não nos colocamos aqui.

08:31.580 --> 08:39.940
Nós colocamos diretamente o Newstead, então o próximo elemento da transição é a ação e diz que já temos a última

08:39.940 --> 08:43.690
seção que é essa auto que a última ação aqui.

08:43.840 --> 08:45.320
Então, é claro que é igual a zero.

08:45.350 --> 08:50.050
Mas, claro, será atualizado com a função de ação selecionada.

08:50.170 --> 08:51.190
Mas esse é esse.

08:51.190 --> 08:55.620
Então, é eu mesmo a última ação.

08:55.840 --> 08:57.120
Mas agora tenha cuidado.

08:57.190 --> 09:01.540
Os elementos que foram incluídos nesta transição devem ser todas respostas apagadas.

09:01.870 --> 09:03.860
Como você pode ver, esse é o caso da última data.

09:03.880 --> 09:05.200
É um sensor de tocha.

09:05.350 --> 09:07.860
O novo estado também é respondido.

09:07.900 --> 09:12.050
E isso deve ser o mesmo para a ação e depois a recompensa, é claro.

09:12.190 --> 09:17.320
Mas agora você vai pensar como pode ser uma resposta torched considerando que é simplesmente um número.

09:17.410 --> 09:20.700
Você sabe que a ação é 0 1 ou 2.

09:20.890 --> 09:22.370
Mas na verdade, isso não é um problema.

09:22.390 --> 09:28.640
Ainda podemos converter essa variável 0 1 ou 2 em um sensor de tocha.

09:28.660 --> 09:31.530
Este será apenas o que chamamos de tensor longo.

09:31.540 --> 09:36.910
O longo é um tipo e esse é o tensor que conterá um número inteiro porque a última

09:36.910 --> 09:39.660
ação é um inteiro é 0 1 ou 2.

09:39.670 --> 09:47.650
Então, o que vamos levar agora é o nosso torche de biblioteca, então vamos levar a longa e longa

09:48.190 --> 09:53.470
classe de tensor que criará um objeto que será o próprio não-mandato.

09:53.710 --> 10:00.370
E, ao assumir esta última função de ação como entrada, ela criará esse objeto tensor longo, mas ainda conterá

10:00.370 --> 10:08.590
0 1 ou 2 em um objeto tensor longo e isso é apenas para ser consistente com a transição que ele só contém

10:08.830 --> 10:14.070
tensores porque estamos trabalhando com a tocha PI e estamos trabalhando com uma rede neural.

10:14.170 --> 10:18.480
Então, temos que trabalhar com sensores para que possamos responder longamente.

10:18.580 --> 10:20.780
E uma última conversão para fazer.

10:20.860 --> 10:27.520
Devemos ter certeza de que o que está dentro dessa longa resposta é um número inteiro e para se certificar

10:27.520 --> 10:34.000
disso mesmo se já sabemos que a última ação é 0 1 ou 2 para se certificar de que vamos

10:34.000 --> 10:39.310
fazer essa conversão de tipo int novamente, nós convertemos nossos auto ação final em um inteiro.

10:39.310 --> 10:46.450
Lá vamos e, em seguida, devemos colocar essa ação inteira inteira em colchetes aqui mesmo, para que agora possamos um

10:46.450 --> 10:52.810
tensor longo de um elemento que será essa última ação 0 ou 1 ou 2 em si.

10:52.810 --> 10:59.880
Então, o ponto-chave é que é exatamente como você converte um número simples zero um ou dois em um tensor com torche.

11:00.060 --> 11:00.360
Tudo bem.

11:00.360 --> 11:06.820
E, finalmente, o último elemento da transição e, claro, a última palavra que obtivemos.

11:06.880 --> 11:12.980
Essa é exatamente a última palavra voleibol que criamos em qualquer função que foi inicializada para zero.

11:13.110 --> 11:19.720
Mas, claro, é atualizado aqui neste código, quer quando adentrarmos um sentido que é uma palavra negativa ou

11:19.770 --> 11:24.020
se nos afastarmos do objetivo que é novamente uma recompensa negativa.

11:24.180 --> 11:30.090
Se nos aproximarmos do objetivo, é uma recompensa positiva e a pior punição se chegarmos muito perto de uma

11:30.090 --> 11:34.080
borda do mapa. Bem, essa é uma terrível palavra negativa menos uma.

11:34.290 --> 11:36.190
E isso é um.

11:36.260 --> 11:40.810
Então vamos adicionar este último elemento da transição auto-direcionar a palavra.

11:41.060 --> 11:47.660
Então eu estou copiando esse colar aqui e agora temos que fazer outra conversão que será, naturalmente, exatamente a

11:47.750 --> 11:53.570
mesma como essa apenas porque a palavra não é um número inteiro, mas um número flutuante.

11:53.780 --> 12:00.350
Nós simplesmente faremos uma tocha que a conversão do tensor, mas sem isso manterá os colchetes aqui porque você sabe primeiro,

12:00.350 --> 12:06.200
temos que colocar o número em uma lista e, em seguida, esta lista irá e colocará a tocha na

12:06.200 --> 12:11.510
classe, mas não temos para fazer isso na conversão porque a última palavra é um número flutuante.

12:11.510 --> 12:21.400
Então, o que vamos fazer é simplesmente adicionar aqui um tensor de ponto de torqueira que provocou um tensor e, em seguida, parênteses entre parênteses.

12:21.680 --> 12:27.470
E vamos fechar os colchetes aqui e fechamos os parênteses.

12:27.470 --> 12:28.820
Aqui vamos nós.

12:28.820 --> 12:35.180
Então, para resumir O que você disse que acabamos de chegar e a palavra que observamos um novo evento de

12:35.540 --> 12:37.150
transição que adicionamos à memória.

12:37.550 --> 12:44.240
E esta transição contém a última data e vê o novo estado como tipis quando a última

12:44.540 --> 12:47.640
ação toca 80 e a última palavra Archie.

12:48.020 --> 12:48.390
Tudo bem.

12:48.440 --> 12:51.220
E agora vamos com nossa memória de datas.

12:51.410 --> 12:55.710
Então vamos dar uma pausa rápida e nós iremos cuidar da próxima atualização no próximo tutorial.

12:55.970 --> 12:57.440
Até então, eu.
