Anais do 12 O Encontro de Iniciação Científica e Pós-Graduação do ITA XII ENCITA / 2006 Instituto Tecnológico de Aeronáutica São José dos Campos SP Brasil Outubro 16 a19 2006 UTILIZAÇÃO DE APRENDIZADO POR REFORÇO PARA APRENDER A ESTRATÉGIA DO JOGO DA VELHA Marcelo Corrêa Horewicz Instituto Tecnológico de Aeronáutica ITA.Programa de Pós-Graduação em Aplicações Operacionais (PPGAO). H9B apt 203 Campus do CTA - São José dos Campos 12228-611 SP Brasil horewicz@ita.br Cairo Lúcio Nascimento Jr. Instituto Tecnológico de Aeronáutica ITA. Divisão de Engenharia Eletrônica. São José dos Campos 12228-900 SP Brasil cairo@ele.ita.br Resumo. Neste artigo são apresentados os resultados alcançados com o aprendizado por reforço do inglês Reinforcement Learning (RL) de jogadores artificiais de jogo da velha em um tabuleiro com 3X3 casas. O aprendizado por reforço é uma técnica de aprendizagem onde os agentes recebem recompensas e punições a partir da realização de uma determinada ação. No caso em estudo primeiramente um jogador artificial de jogo da velha aprendeu por reforço boas estratégias de jogo após ter sido treinado por um outro jogador artificial que já possuía boas estratégias do jogo da velhaeste jogador fora implementado com o algoritmo conhecido como Min-Max. Numa segunda situação dois jogadores artificiais se confrontaram aprendendo por reforço conjuntamente as estratégias do jogo. As simulações realizadas em MATLAB comprovaram a eficiência da técnica e os jogadores artificiais aprendizes ao final dos treinamentos ficaram capacitados a jogar o jogo da velha contra qualquer adversário seja este uma outra máquina seja este um ser humano. Palavras chave:inteligência Artificial algoritmo min-max aprendizado por reforço. 1. Introdução O aprendizado é a aquisição de conceitos e de conhecimentos estruturados. O estudo do aprendizado pela máquina é uma área fundamental da inteligência artificial (IA). O aprendizado pode ocorrer com ou sem a presença de um tutor ou seja de um professor. O aprendizado supervisionado caracteriza-se pela orientação de um tutor na aquisição dos conceitos e de conhecimentos estruturados enquanto que o aprendizado não-supervisionado ocorre apenas em função dos estímulos primitivos não existindo a figura do tutor na aprendizagem. Um dos mecanismos empregados no processo de aprendizagem é o de punição e recompensa onde as tentativas e os erros são disciplinados por um supervisor que fornece ao aprendiz um sinal de retorno na forma de punição ou recompensa dependendo das ações certas ou erradas executadas pelo supervisionado. A aprendizagem por reforço é um típico problema de aprendizagem baseado em punição e recompensa ou comportamental e é realizada através da interação entre o sistema de aprendizagem e o seu ambiente dentro do qual o sistema procura alcançar um objetivo específico apesar da presença de incertezas. O fato de que esta interação é realizada sem um professor torna a aprendizagem por reforço atrativa para situações dinâmicas em que é custoso ou difícil reunir um conjunto satisfatório de exemplos de entradas e saídas. A aprendizagem por reforço pode ser aplicada ao clássico jogo da velha do inglês Tic-Tac-Toe. Neste caso pretende-se que a máquina possua a capacidade de jogar o jogo da velha com boas estratégias de jogo adquiridas após um treinamento utilizando o aprendizado por reforço. A máquina uma vez aprendido estratégias do jogo da velha terá condições de jogar contra seres humanos ou computadores. Para que a máquina possa aprender a jogar o jogo da velha ela necessita de jogar contra um oponente que conheça as regras e de preferência que possua boas estratégias de jogo. Para um primeiro treinamento foi utilizado como adversário um programa que já possuía o conhecimento de estratégias do jogo da velha desenvolvido segundo a técnica conhecida como Min-Max. Num segundo treinamento foram utilizados dois jogadores aprendizes que se confrontaram e com isto aprenderam conjuntamente e por reforço as estratégias do jogo da velha. Vale a pena ressaltar que neste caso nenhum dos dois jogadores conheciam algum tipo de estratégia de jogo antes do treinamento. Para efeitos de padronização e facilidade de entendimento a partir deste momento a máquina que utilizou a técnica de aprendizagem por reforço será denominada simplesmente de AR e a máquina que foi desenvolvida segundo a técnica Min-Max será chamada simplesmente de Min-Max. No segundo caso de treinamento os jogadores artificiais serão nomeados como AR1 e AR2. Neste artigo são mostrados os resultados obtidos pelo treinamento de um AR jogando contra um Min-Max e pelo treinamento de um AR1 jogando contra um AR2.
2. Aprendizagem por Reforço Segundo (Sutton e Barto 1998) aprendizagem por reforço (AR) é um formalismo da Inteligência Artificial que permite a um indivíduo aprender a partir da sua interação com o ambiente no qual ele está inserido. A aprendizagem se dá através do conhecimento sobre o estado decorrente das ações que são elementos essenciais na área de aprendizado de máquina. Desta forma a aprendizagem por reforço é uma técnica de aprendizagem de máquina que consiste no aprendizado do mapeamento de estados em ações de modo que um valor numérico de retorno seja maximizado. O agente não precisa inicialmente saber as ações que deve tomar mas deve descobrir quais ações o levam a obter maiores valores de retorno. Segundo (Haykin 2001) na aprendizagem por reforço o aprendizado de um mapeamento de entrada e saída é realizado através da interação contínua com o ambiente visando a minimizar um índice escalar de desempenho. A Figura 1 mostra o diagrama de blocos de uma forma de sistema de aprendizagem por reforço construído em torno de um crítico que converte um sinal de reforço primário recebido do ambiente em um sinal de reforço heurístico. O sistema é projetado para aprender por reforço atrasado o que significa que o sistema observa uma seqüência temporal de estímulos também recebidos do ambiente que ocasionalmente resultam na geração do sinal de reforço heurístico. O objetivo da aprendizagem é minimizar uma função de custo para avançar definida como a expectativa do custo cumulativo de ações tomadas ao longo de uma seqüência de passos em vez simplesmente do custo imediato. Pode acontecer que certas ações tomadas anteriormente naquela seqüência de passos de tempo sejam de fato os melhores determinantes do comportamento global do sistema. O sistema de aprendizagem tem como função descobrir estas ações e realimentá-las para o ambiente (Haykin 2001). Reforço Primário Ambiente ENTRADA Crítico Ações Reforço Heurístico Sistema de Aprendizagem Figura 1. Diagramas em bloco do Aprendizado por Reforço. A aprendizagem por reforço diferencia-se de outros tipos de aprendizagem por ser um aprendizado por interação ou seja o agente por aprendizagem por reforço age no ambiente e recebe um valor de reforço que o ambiente retorna em resposta perante a ação tomada assimilando através do aprendizado o valor de reforço obtido para tomar decisões posteriores. 3. Algoritmo Min-Max O algoritmo conhecido como Min-Max é bastante utilizado em teoria de jogos e habilita computadores a possuir boas estratégias em jogos. O algoritmo tem como premissa maximizar uma função de utilidade assumindo que o adversário jogará perfeitamente para minimizá-la (Russell 1995). Segundo (Nascimento 2000) o algoritmo Min-Max é fundamentado numa expansão de nós de uma árvore e para que se possa selecionar a melhor opção de jogada há a necessidade de uma heurística que permita fornecer a cada jogada um valor que indique a vantagem posicional alcançada pelo movimento conhecido. No caso do jogo da velha especificamente uma heurística bastante utilizada é a da diferença entre o número de alinhamentos possíveis para cada jogador ou seja a diferença entre todos os alinhamentos possíveis naquele momento para o adversário ganhar e todos os alinhamentos possíveis naquele momento para o computador ganhar. É baseada nesta heurística que o computador
realiza sua estratégia de jogo maximiza a sua jogada levando-se em conta que o adversário fará o melhor possível para minimizá-la. Daí vem o nome do algoritmo: Min-Max. Como dito o algoritmo Min-Max fundamenta-se em uma árvore como mostrado na Figura 2 porém o cálculo da heurística é realizado das folhas para a raiz que é a primeira jogada realizada. Se o algoritmo realiza os cálculos apenas para uma jogada sua e do adversário a frente ele possui a profundidade de uma jogada no entanto se o algoritmo realiza os cálculos visualizando duas jogadas a frente ele possui uma profundidade de duas jogadas e assim por diante. Pode-se perceber que quanto maior o nível de profundidade de busca do computador maior o seu poder computacional e sua habilidade no jogo. Foram utilizados no treinamento do AR programas com o Min-Max com profundidade de uma jogada e com profundidade de duas jogadas. Figura 2. Construção da árvore aplicado ao jogo da velha. 4. Aprendizagem por Reforço no Jogo da Velha A utilização de aprendizagem por reforço no jogo da velha tem como objetivo produzir um jogador com inteligência artificial capaz de após um treinamento baseado em recompensas e punições jogar contra um oponente seja este um ser humano ou uma outra máquina. O primeiro passo do algoritmo de aprendizado por reforço é a geração de uma lista permanente com os estados que são aprendidos com o decorrer do treinamento a alocação dos estados é dinâmica e depende da quantidade de jogos e da habilidade do adversário treinador. Além desta lista permanente é criada uma lista temporária para cada jogo completo realizado esta lista guarda a seqüência de jogadas daquele jogo específico. Tanto na lista permanente quanto na lista temporária são armazenadas as matrizes de jogo composta de 9 campos (num tabuleiro 3X3) marcando um valor 1 para a jogada do adversário na casa correspondente um valor -1 para a jogada do computador na casa correspondente e um valor zero para a casa que ainda não foi jogada. Além disto também é armazenada uma lista de probabilidades associada para cada casa em cada estado. Esta lista é iniciada com cada campo contendo um valor de 0.5 ou seja é suposto que inicialmente existem 50% de chance do computador ganhar o jogo jogando em qualquer casa vaga para cada estado de jogo apresentado. Para cada jogada do computador é sorteado um valor que define em qual casa vaga o computador deverá jogar de forma que inicialmente a jogada é realizada de uma forma totalmente aleatória. Conforme o AR vai sendo treinado os valores das probabilidades vão se alterando sendo diminuídos ao receber um reforço negativo ou aumentado ao receber um reforço positivo. Para atualizar os valores das probabilidades é utilizado o método da aprendizagem por diferença temporal. O valor corrente do estado é ajustado de forma a ter seu valor mais alterado do que os estados iniciais isto porque nos estados finais é que se sabe se houve ou não uma vitória. A Equação (1) descreve a regra de atualização das probabilidades de se ganhar o jogo conforme (Sutton e Barto 1998): V(s) V(s) + α[v(s ) V(s)] (1) Sendo: α é a taxa de aprendizagem V(s) é o valor da probabilidade atualizada a cada fim de partida
V(s ) tem o valor inicial de 1 no reforço positivo ou seja quando há uma vitória e 0 no reforço negativo ou seja quando há uma derrota do computador. Ao final de cada partida todos os estados contidos na lista temporária têm suas listas de probabilidades atualizadas proporcionalmente conforme a equação acima. Ao fim do treinamento o AR possui uma lista permanente que especifica as melhores jogadas a serem executadas a cada estado aprendido. 5. Resultados Nesta seção serão apresentados alguns resultados interessantes do treinamento de um AR contra um Min-Max e de dois AR aprendendo por reforço conjuntamente. Na primeira situação o AR treina contra um Min-Max com 1 e com 2 níveis de profundidade de busca a frente. Numa segunda situação um AR1 treina contra um AR2 sendo que ambos jogadores somente sabem as regras do jogo não tendo nenhum tipo de estratégia inicial de jogo. Primeiramente somente o AR1 inicia o jogo numa seguinte simulação os jogadores iniciam intercalados ou seja o AR1 inicia o jogo nas partidas ímpares e o AR2 inicia o jogo nas partidas pares. 5.1 AR x Min-Max: Jogador Min-Max inicia o jogo Quando o jogador implementado com a técnica Min-Max inicia o jogo tanto com a profundidade de 1 jogada quanto na profundidade de 2 jogadas a frente não é possível vencê-lo no máximo o que ocorre é o empate. No caso do jogo da velha a técnica do Min-Max possui um desempenho excelente quando este inicia o jogo. Numa primeira simulação de treinamento manteve-se fixa a taxa de aprendizagem α em 0.95 e alterou a quantidade de partidas jogadas com o Min-max possuindo profundidade de 1 jogada. A Figura 3 mostra os resultados obtidos para a quantidade de jogadas de 10.000 15.000 e 20.000 respectivamente. Em vermelho têm-se os valores percentuais de derrotas do AR em verde têm-se os valores percentuais de empates e em azul os de vitória que neste caso mesmo com o aumento significante do número de partidas foi completamente zerada ou seja mostrando que quando o Min-Max inicia o jogo ele é imbatível. Pode-se notar que mesmo alterando a quantidade de partidas o número de empates se estabilizou ao final do treinamento em 70%. Figura 3. Min-Max inicia Taxa de Aprendizagem α: 0.95 Quantidade de partidas: 10.000 15.000 e 20.000. Mesmo aumentando o número de partidas jogadas o máximo que o AR conseguiu foi empatar com o Min-Max. Para que o AR em seu treinamento por reforço vença um oponente que inicie o jogo é necessário que este jogador não seja invencível isto poderia ser realizado talvez com um ser humano não muito hábil. Numa segunda simulação de treinamento manteve-se fixa a taxa de aprendizagem α em 0.95 e a quantidade de partidas jogadas em 10.000 também com o Min-Max possuindo profundidade de 1 jogada. Porém agora foi alterada a estratégia do aprendizado as primeiras 300 partidas foram jogadas por sorteio ou seja com probabilidade a partir daí a escolha da jogada do AR foi selecionada pelo valor máximo da lista de probabilidade daquele estado específico. Com isto como pode ser visto na Figura 4 o AR aprendeu rapidamente a empatar o jogo o que ocasionou a elevação do índice de empates a quase 100% após o término do treinamento. Nesta simulação o AR obteve um índice de 9773% de empates no final do treinamento.
Figura 4. Alteração da estratégia de Aprendizagem: Min-Max inicia Taxa de Aprendizagem α: 0.95 Quantidade de partidas: 10.000. 5.2 AR x Min-Max: Jogador AR inicia o jogo Quando o AR inicia o jogo é possível vencer o Min-Max tanto na modalidade com a profundidade de 1 jogada quanto na da profundidade de 2 jogadas a frente. No caso do jogo da velha quando o Min-Max é o segundo jogador a jogar a técnica do Min-Max possui um fraco desempenho na profundidade de 1 jogada de busca e um desempenho razoável na profundidade de busca de 2 jogadas a frente. Numa primeira simulação o treinamento consistiu em 1.000 partidas jogadas entre o AR e o Min-Max mas agora tendo profundidade de 2 jogadas de busca onde apenas a taxa de aprendizagem do AR foi alterada. A Figura 5 mostra os resultados obtidos para as taxas de aprendizagem de 0.2 0.5 e 0.8 respectivamente. Em vermelho têm-se os valores percentuais de derrotas do AR em verde têm-se os valores percentuais de empates e em azul os de vitória do AR. Figura 5. AR inicia Quantidade de partidas: 1.000 partidas Taxa de Aprendizagem: 0.2 0.5 e 0.8 Profundidade 2 Inicialmente o AR possui uma quantidade excessiva de derrotas porém com o decorrer do tempo ele vai aprendendo a empatar até que ele finalmente aprende as melhores seqüências de jogadas para vencer o adversário não perdendo mais a partir daí. O Min-Max de profundidade 2 somente perde se o adversário jogar em um dos cantos do tabuleiro e o AR demora um certo tempo para perceber isto pois ele aprende aos poucos através das recompensas e punições recebidas durante a execução das partidas. No entanto a partir do momento que o AR identifica a limitação do adversário ele ganha sempre a partir de então chegando a um índice próximo de 100% de vitórias. A Figura 6 mostra este resultado quando é alterado o treinamento para 10.000 partidas sendo a taxa de aprendizagem de 0.95 e a profundidade do Min-Max de 2 jogadas de busca. Nesta simulação o AR obteve um índice de 9484% de vitórias no final do treinamento.
Figura 6. AR inicia Quantidade de partidas: 10.000 partidas Taxa de Aprendizagem:0.95 Profundidade 2 5.3 AR1 x AR2: Jogador AR1 inicia o jogo Na simulação o treinamento consistiu em 10.000 partidas jogadas entre dois AR sendo que apenas um deles sempre iniciava o jogo no caso o AR1. As taxas de aprendizagem dos ARs foram sempre iguais porém sendo alterados em cada simulação. A Figura 7 mostra os resultados obtidos para as taxas de aprendizagem de 0.2 0.5 e 0.8 respectivamente. Em vermelho têm-se os valores percentuais de derrotas do AR1 em verde têm-se os valores percentuais de empates e em azul os de vitória do AR1. Figura 7. AR1 inicia Quantidade de partidas: 10.000 partidas - Taxa de Aprendizagem: 0.2 0.5 e 0.8 Pode-se notar que mesmo alterando a taxa de aprendizagem dos ARs o número de vitórias do AR1 se estabilizou ao final do treinamento em 60% e do AR2 em 30%. Uma explicação possível para este fato é que o AR que inicia o jogo aprende com mais rapidez a ganhar e por isto possui um maior desempenho de vitórias do que o AR que só joga na segunda vez. Outro fato interessante é que a partir do momento em que o AR2 começa a vencer as partidas o AR1 começa a receber um reforço negativo para as suas jogadas no qual estava acostumado a vencer desta forma existe um efeito de desaprendizagem do AR1. 5.4 AR1 x AR2: Início Intercalado Nesta simulação os jogadores iniciaram intercalados ou seja o AR1 iniciava o jogo nas partidas ímpares e o AR2 iniciava o jogo nas partidas pares. Numa primeira simulação o treinamento consistiu em 10.000 partidas jogadas entre os dois AR sendo que as taxas de aprendizagem dos ARs foram sempre iguais e sendo alterados a cada simulação. A Figura 8 mostra os resultados obtidos para as taxas de aprendizagem de 0.2 0.5 e 0.8 respectivamente. Em vermelho têm-se os valores percentuais de derrotas do AR1 em verde têm-se os valores percentuais de empates e em azul os de vitória do AR1.
Figura 8. Início intercalado Quantidade de partidas: 10.000 - Taxa de Aprendizagem: 0.2 0.5 e 0.8 Pode-se notar que houve praticamente uma igualdade na quantidade de vitórias dos ARs desde as primeiras partidas o que caracteriza que o jogador que inicia o jogo provavelmente é o vencedor ou seja os ARs praticamente aprenderam apenas a vencer e não a empatar. Nesta simulação o empate foi considerado como um reforço negativo para ambos jogadores. Uma segunda simulação de treinamento para este caso foi realizada para tentar fazer com que os ARs aprendessem a empatar e não somente a ganhar quando era a sua vez de iniciar o jogo. Manteve-se fixa a quantidade de partidas jogadas em 10.000 e a taxa de aprendizagem dos ARs igualmente em 0.95. Além disto foi alterada a estratégia do aprendizado as primeiras 500 partidas de ambos ARs foram jogadas com o sorteio a partir daí a escolha da jogada a ser realizada pelos ARs foi selecionada pelo valor máximo da lista de probabilidade daquele estado específico. O empate agora foi considerado como sendo um reforço positivo para ambos jogadores. Nestas condições como pode ser observado na Figura 9 houve o aprendizado por ambos ARs em empatar o jogo independentemente de quem iniciava o jogo. Houve um índice de 9564 % de empates. Figura 9. Início intercalado Quantidade de partidas: 10.000 - Taxa de Aprendizagem: 0.95 6. Conclusões Este trabalho teve como finalidade mostrar os resultados obtidos na aprendizagem por reforço de um jogador artificial do jogo da velha com tabuleiro 3X3. Para o seu treinamento primeiramente foi utilizado um outro jogador artificial que fora implementado com o algoritmo conhecido como Min-Max utilizando profundidades de busca de 1 ou 2 jogadas a frente. Em seguida foi realizado um treinamento com dois jogadores artificiais aprendizes utilizando a técnica de reforço por aprendizagem sendo que ambos somente conheciam no início as regras do jogo não tendo nenhuma estratégia de jogo. Diversas simulações foram realizadas e os resultados mostraram que é bastante satisfatório o aprendizado de um jogador artificial utilizando a técnica de aprendizagem por reforço. As simulações mostraram que quando o Min-Max começa jogando ele é imbatível o AR no máximo conseguiu empatar tendo um índice de 70% de empates ao final do treinamento. Alterando a estratégia do aprendizado este índice chegou próximo aos 100% de empate.
Já nos casos em que o AR iniciava o jogo o computador aprendiz conseguia aprender os pontos fracos do Min Max e a partir deste momento a vencer todas as partidas chegando a um índice próximo de 100% de vitórias no final do treinamento. Neste caso não houve a necessidade de se alterar a estratégia de aprendizagem. Quando o treinamento é realizado com dois jogadores aprendizes tendo a mesma taxa de aprendizagem o jogador que inicia o jogo teve uma grande vantagem no número de vitórias possivelmente por ter aprendido mais rápido a vencer. Interessante foi o fato de verificar que com o decorrer do treinamento o primeiro jogador acabava desaprendendo o que tinha aprendido até então. Quando os jogadores iniciaram intercalados ou seja o primeiro jogador iniciava nas partidas ímpares e o segundo jogador iniciava nas partidas pares a quantidade de vitórias de ambos jogadores foram igualados. Notou-se que a quantidade de empates entre os jogadores era muito pequeno em torno de 10%. Uma explicação possível para isto é que o empate estava sendo considerado como um reforço negativo. Considerando o empate um reforço positivo igualando a taxa de aprendizagem em 095 e alterando a estratégia de escolha da jogada para ambos jogadores fez com que os jogadores aprendessem a empatar independentemente do jogador que iniciava o jogo. 7. Agradecimentos Gostaríamos de agradecer ao Conselho Nacional de Desenvolvimento Científico e Tecnológico - CNPq pela oportunidade da realização deste trabalho. 8. Referências Haykin Simon; Redes Neurais Princípios e Práticas 2ª Ed. Editora Bookman 2001. Nascimento Júnior Cairo Lúcio; Yoneyama Takashi; Inteligência Artificial em Controle e Automação Editora Wdgard Blücher Ltda 2000. Russell Stuart; Norvig Peter; Artificial Intelligence A Modern Approach Prentice Hall 1995. Sutton R. S. ; Barto A. G.; Reinforcment Learning: An Introduction. MIT Press Cambridge Massachusetts 1998.