Olá e bem vindo à parte super emocionante da nossa criação, a parte em que a tornamos inteligente.
Então, é exatamente o que acontece quando treino o dia em que treinarei é inteligência para atingir o
objetivo que queremos realizar, que está chegando ao colete sem ser morto.
E para isso, vamos basicamente treinar a rede neural para produzir as previsões corretas e então tudo
já está pronto porque esses sinais de saída do cérebro já têm a transmissão
correta para o corpo para executar as ações finais.
Então, basicamente, agora, o que estamos prestes a fazer é algo que já fizemos antes.
categorizar no sentido de que a pesos de acordo com o quanto eles contribuíram para este último erro.
Nós só vamos tirar alguns lotes aleatórios da memória, obter as nossas entradas das amostras, obter as saídas,
obter o alvo, obter as previsões, calcular a última área entre as previsões e o alvo e,
em seguida, executar a propagação para trás para
Então vamos fazer tudo isso.
Você vai ver como será tão fácil porque já temos todas as ferramentas
para implementar isso, não só temos as ferramentas da tocha, como o otimizador e as últimas funções, mas também temos
todas as classes que fizemos antes como nossa cérebro, claro, que vamos usar para obter as previsões.
peças que as ferramentas irão fazer o super desempenho do treinamento e, portanto, eventualmente, obteremos uma AI super poderosa.
Em seguida, nossa experiência replay o rastreamento da elegibilidade da implementação e todas essas ferramentas combinadas
com as
Então, vamos fazer isso acontecer.
Vamos fazer o nosso inteligente e a primeira coisa que vamos fazer agora é obter a última função em
que estamos acostumados no treinamento ao calcular o erro e um otimizador.
Essa é a primeira coisa que faremos.
Então, vamos criar uma variável para a última função.
Vamos chamá-lo de perda e isso será igual à função de perda de MSEE do módulo final.
E essa MSEE nós, essa é a última função que usamos, porque basicamente nossas previsões são valores-chave que você
conhece, estamos prevendo os valores fundamentais das diferentes ações.
E, portanto, uma vez que estes são números reais, bem, estamos fazendo algum trabalho de rede neural para regressão e,
portanto, a última função é o erro de CT significa.
Essa é a última função que usamos.
Em geral, para regressão.
Tudo bem, agora que temos nossa última função Vamos buscar o nosso otimizador.
Então otimizado aqui, esse é o Voivode, criamos o otimizador de Freda.
E nós vamos tomar como de costume.
Quanto ao carro auto-dirigido, o atomizador de átomos.
Esse é um otimizador muito poderoso que irá fazer maravilhas para o treinamento.
Então, vamos fazer isso com Adam.
E lembre-se que é exatamente o que o carro de auto-condução nós temos que inserir dois argumentos essenciais.
O primeiro é o que irá fazer a conexão entre o otimizador e os parâmetros da nossa
rede neural.
Esse é o peso dos neurônios do nosso cérebro.
E para fazer isso, nós levamos nosso cérebro que chamamos a CNN.
Esse é o objetivo que criamos para o nosso cérebro.
E assim a CNN lembra os parâmetros que vamos e alguns parênteses, de modo que torna a conexão entre o
otimizador e os pesos dos neurônios no cérebro de nossa AI.
E então o segundo argumento é uma taxa de aprendizado e isso é dado pelo nosso.
E então, temos que levar um aumento menor porque não queremos convergir muito rápido e queremos ter alguma
aceleração e, portanto, boas maneiras de aprender que podemos tomar.
Aqui está um pequeno que está no ponto ou um que está aberto 1 por cento.
Eu acho que é o mesmo que usamos para o carro auto-dirigido.
Tudo bem, então agora temos um atomizador de última função, então estamos quase prontos para iniciar o outono.
Bem, na verdade, vamos começar com isso agora, mas antes de fazê-lo, vamos decidir o tamanho
do número de épocas em que estaremos treinando.
E, portanto, na criação de uma nova variável aqui que responderá a esse número de abox e digamos que
seja igual a 100.
Isso será o suficiente para treinar o AI.
E mesmo assim é assim que conseguirei alcançar a melhor maneira antes de 100.
Como 20 ou 30.
Vamos ver.
Mas por agora vamos demorar 100.
E se precisarmos, a aumentaremos.
Mas eu não acho que isso seja necessário.
Ok então, agora que temos nosso número de airbags, podemos começar a fazer o acompanhamento.
Você conhece este principal para o loop do treinamento quando treinamos sobre o Xbox.
Então, para então, é realmente viável será o livro.
Isso é o que nós escolhemos para isso de volta.
Agora, é claro, vamos usar a função de alcance para dizer que queremos passar da primeira parte traseira para o
número de livros mais um
porque lembre-se de que o limite superior de um intervalo não é para.
Portanto, queremos ir até 100.
Bem, temos que especificar e ser o mais para ir até 100.
Tudo bem então CULLEN E agora vamos entrar no circuito.
Tudo bem, então a primeira coisa que faremos é fazer 200 execuções de 10 etapas.
Então, cada época será de 200 execuções uma após a outra de 10 etapas e, para isso, temos essa função de um passo
de nossa classe de repetição de experiência e, portanto, usar essa função, que é realmente
um método, porque a obteremos de nosso objeto de memória que é um objeto da classe de memória de repetição
para gerar estes duzentos execuções de 10 etapas.
Bem, nós temos que dizer que nosso objeto de memória que eu lembrei que criamos aqui é um objeto para
repetir a classe de memória com passos 10 passos e uma capacidade de 10000.
Criamos esse objeto e desse objeto que tomamos.
Bem, esta executar etapas executar etapas e especificamos duzentos execuções sucessivas de 10 etapas.
Então, isso apenas adicionará cada época.
Basicamente cem passos.
Agora, agora temos 200 passos em cada época.
Bem, é hora de provar alguns lotes dessas corridas e provar esses lotes.
Temos outra função da nossa memória, que é um lote de amostra, que gerará exatamente alguns
lotes dessas duzentas execuções.
Mas lembre-se que esses lotes são neste momento lotes de séries de transições.
em oposição a antes de onde os lotes eram apenas alguns lotes de transições únicas aqui desta vez.
Há uma série de 10 passos
Haverá lotes de dez passos 10 transições e, portanto, agora é hora de tirar
nossa memória.
Esses lotes aleatórios.
E para obtê-los, usamos a função de lote simples à qual temos que aplicar o tamanho do
lote para o tamanho do lote, onde podemos levar 32 ou mesmo 64 ou mesmo 128.
Lembre-se disso diz isso. É uma prática comum usar 32.
Isso é o que você verá, em geral, nas arquiteturas das redes neurais ao fazer alguma aprendizagem Bachche.
Mas desta vez é bem diferente.
Nós estávamos apenas enviando alguns lotes de dez passos.
Portanto, é melhor tomar bancos com tamanhos maiores.
Então é por isso que podemos levar 64 ou 128.
Então, vamos levar 128 e, na verdade, isso vai estar dentro de um Fulop porque queremos levar vários lotes
e estamos levando-os no que é retornado pela função de lote de amostra.
Então, este Fulop para isso no lote de amostra de memória 128 significa que cada 128 passos. Bem, nossa
memória nos dará um tamanho de lote 128 que conterá realmente os últimos 128 passos que foram executados.
Estamos apenas recebendo alguns lotes de tamanho 128 e a aprendizagem acontecerá nesses lotes.
E, além disso, dentro desses lotes, teremos bandejas de elegibilidade que você conhece para
aprender cada dez etapas.
Tudo bem agora, agora dentro desse loop que ainda está acontecendo em uma época.
Mas agora, desta vez, estamos em um lote específico e agora a primeira coisa que vamos fazer é que
nós vamos receber nossos insumos e nossos objetivos separadamente.
E, como eu lhe disse, você pode fazer isso com uma das ferramentas que implementamos, o que é truques de elegibilidade, como você
pode ver aqui.
Esta função de rastreamento ilegível leva um lote como entrada.
Agora, temos de lote e retornamos como saída as entradas e os alvos.
Então, agora, o que podemos simplesmente fazer é criar duas novas variáveis ​​que
serão as entradas e os alvos e essas entradas não podem nos dizer igual exatamente o que retorna essa função de rastreamento LGBTI aplicada
ao lote para aplicar essa função ao lote de nossa loop.
E então, o que faremos é apenas o rastreamento de elegibilidade aplicado ao lote do nosso.
Tudo bem.
isso nos leva à entrada e aos banheiros, mas na tocha PI há sempre algo mais que temos que fazer.
Então,
E, claro, isso é converter as entradas da rede neural e também o alvo em algumas das variáveis.
Mas nem há nada de novo.
Nós sabemos como fazer.
Podemos fazê-lo desta forma, levamos nossos insumos, então nossos objetivos.
E enquanto eles serão iguais a entradas variáveis ​​que são para as entradas e alvos variáveis ​​e é aí
que os alvos.
entradas do cérebro sejam convertidas em algumas variáveis ​​torche e os alvos também são convertidos em algumas variáveis.
Tudo bem para que as
Então, agora podemos obter os insumos na rede neural.
E por que precisamos fazer isso.
Isso porque o próximo passo é obter as previsões que temos em que devemos atingir.
Agora, é claro, precisamos de nossas previsões porque, então, o que acontece é que calcularemos a
perda entre as previsões e os objetivos.
Vamos obter essas previsões para chegar então.
nosso cérebro, que é CNN nossa rede de notícias constitucional e aplicá-lo aos nossos insumos.
Bem, novamente, isso é tão simples agora, só precisamos levar
Aqui vamos nós.
As entradas vão para a rede neural e a rede neural produzirá as previsões.
Perfeito.
Então, agora temos as proteções que temos que atingir para que possamos obter as leis e esse é o próximo passo.
Vamos apresentar uma nova variável, porque agora vamos ter o último erro que é diferente
da última função porque usamos a função de leis para obter o último erro.
obtê-lo com a última função aplicada às nossas previsões e os alvos que vamos ver como tudo é suave.
Então, último erro aqui e que vamos
Agora, tudo é lógico.
Obtemos primeiro a entrada para os objetivos, graças às entradas recebemos as previsões e, em seguida, graças
às previsões e aos banheiros, obtemos o último erro.
Então, muito lógico e suave.
E agora, qual é o próximo passo.
temos o último, podemos voltar propagar este último erro de volta à rede neural para fazer pesos e fazemos
isso com a grade de gás no centro e para realizar graus no sentido de que precisamos do nosso otimizador.
Bem, mesmo caminho lógico agora que
Mas já conseguimos isso aqui.
Nosso atomizador de Adam.
Mas agora, neste momento, lembre-se do que devemos fazer.
Tivemos que inicializá-lo e inicializá-lo.
Lembre-se de que tomamos o nosso objeto otimizador.
E então aplicamos o método zero grette.
Aí, não esquecemos os parênteses que o inicializaram.
E agora o próximo passo é voltar a propagar o último erro de volta
para a nova rede e, para isso, nós tomamos nosso último erro e aplicamos o método retroativo.
Então é exatamente isso para propagar a propagação para trás.
E, finalmente, agora que o último erro é propagado novamente para o novo que funciona bem, podemos atualizar
os pesos.
Ainda estamos ficando ótimos no sentido e, para isso, lembre-se de que tomamos o nosso otimizador e depois
aplicamos o método passo.
Aqui vamos nós.
Os pesos estão agora datados.
Como eu disse que não só nós já fizemos isso, mas agora parece tão simples e tão natural.
Então, agora vamos fazer algo divertido.
Vamos imprimir a média que trabalhamos em todas as épocas.
Então você sabe que podemos acompanhar a forma como a AI está indo como o treinamento está indo.
primeiro lugar, há esta fase de exploração, de modo que a média não aumentaria no início,
mas depois, uma vez que atinge a fase de exploração, veremos a recompensa média definitivamente aumenta e
aumentará até um certo nível, que é quando atinge o colete o mais rápido possível.
Queremos ver a recompensa média aumentar nos passos das épocas e, em
Então vamos começar com a premissa.
Você sabe que estamos fazendo isso de uma maneira, mas devemos voltar para o loop aqui imprimir e
então vamos imprimir.
Bem primeiro, mas depois por cento, porque vamos converter tudo em uma corda melhor.
E então, vamos adicionar a média que estávamos e depois adicionamos por cento S, então vamos
fechar a cotação e depois adicionar uma porcentagem.
você sabe que podemos colocar as variáveis ​​que serão essa primeira pessoa, pois essa é a época aqui.
E do outro lado
E a segunda variável corresponde à palavra média que irá calcular agora.
Portanto, a palavra média viável ainda não existe.
Nós vamos criá-lo agora mesmo.
Então, vamos usar Esti nossa época mesmo se o número para converter isso em seu trem melhore
e vamos adicionar s t r que vai ser a recompensa média.
E então vamos criar uma variável que vamos chamar uma recompensa de Viji.
E agora vamos criar essa variável e calculá-la.
OK, então vamos fazer isso.
Foi a única coisa que tínhamos que deixar para o EPOC que já temos.
Agora vamos calcular a palavra média e precisamos calcular isso aqui.
Ainda no laço, mas o nosso bacharel, porque agora temos nossas amostras de patch e temos um treinamento
acontecendo no lote.
Mas agora que para propagação Plus a propagação para trás é feita no lote.
cumulativas que podemos fazer com o nosso objeto steps, porque nosso objeto insteps contém essa função,
quais as etapas que nos permitem obter as recompensas cumulativas nas etapas que você conhece e Passos executados.
Então, estamos voltando ao loop epoche e agora podemos calcular as palavras
Então, vamos usá-lo agora para atualizar as novas recompensas das etapas e depois atualizaremos o objeto da
média móvel, adicionando as palavras cumulativas ao movimento de cada objeto.
E então, nós calculamos a média e é assim que nós vamos conseguir a média do que pensamos
que é a primeira coisa que precisamos é a palavra Stribild.
Então, vamos chamar-lhes as etapas das palavras e, em seguida, como dissemos, tomamos nosso objeto de etapas finais, que eu lembrei criado aqui
e objeto da etapa de progresso da nossa experiência de repetição para objetos de instância.
Então, adicionamos etapas de palavras e depois alguns parênteses.
Tudo bem.
Isso nos dará as novas recompensas cumulativas das etapas.
Tudo bem, mas então precisamos adicionar essas novas recompensas cumulativas no nosso objeto de média móvel e, para isso,
temos um método desta vez na classe de média móvel, que é esse método que é muito
simples, levamos nosso objeto de média móvel que criamos aqui com 100 passos, então vamos usar nosso método de
adicionar.
E então, no Admetus, colocamos nossas etapas de palavras e isso irá adicionar as recompensas das etapas
à média móvel.
Tudo bem e, finalmente, podemos calcular a palavra média e isso é bom, você sabe que é a
variável aqui.
Então, isso é o que vai ser igual à palavra média e para obtê-lo, precisamos usar o método médio
desta vez do nosso objeto de média móvel e é o que fazemos e dizemos que a média diz isso porque nossa
média móvel já estava atualizada com a nova palavra passos que acabamos de adicionar
coisas ao método Add great.
Agora, temos a nossa palavra média, de modo que irá preencher aqui.
E isso será impresso a cada hora.
Então, isso vai ser muito emocionante porque cada episódio vamos acompanhar a forma como o ar
está indo.
Você sabe que vamos ver se a palavra média está aumentando.
E falando de algo excitante.
O que é muito emocionante é que eu sei que ele atinge o colete com certeza quando atinge 1500.
Então, o que vamos fazer agora é que, se a recompensa média atingir 1500.
Agora, se está ficando acima de 1500, vamos imprimir algo novo e essa será
a impressão final.
A impressão muito bem sucedida que vamos imprimir que podemos dizer.
Parabéns para o seu AI porque sua IA ganha.
Então, isso seria fantástico se isso acontecer se chegarmos a uma palavra não média.
Maior que 1500.
Podemos ter 100% de certeza de que o AI é o melhor.
Talvez seja um pouco mais baixo do que isso, mas experimentei com 1000 e às vezes não
alcançou avançado, mas com 1500 se chegarmos bem, a AI ganha certeza.
Então vamos ver isso depois.
Tudo bem, então seria muito emocionante.
E então, na verdade, é apenas o fim da curva.
Precisamos especificar que queremos iniciar o treinamento.
Se isso acontecer, você sabe se atinge a vasta riqueza que já não precisa treinar.
Então, vamos terminar todo o processo com uma pausa se alcançarmos um mundo médio de 1500.
Podemos terminar todo o processo e, para isso, podemos usar esse intervalo aqui.
Tudo bem.
E então, uma última coisa a fazer quando termina o jogo, é quando a IA ganha.
Bem, podemos fechar ambiente e assim por diante adicionando apenas uma última ação aqui que
vou chamar de fechamento do ambiente doom.
Então, para fazer isso, nós levamos o nosso ambiente Dume que chamamos Doom e lembre-se.
E então podemos apenas adicionar isso próximo e é só isso que vamos fechar o ambiente, o que é melhor para
fazer assim que você terminar o jogo.
Tudo bem, então terminamos.
Então estou tão animado para ver os resultados e na verdade eu vou ter uma surpresa para você no
próximo tutorial enquanto observa os resultados.
Vai ser bastante emocionante.
E agora eu acho que é hora de brincar com isso e se divertir.
Então, esperemos que possamos alcançar este colete o mais rápido possível.
Esse é o objetivo desse novo ambiente.
Tudo bem, vamos nos divertir.
Prepare-se um bom café ou um bom chá.
Agora, sente-se confortavelmente em nossa cadeira e assista alguns vídeos muito legais dos nossos aviões.
Vamos fazer isso no próximo tutorial.
E até então, desfrute da AI.