Como usar a inteligência artificial no xadrez do computador

19

Em alguns artigos (históricos), o xadrez tem sido referido como a drosófila da inteligência artificial. Embora eu suponha que na pesquisa atual, a mera aplicação de um algoritmo de pesquisa seja, na melhor das hipóteses , ciência da computação avançada , acredito que ainda existem áreas em que podemos aplicar (e praticar) técnicas de IA.

Um exemplo simples seria a abertura do aprendizado de livros, onde se pode ensinar ao programa se deve usar ou não determinados movimentos na abertura, porque o programa não é adequado a certos tipos de posição. Podemos usar uma forma de aprendizado por reforço e automatizar isso: suponho que eu possa reproduzir o programa contra si mesmo e aumentar a probabilidade de ganhar linhas e diminuir a probabilidade de perder linhas.

O exemplo mais complexo é usar uma função de avaliação de aprendizado (por exemplo, é possível ajustar os valores das tabelas em partes quadradas ). No entanto, estou pensando:

  • dado todo o ruído devido à enorme quantidade de posições realistas (em oposição à quantidade de linhas de abertura realistas)
  • e com o custo (duração) de um jogo de xadrez por computador e a necessidade de jogar muito.

Como alguém pode fazer isso efetivamente? (ou devo procurar outras técnicas, por exemplo, redes neurais).

ljgw
fonte
3
A abordagem padrão é o minimax podado com alfa-beta. com uma heurística. É da família Search da IA, e não da família de aprendizado de máquina.
Lyndon White
2
Os mestres de xadrez atuais basicamente se lembram de todos os jogos que jogaram anteriormente ... Portanto, eles têm forte memorização.
2
Há também a contra-alegação. Não me lembro de quem disse isso, mas é assim. Os biólogos usam experimentos em drosófila para obter uma compreensão cada vez mais profunda da fisiologia, genética e assim por diante. As pessoas da IA ​​escrevem computadores de xadrez para serem cada vez melhores jogando xadrez. Isso não nos ensina muito sobre ciência da computação; seria como os biólogos criando drosófilas super-rápidas e super-fortes e fazendo-os lutar um contra o outro.
David Richerby
wrt a metáfora, é concebível mais do que "drosophila da inteligência artificial" wrt diferentes aspectos, esp considerando aquilo não decisivamente bater o top humano até ~ 1997 & investigação sobre ele continua, etc
vzn

Respostas:

16

Todo o espaço estatal para o xadrez é enorme - pode ser estimado em 10 43 (número de Shannon (Shannon, 1950) , ( Wikipedia )).

A idéia que você apresenta - agentes de Aprendizagem por Reforço que jogam uns com os outros para aprender o jogo - foi aplicada com sucesso ao Gamão - TD-Gammon (Tesauro, 1995) , ( Capítulo em Aprendizagem por Reforço de Sutton & Barto ). Ele também usou as Redes Neurais para estimar a função de valor do jogo. Esse problema é, no entanto, muito mais simples, pois o número de estados no Gamão é significativamente menor que no xadrez, a saber: 18.528.584.051.601.162.496 ( tópico Arquivo de Fórum do Gamão ).

Se você, no entanto, terminasse o jogo após alguns movimentos iniciais e visasse apenas aprender "boas aberturas", poderia ter sucesso com uma abordagem análoga. O principal problema seria avaliar o jogo após o jogo de abertura, o que parece difícil. Apenas uma medida de semelhança com as posições estabelecidas após aberturas conhecidas não é suficiente, porque a posição pode estar longe delas se o oponente fizer um movimento estúpido (por isso não seria por causa do erro do agente de aprendizagem, portanto, a posição mesmo se "incorreta "deve ser avaliado como um bom resultado).

Referências:

BartoszKP
fonte
1
A parte mais difícil, na verdade, é encontrar uma maneira empírica de marcar o resultado das aberturas. Aberturas diferentes podem ser boas de maneiras diferentes; portanto, provavelmente existe uma infinidade de aberturas aceitáveis.
JDong
3

Tenho certeza de que qualquer método possível (ou estranho) de IA ou ML em livros didáticos foi tentado e praticamente falhou em comparação com a força bruta simples.

