Rede Neural Multicamadas - Pet

Descrição
Redes Neurais (ou Neuronais), em estudos de Inteligencia Artificial (chamados de Artificiais), são sistemas baseados nos neurônios do cérebro (daí o nome), que são capazes de adquirir, armazenar e utilizar de determinado conhecimento experimental. Ou seja, dado uma entrada o sistema consegue através de exemplos observar um padrão e gerar um comportamento a partir dessas informações.

Como funciona
No caso do nosso exemplo, temos nosso querido P.O.C., um pet robô, (Um pet é um personagem não jogável, usualmente representado por um animal de estimação que acompanha o herói, o auxiliando em sua jornada) e queremos que este companheiro possa variar na forma de auxilio à nossa heroína, podendo defendê-la, ou ajudá-la a atacar os inimigos.


 * Primeiramente temos as entradas, que são os parâmetros que passaremos ao nosso sistema, são as informações que serão responsáveis pelas ações do robô. Para este caso, usamos a Quantidade de 'Vida do Jogador e a Quantidade de Vida do Inimigo.


 * Rede.png
 * Rede.png


 * Tendo essas informações em mente, em seguida passamos ao nosso robô exemplos de como essas informações poderiam influenciar nas suas ações. Que serão determinadas como booleanas, sendo 0 (falso) para defender e 1 (verdadeiro) para atacar. Já quanto as informações de entrada, iremos considerá-las como um valor entre 0 e 1 (Como por exemplo, onde 60/100 de vida correspondem à 0,6).


 * Assim sendo temos:


 * { Quantidade de vida do Jogador, Quantidade de vida do Inimigo } = { Ação do robô }




 * Quando a Quantidade de vida do jogador for igual à 60/100 e a do inimigo 40/100 o robô ataca

{ 0.6, 0.4 } = { 1 } 


 * Quando a Quantidade de vida do jogador for igual à 40/100 e a do inimigo 60/100 o robô defende

{ 0.4, 0.6 } = { 0 } 


 * Quando a Quantidade de vida do jogador for igual à 50/100 e a do inimigo 50/100 o robô defende

{ 0.5, 0.5 } = { 0 } 


 * Quando a Quantidade de vida do jogador for igual à 100/100 e a do inimigo 100/100 o robô ataca

{ 1, 1 } = { 1 } 


 * Considerando estas informações o robô irá fazer um cálculo que multiplica cada entrada pelo peso correspondente e realiza um somatório. Depois o resultado passa por uma função de ativação, que retorna os valores de saída em booleano. Sendo 1 (verdadeiro), o neurônio ativo e 0 (falso), inativo.

Demonstração
No vídeo temos a demonstração final da implementação, onde no canto direito superior temos os valores de entrada, que podem ser alterados com as setas direcionais e são atualizados em tempo real na execução do sistema. O robô retorna o resultado com a expressão em sua tela (rosto), que também é descrito logo abaixo.