Aprendizado por Reforço

Jogue um jogo de tabuleiro contra um agente, que é treinado usando aprendizado por reforço e implantado com o TensorFlow Lite.

iniciar

Se você é novo no TensorFlow Lite e está trabalhando com Android, recomendamos explorar o aplicativo de exemplo a seguir que pode ajudá-lo a começar.

Exemplo Android

Se você estiver usando uma plataforma diferente do Android ou já estiver familiarizado com as APIs do TensorFlow Lite , faça o download do nosso modelo treinado.

Baixar modelo

Como funciona

O modelo é construído para um agente de jogos jogar um pequeno jogo de tabuleiro chamado 'Plane Strike'. Para uma rápida introdução deste jogo e suas regras, consulte este README .

Sob a interface do usuário do aplicativo, criamos um agente que joga contra o jogador humano. O agente é um MLP de 3 camadas que recebe o estado da placa como entrada e gera a pontuação prevista para cada uma das 64 células da placa possíveis. O modelo é treinado usando gradiente de política (REINFORCE) e você pode encontrar o código de treinamento aqui . Após treinar o agente, convertemos o modelo em TFLite e o implantamos no aplicativo Android.

Durante o jogo real no aplicativo Android, quando é a vez do agente agir, o agente verifica o estado do tabuleiro do jogador humano (o tabuleiro na parte inferior), que contém informações sobre ataques anteriores bem-sucedidos e malsucedidos (acertos e erros) , e usa o modelo treinado para prever onde atacar em seguida, para que possa terminar o jogo antes do jogador humano.

Referências de desempenho

Os números de referência de desempenho são gerados com a ferramenta descrita aqui .

Nome do modelo Tamanho do modelo Dispositivo CPU
Gradiente de política 84 Kb Pixel 3 (Android 10) 0,01 ms*
Pixel 4 (Android 10) 0,01 ms*

* 1 fios usados.

Entradas

O modelo aceita um tensor 3-D float32 de (1, 8, 8) como estado da placa.

Saídas

O modelo retorna um tensor 2-D float32 de forma (1,64) como as pontuações previstas para cada uma das 64 posições de ataque possíveis.

Treine seu próprio modelo

Você pode treinar seu próprio modelo para uma placa maior/menor alterando o parâmetro BOARD_SIZE no código de treinamento .