Uma das perguntas mais populares feitas neste site diz respeito à perspectiva de uma IA de xadrez puramente treinada.
Hoje, o ChessBase está distraído de sua cobertura do torneio FIDE Candidates para relatar que uma nova IA está, pela primeira vez, vencendo um dos principais mestres do jogo bastante diferente, que resistiu às IAs no estilo do xadrez por muitos anos. Uma leitura inicial do relatório sugere que a nova IA é diferente das IA de xadrez, mas é mais uma IA de jogo geral (GGP). O artigo do ChessBase, no entanto, não usa o termo GGP, mas parece dizer que a IA pode ganhar em videogames simples.
Existe alguma razão para que tal IA vencedora não possa, com pequenos ajustes, também vencer no xadrez? Em caso afirmativo, tal IA mostra prometer atingir o puro autotreinamento que as várias excelentes respostas para a pergunta anterior discutiram anteriormente, que na época ainda não eram possíveis? Por que ou por que não?
Suspeito que ainda não esteja disponível uma resposta realmente completa e totalmente informada à minha pergunta, portanto, mesmo uma resposta parcial com base nos conhecimentos relacionados seria apreciada.
Para referência adicional, consulte também esta pergunta e respostas relacionadas.
ATUALIZAR
Quando a pergunta acima foi postada pela primeira vez há cinco dias e quando algumas das respostas abaixo foram dadas, as primeiras notícias sobre a vitória da AI AI tinham acabado de aparecer. Desde então, informações e comentários adicionais surgiram.
Particularmente interessante desde então tem sido uma discussão de mesa redonda de cinco lados bastante legível, na qual Jonathan Schaeffer observa:
Aprender com jogos humanos ajuda a acelerar o aprendizado do programa. AlphaGo poderia aprender a se tornar um jogador forte por conta própria, sem usar os jogos humanos. O processo de aprendizagem levaria apenas mais tempo.
De acordo com o anfitrião da mesa redonda, Schaeffer é "[c] professor de ciências da computação na Universidade de Alberta e o homem que resolveu damas"; então, presumivelmente, ele pode estar qualificado para comentar.
Para mais informações, aqui está o registro de outra discussão aberta, muitos dos quais parecem mais bem informados do que o habitual. A discussão ocorreu durante a partida.
Atualização adicional, um ano e meio depois: comentarista @MarkS. escreve:
Isso é apenas um comentário, porque trata-se de Go, não de Xadrez, mas o AlphaGo Zero alcançou um "autotreinamento puro" apenas por saber quem ganhou (e não a pontuação final) e é mais forte e muito mais eficiente que a IA que venceu Lee Sedol . Para mais informações, consulte deepmind.com/blog/alphago-zero-learning-scratch
Respostas:
Bem, bem, bem! A DeepMind publicou um artigo no qual afirma ter programado e treinado um computador de rede neural para vencer o Stockfish.
Com 1 minuto de reflexão por movimento, o computador AlphaZero vence o Stockfish em +25, = 25, -0 com branco e + 3, = 47,0- como preto.
Eles "treinaram" três computadores separados para jogar xadrez, shogi e Go e derrotar seus rivais de silicone de forma convincente.
Aqui está como o documento descreve o treinamento e a avaliação -
O computador deles usava uma nova forma de chip chamada "TPU" ( Unidade de Processamento Tensor ) desenvolvida pelo Google para tarefas de aprendizado de máquina.
Eles também afirmam que o algoritmo de pesquisa em árvore de Monte Carlo é melhor e mais "humano" do que os algoritmos de pesquisa alfa-beta tradicionais -
Aqui estão alguns dos jogos -
jogos
Branco: AlphaZero Preto: Bacalhau
fonte
Ok, tenho que admitir que estava errado. Embora eu afirmasse que isso se devia ao conhecimento da opinião de especialistas, não à obtusibilidade geral: Para citar o artigo : "No entanto, os programas de xadrez usando o MCTS tradicional eram muito mais fracos que os programas de pesquisa alfa-beta (4, 24); enquanto alfa Os programas beta baseados em redes neurais não conseguiram competir anteriormente com funções de avaliação artesanais mais rápidas. "
Aparentemente, o xadrez é estrategicamente profundo o suficiente para que você possa criar estratégias para alguém que possa calcular você. Para mim, isso é uma grande surpresa, porque o desenvolvimento dos motores de xadrez estava indo na direção oposta. (Aparentemente, ainda há uma pequena ressalva sobre se o AlphaZero é realmente mais forte que o Stockfish: o Stockfish jogado com apenas 1 gb para as hashtables e 64 núcleos pode não corresponder a quatro TPUs)
Também é algo muito, muito emocionante, porque o AlphaZero provavelmente tem forças muito diferentes dos motores tradicionais.
Isso também significa que atualizo muito minha crença no significado do AlphaGo como uma inovação tecnológica. Basicamente esmagar o shogi, o Go e o xadrez com uma única configuração é completamente incrível, sem mencionar dezenas de outros jogos que provavelmente poderiam ser jogados em nível sobre-humano pelo AlphaZero.
Há uma boa explicação sobre por que o MCTS é realmente uma idéia decente mesmo para o xadrez em comparação com a pesquisa alfa-beta (do artigo): "O AlphaZero avalia posições usando aproximação de função não linear com base em uma rede neural profunda, em vez de linear aproximação de função usada em programas de xadrez típicos. Isso fornece uma representação muito mais poderosa, mas também pode introduzir erros de aproximação espúrios. O MCTS calcula a média desses erros de aproximação, que, portanto, tendem a cancelar ao avaliar uma subárvore grande. Por outro lado, a pesquisa alfa-beta calcula um mini-max explícito, que propaga os maiores erros de aproximação para a raiz da subárvore ". (ênfase por mim)
Aqui está minha antiga resposta, ainda contendo alguns pontos válidos, apesar da conclusão ser substituída pela realidade.
Antes de tudo, o Alphago não é um sistema geral de jogo. É um programa projetado puramente para jogar e nada mais. É, no entanto, construído a partir de certos blocos de construção que têm uma aplicabilidade muito mais ampla, como redes neurais convolucionais , que foram usadas no reconhecimento de imagens e que têm aplicação imediata em diagnósticos médicos e aprendizado de reforço usado para dominar os jogos Atari mencionados em o artigo.
Além disso, os mecanismos atuais "aprendem" jogando-se : "Da noite para o dia, os seis computadores de Lefler jogam mais de 14.000 jogos cada um durante um período de oito horas." Seis máquinas vezes 14.000 jogos são muitos jogos ", diz ele. a cada jogo jogado, o banco de dados fica mais profundo e mais rico. Existe até um interesse esportivo em assistir computadores jogarem uns contra os outros. O resultado das movimentadas máquinas de Lefler é a proeza cada vez maior do Komodo.
Para chegar à maior parte da sua pergunta:
Há uma diferença importante entre xadrez e ir, pelo menos da perspectiva de um programador. O xadrez é mais um jogo tático, enquanto que o go é mais um jogo estratégico. Isso significa que, no cálculo do xadrez, a profundidade supera a avaliação posicional. Essa é basicamente a principal visão que distingue os "antigos" mecanismos como Fritz, Shredder, Junior e a geração mais recente, como Fruit, Rybka, Houdini, Stockfish, Komodo. Como no final de cada linha você precisa avaliar a posição e deseja calcular muitas linhas e a qualidade da avaliação não é tão importante quanto a profundidade da pesquisa, os mecanismos de xadrez têm funções de avaliação enxutas e rápidas.
Por outro lado, a complexidade tática é muito grande, mesmo para computadores. Conseqüentemente, avaliar posições e movimentos precisos é essencial. O que o Alphago traz de novo ao jogo é esse poder de avaliação, baseado em redes neurais convolucionais .
Para finalmente chegar ao meu ponto: enquanto as funções de avaliação do xadrez são simples e rápidas, as redes neurais têm milhões, às vezes bilhões de parâmetros. Como "aprender", nesse contexto, significa ajustar parâmetros, há muito mais progresso possível para os programas de auto-aprendizagem.
Então, sim, você poderia usar uma configuração como o Alphago para criar um mecanismo de xadrez, mas não seria particularmente bom. A execução da função de avaliação levaria tanto tempo que você teria que utilizar um enorme cluster de gpus para obter as profundidades de pesquisa necessárias (que é o que o Alphago faz). Você pode criar uma função de avaliação muito boa , mas a troca de velocidade não vale a pena.
fonte
Existe um projeto chamado spawkfish que tenta fazer exatamente isso. É um mecanismo baseado em rede neural cujo objetivo "é explorar como os recentes avanços no computador Go podem ser aplicados ao mundo do computador Xadrez".
É um projeto jovem e o motor ainda está bastante fraco. Jogá-lo é interessante, porque seu jogo posicional é melhor do que suas táticas.
fonte
A resposta curta é não!"
O xadrez e o go são radicalmente diferentes em sua relativa simplicidade e complexidade relativa, derivadas de sua geometria e de como você vence. Eles se combinam para criar um programa que é bom em um inútil no outro.
No xadrez, você ganha fazendo checkmating no oponente, os pontos não contam. É claro que um oponente sensato muitas vezes renuncia antes de entregar o xeque-mate, mas o princípio é o mesmo. Em ir, você ganha por ter mais pontos no final do jogo. Se eu tenho um rei e uma rainha e você tem um rei, torre e peão, mas você construiu uma fortaleza, então não importa que eu tenha 9 pontos para a rainha e você tenha apenas 6 pontos para sua torre e peão. O jogo é um empate.
Isso faz uma diferença fundamental na complexidade entre o xadrez e o jogo. Em movimento, você pode apenas manter a pontuação e você saberá quem está ganhando. No xadrez, a única maneira de saber quem está ganhando é por puro cálculo. Nesse sentido, o xadrez é muito mais complexo que o ir.
Ao mesmo tempo, devido à geometria dos dois jogos, há ordens de magnitude em mais possibilidades do que no xadrez. Nesse sentido, o go é muito mais complexo que o xadrez.
Um programa de xadrez funciona pelo cálculo da força bruta de todos os movimentos possíveis até uma certa profundidade que determina sua força. Um programa go não pode funcionar assim e reproduz algo mais avançado do que o go no nível iniciante.
O objetivo básico do jogo é controlar mais território do que seu oponente. No final de um jogo, não importa se a diferença é de 1 ou 100 pedras, ambas são vitórias. Toda vez que você coloca uma pedra, você faz duas coisas. Você aumenta seu território, potencial ou real, e diminui o do seu oponente.
Às vezes, quando há aumento ou diminuição real no território, é fácil calcular o valor do movimento, mas quando é potencial, é muito difícil avaliar. Como um jogador fraco, eu entendo o "real" muito melhor do que o "potencial" e um jogador mais forte vai me derrotar construindo um território potencial muito maior no centro enquanto eu construo um território real menor nas bordas e nos cantos. O jogador mais forte terá a capacidade de julgar pela intuição e sentir-se jogando muitos jogos e reconhecendo como construir um território "potencial".
Anteriormente, eu disse que toda vez que coloco uma pedra, aumenta meu território (real ou potencial) e diminui o de meu oponente (na verdade, se for um movimento estúpido, fará o oposto!). Em qualquer posição, nem todos os movimentos são iguais. Uma pedra colocada em uma posição pode valer muito mais ou menos do que uma pedra colocada em outra.
Normalmente, em um jogo, haverá pequenas "brigas" onde os jogadores colocam suas pedras próximas umas das outras, marcando seu território e limitando as de seus oponentes. Enquanto isso, há possibilidades de começar a vigiar território em outra parte do tabuleiro ou mudar para uma luta em outro lugar onde os dois jogadores já tenham pedras.
O que é muito importante nessas situações é saber quando parar uma luta, porque os ganhos potenciais diminuíram e mudar para outra luta ou talvez atacar em território virgem. Às vezes, isso depende de cálculos difíceis, mas geralmente é muito mais nebuloso e não está sujeito a cálculos. Como um jogador fraco, é aqui que um pagador forte me esmaga toda vez.
O que o computador faz nessas situações é usar métodos probabilísticos para gerar uma pontuação esperada para um movimento específico. Às vezes, o valor real acaba sendo um pouco menos, às vezes um pouco mais, mas a longo prazo, ele sai mais ou menos. Ele continuará escolhendo a jogada com o maior valor esperado, com a expectativa de que, a longo prazo de um jogo, pequenos erros sejam cancelados e sua estratégia vença.
Esta não é uma estratégia que parece familiar aos jogadores de xadrez e não é uma estratégia que funcione no xadrez. É algo que soa familiar para quem segue o que acontece nos mercados de ações. Parece muito semelhante a algo chamado "negociação de alta frequência", em que os computadores fazem milhares de pequenas apostas ou apenas propõem apostas a cada segundo para "níquel e centavo" no mercado e talvez até movê-lo muito marginalmente a seu favor por períodos de milissegundos.
Os mercados financeiros já são dominados por esses tipos de negociação algorítmica, o que sugere que esse tipo de programa já triunfou em uma área muito mais lucrativa do que um jogo de tabuleiro.
fonte
(Qualquer pessoa que queira uma discussão técnica profunda sobre o AlphaGo pode olhar para o meu post )
Resposta curta : Não
Resposta longa :
Primeiro, precisamos entender por que o Google não implementou o alfa-beta no AlphaGo. Stockfish e Komodo (e todos os mecanismos de xadrez) têm alfa-beta, por que o AlphaGo não?
Motivo : não existe uma maneira fácil e barata de avaliar com precisão uma posição Go estaticamente.
No xadrez, sempre podemos contar os materiais, uma maneira muito eficaz de avaliar uma posição estaticamente. Embora não seja perfeito, é muito rápido e um excelente proxy para o xadrez.
Pesquisando no espaço de estados com Monte-Carlo é um método inferior ao alfa-beta. O Google teria implementado o alfa-beta se pudessem, mas não puderam. Assim, eles foram forçados a usar algo muito mais lento.
O mecanismo de xadrez não funcionaria melhor com Monte-Carlo.
fonte
Eu discordo das outras respostas. Sou cientista da computação que trabalha profissionalmente na área de inteligência artificial e também sou candidato a mestre em xadrez e 3 dan em igo.
Acho que ainda não está claro se os métodos da Deep Mind poderiam ser aplicados ao xadrez, mas acho que é possível.
Atualmente, os principais programas de xadrez estão se baseando cada vez mais em heurísticas e a tentativa de usar a arquitetura AlphaGo para xadrez estaria, de alguma maneira, na mesma linha de pensamento.
Uma característica arquitetônica chave do AlphaGo que precisaria ser alterada é seu método de identificação de quadrados principais (ou mapas de calor), que é específico para jogos do tipo igo e não é diretamente aplicável ao xadrez. Algum análogo desse método teria que ser desenvolvido para tornar a arquitetura AlphaGo relevante para o xadrez. Por exemplo, poderíamos ter o conceito de "peças-chave" em vez de quadrados-chave.
Penso que o argumento de que a arquitetura AlphaGo não é relevante para o xadrez, porque o xadrez é mais tático, não é uma afirmação muito boa, porque, no final das contas, ambos têm árvores de busca que são suficientemente semelhantes em forma para que o AlphaGo possa definitivamente ser adaptado ao xadrez.
fonte
A resposta é sim! O Google acabou de provar isso ontem, quando o AlphaZero venceu o melhor programa de xadrez, usando apenas o conhecimento das regras e o autotreinamento puro, sem o conhecimento do xadrez humano. A resposta aceita está errada. O link para o artigo está aqui: link
fonte
Para ver o AlphaZero em ação, siga http://lczero.org/ ou jogue em http://play.lczero.org/
fonte