Olá e bem-vindo ao Statoil e para falar, inicializamos o mapa.
E agora o tempo para as coisas emocionantes, criamos o carro e nós fazemos isso com uma aula, claro.
Você verá que a classe é muito prática para criar algumas coisas que têm muitas propriedades porque, como você
pode ver, não só encontrando algumas variáveis ​​do meu carro, mas também algumas funções que, claro, é a função
que fará o carro se mover para o esquerda para a direita ou indo direto.
Então, temos algumas variáveis ​​que são importantes para descrever o ambiente que temos, por
exemplo, o ângulo que é o ângulo entre o eixo x e o eixo da direção do carro.
rotação que é a última rotação que lembra é 0 graus 20 graus ou menos 20 graus.
Então, temos a
Então, temos a velocidade da coordenada x do vetor de velocidade e as coordenadas y do vetor
de velocidade.
E então o vetor de coordenadas velocidade x e velocidade Y então temos os sensores e os sinais.
E isso é muito importante, a chamada que estamos fazendo terá três sensores de sensor um sensor
dois e sensores, três sensores estarão detectando se há algum sentido na frente do carro.
Então, o sensor 2 é o sensor que detectará se há algum sentido à esquerda do carro e os sensores
3 são o sensor que detectará se há algum sentido à direita do carro.
E então, a partir desses três sensores, obtemos sinais de que os sinais recebidos por cada um dos sensores.
Então, o sinal é o sinal recebido pelo sinal do sensor um é o sinal recebido pelo sensor 2 e
o sinal 3 é o único recebido pelos sensores 3.
E então, como isso funciona?
O sinal 1 é a densidade de envio em torno de um sensor para um sinal é a densidade do centro em
torno do sensor para indicar três é a densidade de sensibilidade enviada e como calculamos essa densidade de areia.
Bem, isso é muito simples.
Pegamos alguns grandes quadrados em torno de cada um dos sensores.
Estes são, na verdade, quadrados de 200 por 200 e para cada um dos quadrados, dividimos o número de pessoas no
quadrado pelo número total de células no quadrado que é 22 e 20 é igual a 400.
E isso nos dá a densidade de areia porque os correspondem ao centro.
Fazemos isso para cada sensor e isso nos dá a densidade de areia ao redor de cada sensor.
São os sinais.
Tudo bem, então agora temos tudo para detectar o sensor e depois temos a função de movimento.
E é claro que a função de movimento é o que permitirá que o núcleo vá para a esquerda indo direto ou
indo para a direita.
Então vamos passar rapidamente.
Temos aqui a atualização da posição do carro com sua última posição, que é auto passada aqui e
o vetor de velocidade.
Assim, graças ao vetor de velocidade, a posição será atualizada na direção do vetor de velocidade.
Então, nós conseguimos a rotação que vamos diminuir no código aqui.
A rotação é igual a ação para ação de rotação.
Ele selecionará a ação e depois entrará na rotação.
E assim, essa auto-proteção equivale a rotação aqui.
É essa rotação que sabemos saber como precisamos girar o carro que vai para a esquerda
ou para a direita.
Então, atualizamos o ângulo que eu lembro é o ângulo entre o eixo x e o eixo da
direção do carro.
E então, uma vez que o carro se moveu, temos que atualizar os sensores e o sinal
porque, claro, quando o carro acaba de girar enquanto os sensores também giraram e, portanto, precisamos girá-los
usando a função de rotação e à qual adicionamos a nova posição.
E por que temos esse vetor de 30 0.
Bem, isso é simplesmente porque 30 é a distância entre o carro e o sensor.
Você sabe que é a distância entre o carro eo que o carro detecta.
E então, uma vez que os sensores são atualizados. Bem, é hora de atualizar os sinais.
E então, aqui, fazemos exatamente o que eu expliquei para você sinais de computador.
Nós damos as coordenadas x do nosso sensor, então nós levamos todas as células de Manston para mais 10, então
fazemos o mesmo para a coordenada y, levando todas as células de Madison para mais 10.
Então, obtemos o quadrado de 20 por 20 pixels ao redor do sensor e dentro do quadrado nós
alguns mais velhos.
Então, basicamente, com algumas das células porque as células contêm 0 ou 1 e uma vez que em 20 por 20 quadrados
há 20 vezes 20 é igual a 400 células.
Bem, nós dividimos em 400 para obter a densidade de dentro da praça e é assim que obtemos o sinal da densidade
de centros ao redor do sensor e fazemos o mesmo para o segundo sensor e o terceiro sensor para
obter o segundo sinal e o terceiro sinal.
ESTÁ BEM.
Então, é para levar o sensor e, em seguida, essas três linhas de código aqui são muito importantes.
que desejamos que desejemos chegar ao nosso carro quando chegar a uma das margens do mapa.
É outro
Você sabe que não queremos que o carro se precipite em algumas paredes e, portanto, queremos penalizá-lo para
puni-lo quando está chegando muito perto de Wall e, portanto, é isso que fazemos aqui.
Se o primeiro sensor for maior do que mais 10 menos 10 maior do que aqui, porque é mais longa essa distância
aqui, portanto, mais 10 menos 10 aqui.
Então, se o sensor um atua maior do que o longo, Manison diz respeito a todos os pontos estão aqui.
se aproximando da borda esquerda do mapa ou se o sensor Y for maior do que maior menos 10 Essa é
a borda superior do mapa e ou se o auto-censurado Y é inferior a 10 que é a borda inferior do mapa.
Isto é, se o carro estiver se aproximando da borda direita do mapa ou se o sensor de célula atinja menos de
10, isso é certo se o carro estiver
E, portanto, se o sensor estiver atingindo qualquer uma dessas quatro bordas Bem, colocaremos o sinal do sinal do
sensor quando o sinal for enviado.
Definiremos que seja um.
E o que isso significa.
Isso significa som completo como a densidade total da areia.
É como o pior e você conseguiu.
Há tantas sensações de que vai parar o seu carro.
Então, o sinal será um e, portanto, o carro receberá uma recompensa terrível.
Tudo bem.
E então, fazemos o mesmo por sinal e sinalizamos três do sensor duas instâncias três.
Tudo bem.
E então, criamos a classe do jogo, de modo que basicamente seja a classe para criar o jogo, porque
até agora só criamos o carro e, é claro, temos que criar o mapa.
Temos que criar o próprio jogo.
Então, não estaremos jogando o jogo é a nossa AI que estará jogando o jogo e o jogo
é realmente evitar os obstáculos e ir do aeroporto para o centro da cidade e vice-versa.
Então, nesta classe de jogo, precisamos criar alguns objetos como o carro, então precisamos definir a função
de atualização.
Esse é o mais importante e, na verdade, vamos nos concentrar nisso agora, porque está
nesta função de atualização que selecionará a ação que o carro tem para fazer e cada vez para atingir seu objetivo.
E esta ação é exatamente o resultado de nossa rede neural.
A nova vontade desse trabalho que será o cerne da nossa inteligência artificial.
E, portanto, essa ação é devolvida pelo cérebro do carro, que continua sendo objeto da nossa classe humana que
estará fazendo em nosso arquivo AI.
E este objeto tem um método chamado de atualização e leva como entrada a última palavra e
o último sinal.
Então, a última palavra é, naturalmente, a última palavra alcançada pelo carro e o último sinal é,
é claro, o último sinal dos três sensores sinaliza um do sensor um sinal dois do sensor para o sinal três do
sensor 3.
Mas então eu estou adicionando duas outras entradas, que é a orientação do carro em relação ao objetivo.
Então, por exemplo, se o carro se dirige para o objetivo, a orientação será igual a zero.
Se ele for ligeiramente para a direita, a orientação será próxima a 45 graus.
E se ele for ligeiramente para a esquerda, a orientação será próxima de menos 45 graus.
Então, essa é a força de entrada de nossos estados de entrada.
E então há uma lição que é menos orientação.
Assim, geralmente, as entradas da rede neural são independentes. Não existe multicolinearidade, mas não importa se nós
somos, porque a rede neural apenas conserta isso com os pesos.
esta orientação negativa bem que permite ao carro o treinamento do carro para estabilizar a aceleração.
Mas ainda percebo que ao adicionar
Você sabe que estamos fazendo isso é que o AI nem sempre explora na mesma direção, adicionando
esta orientação negativa.
Nós nos certificamos de que ele explore em ambos os sentidos, à direita ou à esquerda.
E assim, estes três sinais. Mais a orientação e a orientação negativa são as cinco entradas do nosso
vetor codificado que entrarão na rede que o nosso vetor de entrada que entrará na rede e depois que
ele entrar na rede Bem, a rede retorna as saídas que é a ação a desempenhar.
o estado de entrada e também a última palavra porque a ação para jogar também depende da última palavra.
E cada vez e a saída é retornada por esta função de atualização que contém a própria rede
e a saída da rede e, portanto, é por isso que temos que inserir o último sinal que é
Tudo bem e depois atualizamos a pontuação principal das palavras que atualizamos a rotação, usamos a função de movimento para
girar o carro de acordo com a ação que foi selecionada.
Nós levamos a distância do carro para a estrada e nós obteremos as posições da bola de sensores uma bola
dois na resposta de Rieker às bolas que representarão os sensores no mapa.
Você verá isso muito rapidamente.
ver, isso significa que se o carro estiver em certo sentido, isso será mais lento.
E então, essa parte é muito importante porque é aí que penalizamos o carro se isso acontecer, porque, como você pode
Então é aí que reduzimos sua velocidade.
Você sabe que sua velocidade geralmente é 6 como você pode ver aqui.
E se isso acontecer com algum sentido, será um que será abrandado para 1.
Você verá como o carro será abrandado uma vez que ele entra em algum sentido.
Então, é lento.
E, além disso, obtém uma recompensa ruim que recebe um menos que queremos.
E essa é realmente a pior recompensa que você conseguiu.
A melhor recompensa é a pior que a palavra é menos uma ea recompensa está entre menos 1 e mais 1.
E então, de outra forma.
E o carro não está em alguma areia.
Bem, ele mantém a velocidade de velocidade usual do sexo e depois adicionamos algo mais.
Se estiver se aproximando do objetivo, ele receberá uma recompensa ligeiramente positiva.
E se está ficando mais longe do objetivo Bem, ele recebe uma recompensa ligeiramente negativa menos 0. 2.
E depois a última.
Condições que estão relacionadas com a recompensa.
Bem, isso é se o carro está chegando muito perto de uma das bordas, como falamos anteriormente.
Lembre-se quando conversamos sobre o sensor de combustível.
Bem, se o carro está ficando muito perto da margem esquerda do mapa, fica menos uma palavra se for muito
próximo da borda direita do mapa, ela é recompensada menos uma.
E se fica muito perto da borda inferior do mapa, você recebe ou menos um.
E se ficar muito perto da parte superior esquerda do mapa, recebe recompensas menos uma.
Então é um castigo terrível.
E assim você verá como é cheio e rápido não se precipitar em outra coisa.
Tudo bem e isso é atualizar o tempo quando o objetivo é alcançado.
Então, você sabe quando o carro chega ao aeroporto, que é o primeiro a ir, é o canto superior esquerdo
do mapa.
Enquanto a meta muda para o canto inferior direito do mapa que está no centro.
E é exatamente isso que fazemos aqui, atualizamos a coordenada x do Corvo e
as coordenadas brancas da chamada e depois atualizamos a distância do carro ao carro.
Tudo bem.
E então isso é menos importante.
Essa é apenas uma aula que irá adicionar as ferramentas de pintura que você conhece para podermos pintar algumas estradas ou
alguns obstáculos no mapa mais relacionados a K. V. Pode dar uma olhada se quiser. Vou
fornecer a versão condensada deste código e vou fornecer alguma referência se quiser aprofundar a forma de
fazer isso com skivvy.
Mas estamos ficando mais longe da inteligência artificial, então não vou entrar nos detalhes.
E isso é o mesmo para a última seção de código com a classe de carro que é exatamente como os botões da API
limpar salvar e carregar.
Então é o que fazemos aqui.
Limpar a tela segura.
E isso é realmente muito importante, é para nós poder salvar o dia em que eu sei salvar
o cérebro para que você possa reutilizá-lo mais tarde, levando a função de carga, que é outra ferramenta que adicionamos
no mapa para carregar o cérebro do carro que é carregar a memória do carro como navegar no mapa.
E, finalmente, temos a última seção do código que corre o que é o que
executa o mapa e o próprio AI.
E na verdade, é isso que vamos fazer agora.
Vamos dar uma olhada em tudo o que fizemos neste código.
Então, agora, o IA não é implementado.
Então, o código terá um movimento muito aleatório.
Na verdade, parecerá um inseto, mas não se preocupe, vamos consertar isso.
Normalmente, vamos treiná-lo para mover-se como um carro real e treiná-lo para navegar seguindo algumas estradas e
evitando alguns obstáculos.
Vamos fazer isso.
Vou selecionar tudo e executar.
E aqui está o mapa.
E aqui está o carro.
Tudo bem.
Então é a coisa pequena que você vê que parece um inseto no nosso carro.
Então, como eu disse, as ações são totalmente aleatórias.
Então, cada vez que o carro seleciona aleatoriamente uma ação, seja para ir direto para a esquerda ou para a direita.
Então é por isso que está fazendo alguns movimentos sem sentido e é por isso que parece um inseto.
Então vamos consertar isso, é claro.
está indo para o objetivo que é o aeroporto aqui ou para o centro, no canto inferior direito do mapa.
E, claro, desde que a AI está ativada, não
E vamos consertar tudo isso fazendo os AIs que implementarão o AI neste carro ou este inseto para que você possa
ver as três bolas aqui, o amarelo, o vermelho e o branco.
São os nossos três sensores.
Então é isso que vamos detectar.
Há algum perfume em torno disso.
E falando de cheiro, vamos lançar alguns.
Então, para fazer isso, eu só preciso clicar aqui e você sabe, em algum sentido, seguir ensinando a esquerda.
Então, agora estou adicionando alguma areia, podemos adicionar mais.
Então, cada vez que voce fica louco como você pode ver que colocando na matriz central que é enviar uma
matriz que é para 00 coordenadas da origem.
E aqui há muitos outros.
E como você pode ver bem, é bom ver o carro.
Acabamos de descer e desaceleramos.
Então, como você pode ver agora, é muito lento porque está entrando na areia.
E agora está tentando escapar.
E então, você sabe o que faremos é que vamos desenhar algumas estradas e vamos desenhar algumas estradas do aeroporto até
o centro da cidade e vamos treinar o carro para ficar na estrada e evitar os obstáculos.
Tudo bem.
E, como você pode ver, há o botão claro para limpar a areia, há o botão Salvar para salvar
o cérebro do carro.
E, na verdade, existe essa curva central que falamos sobre essa segurança que salva seu modelo realmente o cérebro
do seu carro e, então, você pode saber quando você deixa o seu frio ou desligar o computador e quer
voltar para ele novamente.
Você pode usar o botão de carga para carregar o modo que é carregar o cérebro e que irá obter
os trens AI do seu carro.
Tudo bem, então agora não posso esperar para começar a fazer a AI.
Isso será muito divertido.
Nós faremos nossa rede neural e puniremos o carro assim que não fizermos o que queremos.
Então vamos fazer isso no próximo tutorial.
E até então, desfrute de um.