Minha perspectiva pessoal é que o xadrez em si não tem mais interesse para a IA moderna ... Simplesmente, porque está resolvido : basta usar um computador moderno e força bruta. Portanto, não acho que seja necessário criar um sistema "inteligente" para resolvê-lo com mais eficiência (funciona muito bem no meu celular), e acredito que não há nem a necessidade de algo desconhecido e mais abordagem "inteligente" para existir.

iliasfl
fonte
1
Não sei por que isso foi prejudicado. O argumento de que o xadrez é "resolvido" é um pouco impreciso, pois nenhum computador pode olhar para qualquer posição possível e avaliá-la perfeitamente. Dito isto, o iliasfl está certo de que o xadrez perdeu a maior parte de seu apelo à pesquisa de IA. Por um lado, os melhores programas de xadrez para computador agora são muito mais fortes que os melhores humanos, com tempo e poder de processamento suficientes. Isso torna cada vez mais difícil para os programadores avaliarem até que ponto um algoritmo funciona.
Elixenide
1
Obrigado, eu disse resolvido no sentido de que a força bruta é uma solução. É claro que a comunidade de IA (em geral, não apenas aqui) não está feliz com essa "solução". No entanto, já temos um sistema computacional que apresenta um comportamento "inteligente" para resolver esta tarefa e até ganhar os melhores seres humanos. Pessoalmente, acredito que o xadrez ficará fora de tópico para a IA depois de alguns anos, quando a atual massa de acadêmicos que passaram carreiras em atacá-la se aposentar.
Eu não chamaria as implementações atuais de xadrez de computador como 'resolvidas pela força bruta' - elas ainda estão pesquisando grandes quantidades de estados de jogos, mas existem muitos componentes de força não bruta por lá. É claro que elas não são uma solução "estilo humano" que generalizaria bem para outros problemas, mas não me surpreenderia que, se tivéssemos uma IA de xadrez "estilo humano", haveria várias ordens de magnitude menos eficiente do que as soluções especializadas atuais, tornando-o simplesmente inferior.
Peteris
Acho que essa resposta e seus comentários foram claramente refutados pelo AlphaZero do Google: en.wikipedia.org/wiki/AlphaZero Mesmo que você aceite as críticas sobre a configuração do Stockfish e eles tenham empatado todas as partidas, um sistema que chegou a esse nível com algumas horas de treinamento é claramente superior.
Kamal
2

Eu acho que vale a pena notar que, para determinar como resolver um problema de IA, você deve defini-lo. Se é Totalmente Observável ou Parcialmente Observável , e se é Determinístico ou Estocástico / Chance.

O xadrez é totalmente observável (ao contrário de Gamão, Monopólio ou Poker, por exemplo). Também é determinístico (como damas e Go, por exemplo). Por fim, existem adversários e, por isso, ao determinar a próxima melhor jogada, é útil usar o tipo de pesquisa adversa. algoritmos como o MiniMax. A classificação de um problema pode nos ajudar a determinar que tipo de algoritmo de pesquisa queremos aplicar. E, no caso do xadrez, a Pesquisa Adversarial seria adequada.

Minimax em particular tem um

O(bn)

O(bm)

Portanto, no caso do xadrez, b seria 35 e m seria 100. Existem maneiras de contornar isso ou estratégias para torná-lo mais eficiente, como o corte alfa-beta.

Iancovici
fonte
Também vale a pena notar, neste contexto, que os jogos finais de xadrez para até poucas peças já estão tabulados - uma otimização adicional.
BartoszKP
Essa é a abordagem normal, mas não a de aprendizado de máquina. A pergunta usa a tag de aprendizado de máquina.
Lyndon White
@Oxinabox, embora isso fosse verdade, o autor da pergunta não mencionou em que lugar do título ou do corpo ele estava interessado na abordagem de aprendizado de máquina, apenas no final em que estava compartilhando um exemplo de abordagem que tinha em mente. Não há necessidade de restringir o problema ao Machine Learning, nem a um único algoritmo de aprendizado (NN).
Iancovici
Na verdade, isso é bom
Lyndon Branca
para ser preciso, o xadrez não é Observável Totalmente, uma vez que, dada uma posição que não sabemos, por exemplo, um rei ou uma torre já se moveu ou não, embora seja importante para a geração de movimentos (o roque ainda é possível?), mas um programador pode torná-lo totalmente observável alterando a representação da posição, diferenciando rei / torre não movida e rei / torre movida como figuras diferentes, embora isso adicione algumas dificuldades.