Uma rede neural pode elaborar o conceito de distância?


10

Imagine um jogo em que é uma tela preta além de um pixel vermelho e um pixel azul. Dado este jogo a um humano, eles primeiro verão que pressionar as teclas de seta moverá o pixel vermelho. A próxima coisa que eles tentarão é mover o pixel vermelho para o pixel azul.

Dê este jogo a uma IA, ele moverá aleatoriamente o pixel vermelho até que um milhão de tentativas depois se mova acidentalmente para o pixel azul para obter uma recompensa. Se a IA tivesse algum conceito de distância entre o pixel vermelho e azul, poderia tentar minimizar essa distância.

Sem realmente programar no conceito de distância, se pegarmos os pixels do jogo, podemos calcular um número (s), como "entropia", que seria menor quando os pixels estão distantes do que quando próximos? Deve funcionar com outras configurações de pixels. Como um jogo com três pixels, onde um é bom e outro é ruim. Apenas para dar à rede neural mais uma noção da aparência da tela? Em seguida, dê um objetivo ao NN, como "tente minimizar a entropia do quadro e tente obter recompensas".

Existe algo parecido com isso na pesquisa atual?


Eu não acho que você alimentá-lo diretamente a imagem e tê-lo saber a distância ... Em vez disso você iria alimentá-lo um conjunto de números que representam a distância, distância vertical, distância horizontal, etc.
FreezePhoenix

@ Phoo sim, mas você teria que alimentar valores diferentes para cada tipo de "jogo". Enquanto o que estou dizendo é: poderíamos ter algum tipo global de valor alto quando os pixels são agrupados e baixo quando os pixels são espaçados?
zooby

"A próxima coisa que eles tentarão é mover o pixel vermelho para o azul". pode ser que não seja "vermelho" e "azul" na maioria das vezes são inimigos, então você começará a aumentar a distância antes que o pixel azul o note.
Lee

Respostas:


1

Responda

Vou levar sua pergunta pelo valor nominal e aprofundar-me profundamente neste tópico.

Sim eles podem. A mente humana típica pode. Mas considere a mente humana. Milhões, se não bilhões , de neurônios. De fato, pode-se considerar a distância como um conceito humano, simplesmente uma teoria desenvolvida a partir das interações com o mundo.

Portanto, após um ano ou dois, com uma tonelada de neurônios na mão, você pode replicar esse cenário. Ou seja, se o seu computador é tão paralelo quanto a mente humana. A breve explicação é que a mente humana é muito paralela.

No entanto, seria mais simples calcular a distância com um programa, não uma IA, e simplesmente alimentar o resultado à AI que tomaria as decisões.

Considere a quantidade de tempo que você passou observando uma tela. Se você pode dizer a distância (aproximada) entre dois pixels, uma Rede Neural também pode, como você é um. No entanto, adicione a quantidade de tempo que você passou vivo e aprendendo na equação, e ela se torna um desastre.

Leitura adicional

O cérebro humano é paralelo

Isso é resultado do fato de que todos os neurônios no cérebro humano são independentes um do outro. Eles podem executar verdadeiras ações simultâneas , facilitando assim a ação de interpretar imagens, pois blocos de neurônios podem "pensar" independentemente das operações dos outros, limitando o que seria "defasado" a uma quantidade minúscula.


1

Você pode criar AI para "ver" como humano. Como você disse, dando ao humano as chaves, ele clicará aleatoriamente. Ele só precisa saber quais teclas ele pressiona que o aproximam de outros objetos na tela. Eu acho que o básico de uma IA é o reconhecimento de objetos. Eu tentaria criar um script para mapear os objetos de tela do jogo. Existem exemplos legais em Python.

