Computador aprende a língua através de jogos
Autor: Toni Lucena | Publicado: 2011-07-28T12:02:00-03:00

Computadores são ótimos para o tratamento de dados de palavras como: Word programas de processamento permitem que você reorganizar e formatar o texto como quiser, e motores de busca pode rapidamente encontrar uma palavra em qualquer lugar na web.&nbsp;Mas o que isso significa para um computador para realmente compreender o significado de uma frase escrita em Inglês comuns - ou francês, ou urdu, ou mandarim?&nbsp;Um teste pode ser se o computador pode analisar e acompanhar um conjunto de instruções para uma tarefa desconhecida.&nbsp;E, de fato, nos últimos anos, pesquisadores do MIT Ciência da Computação e Laboratório de Inteligência Artificial começaram a projetar sistemas de aprendizagem de máquina que fazem exatamente isso, com resultados surpreendentemente bons.Em 2009, na reunião anual da Associação de Linguística Computacional (ACL), os investigadores no laboratório de Regina Barzilay, professor associado de ciência da computação e engenharia elétrica, levou o prêmio de melhor papel para um sistema que gerou scripts para a instalação de um pedaço de software em um computador Windows, revendo as instruções publicadas no site da Microsoft ajuda.&nbsp;Na reunião deste ano do ACL, Barzilay, seu aluno de graduação SRK Branavan e David Silver, do University College London aplicada uma abordagem semelhante para um problema mais complicado: aprender a jogar "Civilization", um jogo de computador no qual o jogador guia o desenvolvimento de uma cidade em um império através dos séculos da história humana.Quando os pesquisadores aumentada de um sistema de aprendizagem de máquina para que pudesse usar o manual de um jogador para guiar o desenvolvimento de uma estratégia de jogo jogando, sua taxa de vitória saltou de 46 por cento a 79 por cento.Começando do zero"Os jogos são usados ​​como uma cama de teste para técnicas de inteligência artificial simplesmente por causa de sua complexidade", diz Branavan, que foi o primeiro autor em ambos os papéis ACL.&nbsp;"Toda ação que você toma no jogo não tem um resultado pré-determinado, porque o jogo ou o adversário pode reagir de forma aleatória para o que você faz. Então você precisa de uma técnica que pode lidar com cenários muito complexos que reagem de maneiras potencialmente aleatório."Além disso, diz Barzilay, manuais de jogo tem "texto muito aberto. Eles não dizer-lhe como vencer. Eles apenas dar-lhe conselhos muito gerais e sugestões, e você tem que descobrir um monte de outras coisas em seu próprio país."&nbsp;Em relação a uma aplicação como o programa de software, instalação, Branavan explica, os jogos são "um passo mais perto do mundo real."O extraordinário sistema Barzilay e Branavan é que ele começa com quase nenhum conhecimento prévio sobre a tarefa que é destinado a desempenhar ou a língua na qual as instruções são escritas.&nbsp;Tem uma lista de ações que pode levar, como botão direito do mouse ou da esquerda cliques, ou mover o cursor, tem acesso às informações exibidas na tela, e tem alguma forma de medir o seu sucesso, como se o software tem foram instalados ou se ganha o jogo.&nbsp;Mas ele não sabe quais ações correspondem ao que as palavras no conjunto de instruções, e não sabe o que os objetos no mundo do jogo representam.Assim, inicialmente, seu comportamento é quase totalmente aleatória.&nbsp;Mas já que tem várias ações, palavras diferentes aparecem na tela, e pode olhar para as instâncias dessas palavras no conjunto de instruções.&nbsp;Ele também pode pesquisar o texto em torno de palavras associadas, e desenvolver hipóteses sobre as ações que essas palavras correspondem.&nbsp;Hipóteses que consistentemente levam a bons resultados são dadas maior credibilidade, enquanto que aqueles que consistentemente levam a maus resultados são descartados.Prova de conceitoNo caso de instalação de software, o sistema foi capaz de reproduzir 80 por cento dos passos que um ser humano ler as instruções mesmo seria executado.&nbsp;No caso do jogo de computador, que ganhou 79 por cento dos jogos que jogou, enquanto uma versão que não contam com as instruções escritas venceu apenas 46 por cento.&nbsp;Os pesquisadores também testaram um algoritmo mais sofisticado de aprendizagem de máquina que evitou a entrada textual mas usou técnicas adicionais para melhorar o seu desempenho.Mesmo algoritmo que venceu apenas 62 por cento dos seus jogos."Se você me perguntasse antes se eu pensei que nós poderíamos fazer isso ainda, eu teria dito não", diz Eugene Charniak, professor da Universidade de Ciência da Computação na Universidade Brown.&nbsp;"Você está construindo algo em que você tem muito pouca informação sobre o domínio, mas você obter pistas do domínio próprio."Charniak ressalta que quando os pesquisadores do MIT apresentaram o seu trabalho na reunião ACL, alguns membros da audiência defendam que mais sofisticados sistemas de aprendizagem de máquina teria um desempenho melhor do que aqueles a que os pesquisadores compararam o seu sistema.&nbsp;Mas, Charniak acrescenta, "não é completamente claro para mim que isso é realmente relevante. Quem se importa? O ponto importante é que este foi capaz de extrair informações úteis a partir do manual, e é isso que nos preocupamos."A maioria dos jogos de computador tão complexo como "Civilization" incluem algoritmos que permitem que os jogadores para jogar contra o computador, e não contra outras pessoas; programadores dos jogos têm de desenvolver as estratégias para o computador para acompanhar e escrever o código que executa-los.&nbsp;Barzilay e Branavan dizer que, no curto prazo, seu sistema poderia fazer esse trabalho muito mais fácil, criando automaticamente algoritmos que executam melhor do que a mão-projetada queridos.Mas o objetivo principal do projeto, que foi apoiada pela National Science Foundation, foi demonstrar que os sistemas de computador que aprender o significado das palavras através exploratória a interação com seus ambientes são um assunto promissores para novas pesquisas.&nbsp;E, de fato, Barzilay e seus alunos começaram a adaptar seu significado inferindo-algoritmos para trabalhar com sistemas robóticos.