Como você programa o medo em uma rede neural?

8

Se você foi atacado por uma aranha, uma vez que as chances são de que você nunca mais se aproximará de uma aranha.

Em um modelo de rede neural, ter uma experiência ruim com uma aranha diminuirá ligeiramente a probabilidade de você chegar perto de uma aranha, dependendo da taxa de aprendizado.

Isto não é bom. Como você pode programar o medo em uma rede neural, de modo que você não precise de centenas de exemplos de mordidas por uma aranha para ignorá-la. E também, que isso não reduz apenas a probabilidade de você escolher se aproximar de uma aranha?

zooby
fonte
O medo é uma taxa de aprendizado diminuída com um componente estocástico aumentado, mas sem um centro de linguagem o sistema não pode dizer: "Estou com medo".
FelicityC
Artigo do WP One-shoot learning en.wikipedia.org/wiki/One-shot_learning inclui uma seção sobre aprendizado com um exemplo.
Jaume Oliver Lafont

Respostas:

5

Existem várias abordagens que você pode adotar para isso. Pode ser possível criar um análogo artificial realista para o medo, implementado biologicamente em animais, mas há muita coisa envolvida na resposta ao medo de um animal real que não se aplicaria nos bots de IA mais simples disponíveis agora. Por exemplo, um animal que entra em um estado de medo normalmente usa hormônios para sinalizar mudanças em todo o corpo, favorecendo o gasto de recursos e a tomada de riscos ("luta ou fuga").

No aprendizado básico de reforço, a rede neural não precisaria decidir diretamente ativar um "modo de medo". Em vez disso, você pode usar algum design no agente e no algoritmo de aprendizado para ajudar a aprender com eventos raros, mas significativos. Aqui estão algumas idéias:

  • Experimente a repetição. Você já pode estar fazendo isso no cenário Pacman, se estiver usando DQN ou algo semelhante. Armazenar a transição e a recompensa do estado que causou uma grande recompensa positiva ou negativa e aprender repetidamente com ela devem compensar sua preocupação

  • Varredura priorizada. Você pode usar diferenças maiores experimentadas entre a recompensa prevista e a real para influenciar a amostragem da sua memória de repetição para eventos significativos e aqueles que estão intimamente ligados a eles.

  • Planejamento. Com um modelo preditivo - talvez baseado em transições de amostra (você pode reutilizar a memória de repetição de experiência para isso) ou talvez em uma rede de previsão de transição de estado treinada -, você pode observar vários passos adiante simulando. Também existe uma forte relação entre RL e planejamento antecipado, um algoritmo muito semelhante. A diferença é que estados e ações estão sendo considerados e se estão sendo simulados ou experimentados. A reprodução da experiência embaça a linha aqui - ela pode ser estruturada como aprendizado da memória ou melhoria das previsões para o planejamento. O planejamento ajuda a otimizar as decisões sem a necessidade de repetir as experiências - uma combinação de planejamento e aprendizado pode ser muito mais poderosa do que isoladamente.

  • Seleção de ação exploratória mais inteligente. Epsilon-ganancioso, onde você executa uma ação gananciosa ou uma ação completamente aleatória, ignora completamente o quanto você já aprendeu sobre ações alternativas e seu mérito relativo. Você pode usar algo como Limite superior de confiança com um agente baseado em valor.

  • Em um mundo determinístico, aumente o tamanho do lote para aprendizado e planejamento, pois você pode confiar que, quando uma transição é aprendida uma vez, você sabe tudo sobre ela.

Você precisará experimentar em cada ambiente. Você pode criar agentes de aprendizado mais conservadores sobre a exploração perto de áreas de baixa recompensa. No entanto, se o ambiente é tal que é necessário correr riscos para obter as melhores recompensas (o que geralmente acontece nos jogos), pode não ser o ideal em termos de tempo de aprendizado para ter um agente "tímido". Por exemplo, no seu exemplo de Pacman, às vezes os fantasmas devem ser evitados, às vezes eles devem ser perseguidos. Se o agente aprendeu aversão forte inicialmente, pode levar muito tempo para superar isso e aprender a persegui-los depois de consumir uma energia.

Para o seu exemplo da aranha, como construtor do experimento, você sabe que a mordida é sempre ruim e que o agente deve evitá-la o máximo possível. Para a maioria dos algoritmos de RL, não existe esse conhecimento, exceto o ganho com a experiência. Um modelo mundial de MDP não precisa corresponder ao bom senso; pode ser que uma picada de aranha seja ruim (-10 recompensa) 90% das vezes e boa 10% das vezes (+1000 recompensa). O agente só pode descobrir isso sendo mordido várias vezes. . . Normalmente, o RL não inicia com nenhum sistema para fazer suposições sobre esse tipo de coisa, e é impossível criar uma regra geral sobre todos os MDPs possíveis. Em vez disso, para um sistema RL básico, considere modificar os hiperparâmetros ou focar nos principais eventos, conforme sugerido acima. Fora de um sistema RL básico, pode haver mérito em replicar outras coisas,