Eu tentaria seguir um caminho como este:

  • Faça a AI entender que, ao clicar nas setas ou no WASD, ele está no contexto GAME, o objeto que move os pixels de acordo com a direção, representa o autor principal (o jogador).

  • Em paralelo: mapeie todos os limites da região e indexe objetos diferentes nessa região para ter automaticamente o domínio de coordenadas e a distância do objeto. A IA precisa VER (transmitir) o jogo e através de imagens para categorizar objetos. Você entende o que eu quero dizer?

  • Em paralelo: A IA precisa estar ciente de todos os textos e informações que estão na tela (todos mapeados, lembra-se?). Você precisa entender quando um texto muda ou acontece algo diferente. Por exemplo: sempre que ele retornar à posição inicial de cada fase, sempre que tiver uma contagem, o que acontece quando o cout chega a zero ou a um número comum que gera outro tipo de alteração.

  • Ele precisa entender o que é repetido a cada "reaparecimento". Você também precisa entender o que é "respawn". Talvez uma determinada posição do mapa em cada mapa retorne sempre que uma contagem na tela termina. Ou quando se deparar com um certo tipo de objeto (objeto mapeado)

Para ser honesto, se você deseja criar um robô super inteligente, pode seguir todas as etapas que passam pela cabeça de diferentes seres humanos, ou dos melhores humanos, ou das regras de cada jogo. Às vezes, porém, é mais fácil criar bots específicos para executar tarefas específicas. Depende do que você quer fazer


Ele não estava perguntando como você faria isso, mas você pode fazê-lo.
FreezePhoenix 18/04/19

É possível fazer isso de várias maneiras. Passei pelo caminho que levaria para criar o modelo. Não é uma teoria, é um processo que pode abranger outros processos de acordo com a evolução da IA.
Guilherme IA

1

O que você menciona é o exemplo perfeito para o planejamento de caminhos , amplamente pesquisado em IA.

Por favor, procure o algoritmo A-star e como aprimorá-lo com redes neurais :)


1

Podemos resolver o problema da seguinte maneira:

<x0,y0,x1,y1>(x0y0)2+(x1y1)2

<x0,y0,x1,y1>

Obviamente, não há razão para fazer isso em duas redes neurais separadas, para que possamos combinar os dois de ponta a ponta com um modelo que leva a imagem como entrada e a distância como saída.

No entanto, esse modelo precisa ser treinado em dados rotulados, portanto, você precisará gerar os dados por conta própria ou rotular imagens.

Mas se você quiser aprender a noção de fechar uma distância de uma maneira menos supervisionada, precisará usar o aprendizado por reforço. Nesse caso, você precisaria configurar um ambiente que incentive o agente a reduzir a distância. Isso pode ser tão simples quanto ganhar recompensa se uma ação reduzir a distância.

Outra abordagem seria incentivar o agente usando recompensa futura. Ou seja, sua recompensa não vem apenas dos resultados do próximo estado imediato, mas também há contribuições do próximo estado possível, e do seguinte, e assim por diante. Essa é a idéia por trás do Deep Q-Learning, e eu implementei um exemplo simples (muito semelhante ao que você está descrevendo) neste caderno .

Então, agora a pergunta é: essa implementação fez algo diferente de se mover aleatoriamente até seguir um caminho para o sucesso?

No seu exemplo, você fala sobre recompensar o agente quando ele atinge o objetivo. Mas no que descrevi, ele ganhou recompensa ao se aproximar da meta (por meio da função Q ou diretamente do ambiente). É capaz de fazê-lo aprendendo alguma idéia abstrata de distância (que pode ser ilustrada na versão supervisionada).

Quando um humano aprende isso, é pela mesma razão exata: o humano está ganhando uma recompensa por seguir nessa direção através de um senso de recompensas futuras.

Eu diria que, com treinamento e dados suficientes, o aprendizado por reforço pode aprender esse conceito com facilidade. Quanto a outras recompensas presentes no quadro (por exemplo, "minimize a entropia do quadro e tente obter recompensas"), você precisa pensar no que está pedindo. Você prefere que o agente minimize a distância ou maximize a recompensa? Porque, em geral, não pode fazer as duas coisas. Se você está procurando algum equilíbrio entre os dois, realmente está redefinindo a recompensa para também considerar a distância.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.