Neil Slater
fonte
11
Será um processo bastante complexo modelar algo como o medo ... diferentes taxas de aprendizado para diferentes objetos (mas talvez isso seja resolvido pelo risco crescente = aumento da taxa de aprendizado), então algumas pessoas têm medo irracional de bugs ... . existe uma teoria de que nossa mente funciona logaritmicamente, ou seja, você tem medo de 1 tigre, ainda tem mais 2 tigres ... tem medo de 100 tigres, mas seu medo não aumenta tanto para 101 tigres quanto em o exemplo de 1 -> 2 caixas de tigre ... tudo isso pode ser modelado?
precisa saber é o seguinte
11
@DuttaA: Eu concordo, e é por isso que sugiro um monte de coisas que não são "medo real (tm)". Eu acho que um "medo instintivo" muito básico usando RL envolveria, de alguma forma, adicionar um valor baixo anterior à função de valor programaticamente sem experiência real.
Neil Slater
2

Eu acho que existem duas maneiras de fazer isso acontecer: 1) programar explicitamente o medo como uma restrição ou parâmetro em alguma expressão lógica, ou 2) utilizar um grande conjunto de dados de treinamento para ensinar o medo.

Pense em um jogo básico de Pacman - se é difícil dizer se Pacman tem medo dos fantasmas ou não os teme, mas eles são fantasmas e o Pacman os evita, então eu acho que é seguro que possamos usar isso como um exemplo básico de "medo". Uma vez que, neste jogo, medo = esquiva, você pode logicamente programar a esquiva para ser algum tipo de distância. Eu tentei isso com o aprendizado de reforço Pacman. Eu tentei definir uma distância de 5 quadrados para os fantasmas e sempre que Pacman pudesse ver um fantasma dentro de 5 quadrados, ele se moveria em uma direção diferente. O que descobri é que, embora Pacman tente evitar fantasmas, ele não conhece estratégia (ou tem inteligência). Pacman simplesmente se afastava dos fantasmas até ser encaixotado.

Meu argumento é que você pode programar sua rede para evitar que as aranhas não mordam, mas sem treinamento, você estará apenas criando um parâmetro básico que pode causar problemas se houver 100 aranhas super agressivas vindo em sua direção! A melhor maneira é usar alguma lógica básica para evitar aranhas, mas depois treinar a rede para ser recompensada, pois as aranhas melhores são evitadas.

Agora, existem muitas situações de medo, de modo que este exemplo com Pacman não se aplicaria necessariamente a todos ... Apenas tentando dar uma ideia da minha experiência em ensinar medo com aprendizado por reforço em Pacman.

CaptainPlanet
fonte
11
Estou pensando que, para algumas coisas como fogo, precisa ser um instinto. Porque no momento em que você teve alguns "exemplos de treinamento", você já estava bastante queimado. Mas com outras coisas, você só precisa de um exemplo, como ser mordido por um hamster, e aprender que os hamsters têm dentes afiados, para não colocar a mão na boca. Portanto, para algumas coisas, os instintos devem apenas impedir que você faça coisas como colocar a mão no fogo. Ou faça você pular de volta. Mas você também deve ter medo de se aproximar do fogo se descobrir que pode ser atingido por uma faísca?
zooby
2
@zooby na minha experiência, as crianças realmente não aprendem a temer o fogão ou o fogo quente até que se queimem. (por que você precisa ficar de olho neles!) Eu diria que, se o algoritmo estiver aprendendo a evitar através de uma técnica como a aprendizagem por reforço, é "aprender o que temer", enquanto que, se tiver o mecanismo de prevenção pré-programado, isso seria "instinto".
DukeZhou
2

O medo desse tipo é uma resposta irracional (grande incentivo negativo em resposta a um pequeno risco). A modelagem do medo precisaria modelar um fator de "grosseria" associado a, por exemplo, aranhas, para que a resposta normalmente não proporcional ocorresse. O fator "grosseria" poderia se manifestar de muitas outras formas para ampliar uma resposta a uma experiência anteriormente desagradável, embora não particularmente perigosa. Esse medo também pode ser inspirado por boatos (pense em histeria causada por uma notícia sensacional). Um NN normalmente responderia minimamente a um risco mínimo.

SchroedingersCat
fonte
1

Eu sugeriria que o agente avaliasse seu aprendizado de um determinado evento com base na gravidade das conseqüências para o evento. Por exemplo. Faça com que ele desenvolva um modelo de ameaça como os tipicamente redigidos no campo Segurança da informação. Alto risco, mas baixa probabilidade é algo que pode ser considerado e julgado.

Tentar imitar diretamente o medo humano seria tolo, você provavelmente acabaria com IAs com fobias se conseguisse muito bem.

Christopher Griffith
fonte