Uma IA de xadrez puramente autodidata


46

Pelo que entendi, parece que, antes de mudar, todos os softwares de xadrez fortes

  1. examina milhares ou milhões de posições possíveis e futuras;
  2. avalia cada posição futura de acordo com alguma heurística, chamada função de avaliação;
  3. avalia separadamente cada posição futura para quiescência, para decidir se deseja explorar continuações da posição;
  4. escolhe dentre os movimentos disponíveis pelo minimax; e
  5. usa um livro de abertura.

Por enquanto, tudo bem. No entanto, a força de um programa de xadrez parece depender principalmente da qualidade de suas heurísticas de avaliação e quiescência - e também de seu livro de abertura que, da perspectiva do computador, é outra heurística. Aparentemente, esse programa de xadrez sabe exatamente tanto sobre o jogo quanto o humano que criou as heurísticas. O programa parece não ter idéias próprias.

Alguém já escreveu um programa de xadrez que tem idéias próprias? Que aprende o jogo por conta própria? Isso se treina? Esse programa seria fornecido com as regras do jogo, é claro, e provavelmente ainda seria fornecido com infra-estrutura bruta de minimax e quiescência, e seria capaz de reconhecer e processar um parceiro forçado, se o encontrasse. No entanto, não seriam fornecidas heurísticas. Por exemplo, não seria dito para abrir o jogo em direção ao centro, nem preferir gralhas a cavaleiros, nem o que é a defesa siciliana. Teria que inferir tais princípios (ou, concebivelmente, descobrir melhores princípios) por si próprio.

Em sua forma pura, esse programa nunca teria jogos de mestre para estudar, mas apenas seus próprios jogos, jogados contra si mesmo. Somente uma vez totalmente autodidata seria desencadeada na competição humana.

Existe uma IA tão pura do xadrez? Já apareceu um autodidata no xadrez mecânico? De fato, o velho turco pode ensinar a si mesmo?

Aqui parece haver um breve aviso de uma IA pura do xadrez que falhou.

( Uma questão tangencialmente relacionada apareceu anteriormente neste site, a respeito do estudo computadorizado das aberturas de xadrez.)

ATUALIZAR

A pergunta é apresentada por três respostas diferentes e esclarecedoras no momento da redação deste artigo, por @WesFreeman, @GregE. e @Landei. Todos os três são altamente recomendados e eu me sentirei culpado quando, de acordo com a política do site, eu formalmente aceitar um, com exclusão dos outros. Deixe-me aqui agradecer e expressar minha gratidão pelos três.

As perguntas querem brevidade. Uma resposta às respostas, no entanto, pode demorar mais. Portanto, o leitor interessado pode pular daqui diretamente para as respostas e, se ainda estiver interessado, pode voltar a ler a atualização mais longa a seguir.

Quando fiz a pergunta, tinha em mente algo como o seguinte.

Suponha uma vila hipotética nos arredores de Shangri-La, onde as pessoas nunca ouviram falar de xadrez. Durante sua breve visita, você ensina aos anciãos da aldeia as regras do jogo, mas nunca os instrui em nenhum dos princípios do jogo. Dois dos idosos jogam um jogo como o resto dos outros assistem, enquanto você (não desejando atrapalhar o jogo kibitzing) restringe seu comentário a perguntas das regras. Nenhum post-mortem segue o jogo, nem o xadrez é jogado ou discutido novamente enquanto você permanece em Shangri-La. No entanto, quando você sai, para nunca mais voltar, deixa seu xadrez para trás.

Na sua ausência, os anciãos ensinam o jogo ao povo. Mais tarde, algumas pessoas brincam um pouco nas horas de lazer, outras com crescente entusiasmo, que fazem seus próprios jogos de xadrez.

Pode não ser imediatamente óbvio para esses moradores que uma torre é melhor que um cavaleiro, mas as pessoas ainda podem gradualmente descobrir os pontos fortes dos jogadores de xadrez durante o jogo de muitos jogos. Da mesma forma, pode não ser imediatamente óbvio para eles que 1. a4 foi uma má abertura: eles poderiam apenas tentar e considerar os resultados.

Até que ponto o entendimento dos aldeões do jogo acabaria convergindo para o do mundo exterior? Na falta de um livro de abertura, eles poderiam desenvolver novas aberturas? Obviamente, não se esperaria que as aberturas dos aldeões fossem muito boas no início, mas, dado alguns séculos de isolamento, os aldeões poderiam desenvolver um repertório de abertura respeitável, pelo que sei.

Alguma de suas aberturas, desenvolvidas de forma independente, seria interessante para o mundo exterior, quando o próximo viajante passasse para tomá-las nota, 200 anos depois? Shangri-La pode dar ao mundo o novo romance Shangri-La Defense?

Se sim, então, com relação à minha pergunta original sobre IA de xadrez, o que eu tinha em mente era mais ou menos isso: uma IA de xadrez poderia duplicar mais ou menos o progresso de xadrez dos aldeões nos arredores de Shanrgi-La?

Considerando a história de Sussman na resposta de @ Landei abaixo, é indubitavelmente verdade que meus moradores trariam certos preconceitos ao jogo. Por exemplo, eles trariam um entendimento de que possuir mais de uma coisa útil era geralmente melhor do que possuí-la menos e, portanto, que capturar peças de xadrez de um oponente era provavelmente preferível a sofrer a captura de alguém. O quão territorial o povo fictício de Shangri-La era por natureza é uma questão para a literatura, mas pode-se supor que eles reconheceriam uma posição que comandava mais espaço como superior a uma posição que comandava menos. E qualquer novato brilhante, uma vez mostrado um jogo de xadrez e instruído nas regras do jogo, pode inferir que uma rainha é provavelmente melhor que um peão, simplesmente pelo fato de que a rainha tem até 27 jogadas disponíveis,

Minha pergunta, portanto, não precisa ser interpretada como implicando uma injunção absoluta, ao estilo de Sussman, contra trazer qualquer tipo de conhecimento ao tabuleiro de xadrez; mas antes implicar uma liminar geral contra conhecimentos pré-concebidos e específicos do xadrez. Afinal (desconsiderando a questão da evolução das regras do jogo há muito tempo), em algum momento no passado, o primeiro jogo de xadrez foi jogado. Talvez o primeiro jogador tenha aberto 1. a4; mas, eventualmente, ele aprendeu melhor e ensinou o que havia aprendido aos seus discípulos; que por sua vez aprendeu mais e ensinou mais, geração por geração, a nos dar Kasparov.

Uma IA não poderia fazer algo assim, apenas em semanas e não em séculos?

Platão seria cético, suponho. Hume seria mais otimista, mas a questão não será mais resolvida apenas pela filosofia. Agora temos computadores eletrônicos com os quais testar a proposição, e eu queria saber qual era o estado da arte da IA. As melhores IAs do xadrez no momento parecem ser sistemas especialistas totalmente ininteligentes que vencem todos sem intuir nada. Eu me perguntei se as IAs um pouco mais amplas que, de alguma forma, realmente pensam em xadrez, tiveram algum sucesso considerável em aprender a si mesmas o jogo.

Acho que a resposta é não, provavelmente não.


4
Esta é uma das melhores perguntas deste site, na verdade.
prusswan

5
Parece que a resposta agora é sim, já que o DeepMind acaba de lançar pesquisas sobre uma nova IA de xadrez de última geração que eles treinaram do zero (apenas jogabilidade própria, sem jogos de referência). arxiv.org/pdf/1712.01815.pdf
Lalaland 6/17/17

1
Adicionando o comentário do @Lalaland, depois de treinar por 10 horas, ele esmagou completamente o bacalhau (não sei qual versão) como se o bacalhau fosse um novato. Praticamente inédito em jogos de mecanismo x mecanismo. Parece que alphago de zero gosta de jogar no estilo de Tal
Ariana

2
"Uma IA poderia fazer algo assim em questão de semanas, não séculos? Provavelmente não." Bem, você estava certo de uma maneira ... Levou apenas horas.
user230452

1
Muitos jogadores, como Capablanca, deveriam ter descoberto o jogo vendo-o jogado uma vez. E lembre-se de que o Alpha Zero não tinha mais nada em que pensar.
Philip Roe

Respostas:


26

Você tem alguns pontos muito interessantes. Tenho um pouco de experiência em pesquisa de IA (meu mestrado foi nesse campo), então acho que posso fornecer algumas idéias.

Pesquisa na área

Primeiro, a pesquisa nesse campo certamente está acontecendo - a busca pelo "xadrez da abordagem evolucionária" voltou com este artigo em 2001, fazendo exatamente o que você sugeriu, deixando a abordagem min / max e modificando apenas a função de avaliação. É possível desenterrar muito mais, e estou ciente de várias pessoas que estavam trabalhando neste campo em geral.

Possibilidades teóricas

Na minha opinião, o único fator limitante real para a criação de um xadrez "puro" jogando IA é o tempo de computação. Não há absolutamente nenhuma razão pela qual tal IA não possa ser teoricamente criada usando as abordagens atuais.

Praticidades

Existem dois problemas principais com o uso de abordagens evolucionárias ou genéticas na evolução de uma função heurística do xadrez, o primeiro é que, mesmo sendo mais básica, uma função heurística do xadrez é extremamente complexa. Estamos falando de centenas de regras, avaliações de peças (que podem diferir com base na posição etc.), análises posicionais etc. Você precisaria de uma linguagem de computador flexível para descrever essas regras e, em seguida, essas regras poderiam ser geradas aleatoriamente, é mutável, criado entre si, etc. É certamente possível, mas acho que você acabaria com um conjunto de regras composto por vários milhares de entidades. Essa é uma regra muito grande definida para evoluir dinamicamente.

O segundo problema é que, para realmente avaliar sua regra recém-modificada, você precisa jogar xadrez e ver quem acaba vencendo. Se você quiser fazer isso "corretamente", precisará de tempo suficiente para os dois pensarem, algo semelhante à duração típica do jogo. No entanto, jogar apenas com um único oponente não é suficiente; você gostaria de jogar com muitos oponentes diferentes, e talvez até com os mesmos oponentes, muitas vezes, antes de poder realmente estar convencido de que encontrou uma melhoria na força do jogo. Provavelmente, isso significaria jogar algumas centenas de jogos por indivíduo em sua população, e isso lhe dará uma geração de seu algoritmo.

Normalmente, com esses tipos de abordagens, você deve procurar pelo menos várias centenas de gerações ou com funções complexas como uma heurística do xadrez, várias centenas de milhares (ou mesmo milhões de) gerações. Algumas matemáticas rápidas devem convencê-lo de que você precisaria de vários milhares de horas de tempo de CPU para uma única geração, mesmo escalando para fora um farm de servidores de tamanho significativo; você provavelmente precisará de vários (possivelmente centenas) anos para realmente evoluir, exatamente como você menciona na sua atualização.

No final desse período, você teria um algoritmo interessante que provavelmente teria toneladas de informações sobre o jogo que nunca foram realmente descobertas. É difícil dizer se eles seriam úteis ou até compreensíveis para os seres humanos. Por que essa regra existe? Porque mais de milhares de jogos pareciam funcionar.

Futuro

Não tenho dúvidas de que essas abordagens ganharão mais popularidade, à medida que o poder da computação aumentar. Atualmente, estamos em um ponto em que uma máquina tem tempo de computação suficiente para derrotar (quase todos) os humanos, se a inteligência é cuidadosamente trabalhada à mão. Dentro de 20 anos, é bem possível que os processadores tenham se movido tanto que um ou dois movimentos extras em profundidade não ofereçam mais benefícios suficientes às máquinas "codificadas", mas sejam rotineiramente derrotados por máquinas evoluídas e estranhamente intuitivas que milhões de horas de evolução por trás deles.

Atualização 2018 de maio

Como Robert Kaucher menciona em um comentário abaixo, notícias recentes merecem menção aqui. Especificamente, o projeto AlphaGo do Google parece ser a primeira abordagem verdadeiramente viável baseada em IA para esses tipos de jogos e, no final de 2017, afirma ter vencido o StockFish 2 , depois de ter sido re-proposto para a tarefa.


Obrigado. Percebo que o artigo que você vincula treina sua IA primeiro contra oponentes humanos não-mestres e depois contra softwares de xadrez existentes, o que não é exatamente o que você e eu tínhamos em mente. Um platônico como eu não ficaria surpreso ao saber que o tipo de IA que você e eu estamos discutindo era uma impossibilidade prática (sabemos que não é uma impossibilidade teórica porque o xadrez pode ser resolvido em teoria pelo minimax); mas se uma resposta me surpreende não é o ponto. Apontar é perguntar se uma IA alcançou o feito proposto. A resposta parece ser não.
21412 thb

2
@ thb Acho que houve um bom número de tentativas nesse tipo de IA, embora você possa considerá-las "malsucedidas". Suspeito que uma tentativa de enorme sucesso (hoje) provavelmente esteja ocorrendo em um nível amador muito fraco; uma grande conquista, mas não aos olhos do público. Além disso, não acho que o treinamento contra programas existentes e humanos seja trapaceiro, por si só - apenas uma otimização muito grande, embora possa mudar a direção do estilo de jogo da IA ​​em evolução.
22712 Daniel B

1
Se você estiver interessado em ler mais sobre a abordagem "pura", provavelmente terá mais sorte em procurar abordagens de "coevolução competitiva". Essa é a frase usada para quando não há uma boa maneira de fornecer uma medida externa de desempenho (ou seja, não podemos jogar contra outros mecanismos de xadrez), então o treinamento em IA precisa evoluir, jogando várias versões de si mesmo. Definitivamente funciona, mas leva muito mais tempo, e é provavelmente por isso que é uma abordagem menos adotada.
Daniel B

1
@DanielB AlphaZero é uma IA?
Harry Weasley

1
Você pode atualizar sua resposta. chess.com/news/view/…
Robert Kaucher

17

Eu suspeito que o que você está perguntando seria classificado como algum tipo de algoritmo genético ou abordagem de algoritmo evolutivo . Suspeito que não haja uma maneira realista de projetar esse algoritmo sem incorporar intrinsecamente algum grau de viés humano em um nível fundamental, já que o programador ainda precisa definir os recursos estáticos de uma posição (contagem de materiais, estrutura de peões, complexos de cores etc.) de acordo com o qual a IA classificaria e compararia posições de jogos diferentes. Se você fizer uma pesquisa no Google sobre a terminologia algorítmica acima, no contexto do xadrez, encontrará vários resultados, mas provavelmente pouco no caminho de pesquisas sérias que realmente foram usadas para criar AIs competitivas e bem-sucedidas.

O fato é que, como conseqüência da lei de Moore, os computadores são agora máquinas de calcular tão poderosas que os métodos de IA extremamente sofisticados não são apenas desnecessários (em termos de jogar em um nível superior aos melhores oponentes humanos), mas também podem ser contraproducentes. Xadrez é o tipo de jogo em que - devido principalmente ao seu espaço de pesquisa relativamente pequeno, de movimentos razoáveis ​​em qualquer posição e à existência de forçar combinações táticas (incluindo sequências de testes, capturas de peças, ameaças de companheiro ou perda catastrófica de material, etc.) - uma abordagem de força bruta com algumas podas conservadoras de árvores de pesquisa é simultaneamente a abordagem mais algoritmicamente simples e a mais eficaz. Se você considerar a disponibilidade de tabelas de final de jogo e a abertura de livros, a lógica dessa abordagem só aumentará. Eu entendo isso ainda há um grande interesse teórico e um valor potencial no tipo de romance de IA que você está falando, mas desconfio que o xadrez seja a arena errada para desenvolvê-lo. Por outro lado, um jogo como o Go, que é menos tático por natureza e engloba um espaço de pesquisa muito maior que torna impraticáveis ​​abordagens de força bruta, pode ser um candidato melhor para pesquisas de IA de ponta.


Atualizei a questão da IA ​​à luz da sua resposta. A atualização não é curta e, a seu critério, quando você tiver algum tempo, poderá analisá-la na medida em que lhe interessar.
Jul12

2
Nenhum preconceito humano seria necessário. Simplesmente gere 1000 algoritmos aleatórios capazes de jogar xadrez legal, jogue-os uns contra os outros em um torneio, depois pegue os 20% melhores e aplique mutação e crossover para construir a próxima geração. Repita em várias populações por várias gerações e, no final, você deve ter algo meio decente. A única função de condicionamento necessário seria ganhar / perder.
superluminar

15

Veja a página da Wikipedia em Jogo Geral . É uma área de pesquisa ativa. Há um torneio anual do GGP no qual os programas recebem as regras de um novo jogo, pensam nisso por um tempo e depois jogam o jogo um contra o outro.

Se você der as regras do xadrez a um programa GGP, acho que ele será muito mais forte que um iniciante humano e muito mais fraco que um programa de xadrez escrito por um propósito.


13

Vale a pena revisar esta questão à luz do recente sucesso impressionante do AlphaZero contra o Stockfish 8 . Uma evolução adicional dos programas AlphaGo e AlphaGo Zero da DeepMind , o AlphaZero terminou com uma pontuação impressionante de +28 = 72 -0 contra um dos mais fortes motores de xadrez "tradicionais" do planeta.

O AlphaZero aprendeu a aprender o reforço, treinando sua arquitetura de rede neural através de uma série de jogos contra si mesmo. De acordo com o documento anexo :

  1. Os recursos de entrada que descrevem a posição e os recursos de saída que descrevem a movimentação são estruturados como um conjunto de planos; isto é, a arquitetura da rede neural corresponde à estrutura da grade da placa.
  2. AlphaZero é fornecido com o conhecimento perfeito das regras do jogo. Eles são usados ​​durante o MCTS, para simular as posições resultantes de uma sequência de movimentos, para determinar o final do jogo e para marcar qualquer simulação que atinja um estado terminal.
  3. O conhecimento das regras também é usado para codificar os planos de entrada (ou seja, roque, repetição, sem progresso) e os planos de saída (como as peças se movem, promoções e peças caem no shogi).
  4. O número típico de movimentos legais é usado para escalar o ruído da exploração (veja abaixo).
  5. Os jogos de xadrez e shogi que excederam um número máximo de etapas (determinado pela duração típica do jogo) foram encerrados e receberam um resultado empatado; Os jogos de ir foram encerrados e pontuados com as regras de Tromp-Taylor, da mesma forma que o trabalho anterior (29).

O AlphaZero não usou nenhuma forma de conhecimento de domínio além dos pontos listados acima.

Eu tenho certeza que alguém pode levantar questões sobre coisas como o hardware diferente que está sendo usado - " AlphaZero ... usou uma única máquina com 4 TPUs . Stockfish ... jogou no seu nível de habilidade mais forte, usando 64 threads e um tamanho de hash de 1 GB ". - mas, de qualquer forma, o resultado do AlphaZero é notável e muito na linha do OP.

Revelando talvez ainda mais apoio ao pouco conhecimento de domínio específico, além de vencer o Stockfish no xadrez, o AlphaZero também treinou no shogi a ponto de superar o programa campeão Elmo e, é claro, também superou seu antecessor AlphaGo Zero in Go .

Aqui está um dos jogos contra o Stockfish, um Berlim em que o desequilíbrio material é eventualmente o AlphaZero, com o par de bispos contra um cavaleiro e quatro peões para o Stockfish depois 31.Qxc7. Nessa posição, todas as peças de AlphaZero estão na fila de trás, com os bispos de volta em seus quadrados originais. Finalmente, depois que as rainhas saem, as peças pretas manobram lentamente para pegar peões brancos, e isso é cortinas.

Bacalhau - AlphaZero, 04-12-2017, 0-1
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 Bc5 5. Bxc6 dxc6 6. OO Nd7 7. Nbd2 O-O 8. Qe1 f6 9. Nc4 Rf7 10. a4 Bf8 11. Kh1 Nc5 12. a5 Ne6 13. Ncxe5 fxe5 14. Nxe5 Rf6 15. Ng4 Rf7 16. Ne5 Re7 17. a6 c5 18. f4 Qe8 19. axb7 Bxb7 20. Qa5 Nd4 21. Qc3 Re6 22. Be3 Rb6 23. Nc4 Rb4 24. b3 a5 25. Rxa5 Rxa5 26. Nxa5 Ba6 27. Bxd4 Rxd4 28. Nc4 Rd8 29. g3 h6 30. Qa5 Bc8 31. Qxc7 Bh3 32. Rg1 Rd7 33. Qe5 Qxe5 34. Nxe5 Ra7 35. Nc4 g5 36. Rc1 Bg7 37. NE5 Ra8 38. Cf3 Bb2 39. Rb1 BC3 40. NG1 Bd7 41. NE2 Bd2 42. Rd1 Be3 43. Kg2 bg4 44. Re1 Bd2 45. RF1 Ra2 46. h3 Bxe2 47. Rf2 Bxf4 48. Rxe2 Be5 49. Rf2 Rg7 50. g4 Bd4 51. Re2 Rf6 52. e5 + Bxe5 53. Rf3 Ra1 54. Rf2 Re1 55. Rg2 + Bf4 56. c3 Rc1 57. d4 Rxc3 58. dxc5 Rxc5 59. b4 Rc3 60. h4 E5 61 . hxg5 hxg5 62. RE2 + Rf6 63. KF2 Be5 64. Ra2 RC4 65. RA6 + Re7 66. Ra5 Ke6 67. RA6 + Bd6 0-1

11

Eu acho que a principal razão pela qual é difícil produzir essa IA é por causa do espaço necessário para armazenar o "treinamento" para ser eficaz.

Além disso (como resposta ao seu comentário de autotreinamento), o autotreinamento pode ser prejudicial ao tentar melhorar essa IA - fiz algumas pesquisas com o jogo da velha (reconhecidamente muito mais simples), e ele encontrou todos os tipos de maneiras horríveis de vencer (e treinar essas maneiras horríveis) porque os dois lados jogaram horrivelmente. Demorou muito mais tempo para obter um desempenho razoável com autotreinamento do que treinar contra uma boa IA antecipada no jogo da velha.

No entanto, acho que seria interessante ver um híbrido que usa pesquisa profunda e "treinamento" - algum tipo de banco de dados armazenado de posições para o meio-jogo (em vez de apenas final de jogo e aberturas). Seria necessário muito espaço.

Talvez você esteja pensando em uma abordagem de IA mais "real" que aprenda conceitos posicionais em vez de posicionar vitória / derrota / empate, mas não acho que isso seria muito eficaz (comparado a motores fortes).


A resposta é apreciada. O que eu acredito que eu tinha em mente era uma IA que (a) possuía uma capacidade minimax, mas (b) não possuía uma função de avaliação predeterminada. Uma IA desse tipo resolveria necessariamente um jogo tão pequeno quanto o jogo da velha com minimax puro. No xadrez, um jogo apenas teoricamente suscetível ao minimax, a IA avaliaria não a posição atual no tabuleiro, mas as posições futuras, após as quais o minimax escolheria a jogada. Pode-se dizer que Nimzowitsch revolucionou o xadrez desprezando heurísticas de avaliação conhecidas. Nesse caso, uma máquina poderia fazer o mesmo?
Th

1
Então você está dizendo que ele desenvolveria sua própria função de avaliação?
21413 Eve Freeman

2
@thb, como programador, acho que o problema com a sua noção é que, até onde posso ver, nenhuma IA de xadrez plausível pode começar com uma lousa totalmente em branco para uma função de avaliação. Alguém poderia escrever uma IA que analise jogos em busca de padrões e use métodos estatísticos / probabilísticos (por exemplo, inferência bayesiana) para ajustar suas avaliações e tomadas de decisão, mas o programador precisa identificar quais motivos, fatores posicionais, seqüências de movimentos constituem os referidos padrões. e por quais critérios para avaliá-los. Em outras palavras, o núcleo básico da função de avaliação ainda precisaria ser projetado por humanos.
Greg E.

1
Pode ser interessante ver o que um mecanismo minimax genético cria, por exemplo, se você iniciar todas as peças com o mesmo valor de material, com base em vitória / perda / empate, e permitir que os valores do material sejam alterados. Tenho certeza de que os criadores de mecanismos já tentaram aprimorá-los, como fazer cavaleiros 2,9 e bispos 3,1 peões.
Eve Freeman

1
@ thb, eu não sou especialista, mas acho que é esse o caso. Até a IA à qual você se vinculou é restringida por vieses do programador. Se você ler o trabalho de pesquisa original, ele observa que o "vetor de recursos" que treina a função de avaliação inclui recursos do painel "que foram cuidadosamente projetados à mão". Ou seja, o programador ainda precisa especificar o conjunto de fatores posicionais estáticos nos quais a IA baseia sua tomada de decisão. A principal vantagem de uma rede neural para esse projeto em particular, eu acho, é que o treinamento pode ser paralelo, permitindo o processamento assíncrono de grandes quantidades de jogos com eficiência.
Greg E.

10

Eu só quero expandir as respostas de Greg e Wes aqui. O tipo de IA que a thb está propondo simplesmente não existe com a sofisticação necessária para este aplicativo. E mesmo que o fizessem, suspeito que fracassariam nisso. É como se thb quisesse uma IA de uso geral forte que possa ser ensinada as regras básicas do jogo e depois enviada. Mas se você observar as IAs de uso geral que estão em desenvolvimento, todas elas estão aprendendo coisas como reconhecimento de objetos e fala no nível de 1 a 2 anos. Qualquer IA de uso geral precisa primeiro ter a sofisticação para entender o que é um jogo antes mesmo de entender como jogar. Você não pode projetar uma IA de uso geral e espera que ela funcione como uma AI restrita ou especializada. Uma IA de uso geral precisaria ser ensinada a xadrez como uma pessoa e você não pode esperar reunir dois jogadores novatos sem conhecimento da história do xadrez e reinventar espontaneamente aberturas e temas estratégicos. Seriam necessárias muitas centenas de instâncias da IA ​​jogando entre si, cada uma com acesso aos dados históricos de todos os seus jogos em centenas de milhares de iterações. E cada IA ​​precisaria ter certas características distintas ponderadas em diferentes níveis.

Os humanos demoraram quase 500 anos para ir de Rodrigo (Ruy) López de Segura e Pedro Damião a Paul Morphy e depois considerar as novas mudanças que ocorreram entre a peça de Steinitz e Alekhine. E toda essa mudança ocorreu através do dinamismo de muitas centenas de milhares de jogadores com diferentes temperamentos e outras características influentes (como favorecer aleatoriamente cavaleiros sobre bispos ou bispos sobre cavaleiros) para não mencionar estilos e modas de jogo. Todas essas coisas contribuíram para o dínamo da mudança que influenciou o xadrez ao longo dos séculos. Nenhuma IA fraca - mesmo uma IA de uso geral fraca - poderia duplicar esse tipo de dínamo porque falta desejo. Somente o desejo pode levar algo a ficar sentado por horas, durante muitos dias, para analisar uma abertura com a intenção de derrubá-lo ou melhorá-lo depois que um rival "o flagra". Realmente, é esse tipo de unidade de análise e preparação que melhorou o jogo ao longo dos séculos - e não o jogo cego de milhões de jogos entre jogadores igualmente fracos.

É como pegar um monte de pessoas que não falam inglês e que nunca leem os mestres da literatura de sua língua nativa e colocá-las em uma sala com livros de inglês como segunda língua e esperar que eles inventem algo como as obras de Shakespeare. Isso nunca, nunca vai acontecer.

EDIT : Eu deveria ter sabido melhor do que fazer esta afirmação, porque aconteceu .

“O AlphaZero não foi 'ensinado' o jogo no sentido tradicional”, explica Chess.com. “Isso significa que não há livro de abertura, nem tabelas de final de jogo e, aparentemente, não há algoritmos complicados que dissecam diferenças mínimas entre peões centrais e peões laterais. Isso seria semelhante a um robô ter acesso a milhares de peças e bits de metal, mas sem conhecimento de um motor de combustão, depois experimenta várias vezes com todas as combinações possíveis até construir uma Ferrari. ... O programa teve quatro horas para se apresentar muitas e muitas vezes, tornando-se seu próprio professor. ”

Minha continuação, obviamente ofensa sem fundamento:

Tomamos por garantido todo o conhecimento implícito que temos sobre o mundo. Para entender que, se eu tiver que usar pedaços de madeira e um prego, um martelo é mais útil para mim do que uma chave de fenda, primeiro preciso entender que certas classes de coisas são mais úteis em determinadas situações do que outras. Eu também tenho que entender que as coisas têm um uso que pode ser aplicado a uma meta. Essas são heurísticas. Se a IA não pode ser informada de que certas peças têm mais valor do que outras, como ela pode entender o que é companheiro? Se não puder ser programado com heurísticas específicas, ele deverá ser capaz de extrapolar essas idéias, como a experiência de formulário "valor" e "utilidade". E esse não é o domínio da IA ​​estreita. É o domínio de uso geral, IA forte.


1
Excelente resposta. Acho que o seu primeiro parágrafo realmente cristaliza a ideia que eu estava tentando transmitir, mas o faz com maior lucidez.
Greg E.

Obrigado, Greg. Eu só quero acrescentar que estou falando de uma IA de uso geral fraca. Acredito que uma verdadeira IA forte poderia fazer algo assim através de muitas instâncias ao longo de muitas iterações em um período de tempo altamente compactado. Mas ainda não temos IA forte. en.wikipedia.org/wiki/Strong_AI
Robert Kaucher

Eu concordo com tudo o que você disse, exceto a seção sobre desejo. A IA pode ficar sentada durante horas, fazendo o que os designers desejarem - energia suficiente para o computador pode resolver o xadrez, é que ainda não temos energia suficiente.
Eve Freeman

Isso é verdade, Wes, mas então estamos injetando o viés do "programador" ou o que quer que seja na IA; que é uma das coisas que o autor da pergunta não queria.
Robert Kaucher 18/07/2012

@ EveFreeman, acho que você está entendendo mal o que estou dizendo. Não estou dizendo que os computadores não "resolverão o xadrez". Estou dizendo que o cenário específico do OP está paralisado a ponto de não funcionar. Se o sistema não possui heurísticas, como pode atribuir valor às peças?
Robert Kaucher

9

Medite sobre o seguinte AI Koan:

Nos dias em que Sussman era novato, Minsky chegou a procurá-lo quando ele estava invadindo o PDP-6. "O que você está fazendo?", Perguntou Minsky. "Estou treinando uma rede neural com fios aleatórios para jogar Tic-Tac-Toe", respondeu Sussman. "Por que a rede é conectada aleatoriamente?", Perguntou Minsky. "Não quero que tenha preconceitos de como jogar", disse Sussman. Minsky então fechou os olhos. "Por que você fecha os olhos?", Sussman perguntou à professora. "Para que a sala fique vazia." Naquele momento, Sussman estava iluminado.

Nossas aplicações têm sempre preconceitos, se você fecha ou não os olhos ...


Sua anedota é mais persuasiva. Na medida em que lhe interessa, sua anedota me levou a estender a pergunta com uma atualização, que você pode ver acima quando tiver algum tempo.
Jul12

8

Alguém já escreveu um programa de xadrez que tem idéias próprias? Que aprende o jogo por conta própria? Isso se treina?

Sim. Confira o mecanismo de xadrez Giraffe escrito por Matthew Lai. Ele escreveu o mecanismo de xadrez como parte de sua pesquisa em Inteligência Artificial para um mestrado em ciência da computação.

Houve muita discussão sobre esse ano passado no fórum de programação de xadrez do TalkChess . Eu sei porque sou um autor de mecanismos de xadrez cujo mecanismo é tão forte quanto a Giraffe. No entanto, implementei meu mecanismo usando técnicas tradicionais, enquanto o autor do Giraffe treinou seu mecanismo usando o "aprendizado de reforço das diferenças temporais com redes neurais profundas". Matthew ainda tinha que implementar a pesquisa alfa / beta tradicional para avaliar dinamicamente uma posição - em outras palavras, para antecipar muitos movimentos. Sua inovação está em treinar o mecanismo para avaliar uma posição estática . Em comparação, escrevi conhecimentos específicos na rotina de avaliação estática do meu mecanismo.

Escrevi código para ajustar os parâmetros de avaliação usando um algoritmo de enxame de partículas (consulte a página de agradecimento no meu blog para obter links para discussões técnicas) que produziram resultados positivos - um mecanismo mais forte. No entanto, essa não era uma tarefa de fazer o mecanismo "aprender", mas minimizar o erro em um espaço extremamente grande de parâmetros de avaliação (da ordem de 10 ^ 150 combinações discretas de parâmetros).

Matthew discute sua dissertação no fórum TalkChess. Ele trabalha para o Google no DeepMind agora, se bem me lembro.

Além disso, confira o blog de Thomas Petzke . Ele escreveu um mecanismo de xadrez extremamente forte, o iCE, e usou algoritmos genéticos para melhorar a avaliação estática do mecanismo. Veja suas postagens de 2013 e anteriores, como Aprendizado Incremental Baseado em População .


Bem-vindo ao fórum! Mais um.
SmallChess


5

Uma busca no Google como esta pode transformar-se resultados como este .

Mais particularmente, acredito que você desejará dar uma olhada neste artigo . Eles fornecem ao mecanismo alguns dados iniciais, como valores de peças, portanto não é exatamente o que você está pedindo, mas teve um desempenho muito bom.


+1 porque agradeço a citação interessante do IEEE. Já estou familiarizado com a página do NeuroChess. Nenhum desses parece fazer exatamente o que eu tinha em mente, no entanto.
thb

3

É possível com o aprendizado de máquina.

A abertura de livros de máquinas de xadrez usa o aprendizado de máquina. O mecanismo testa as linhas de abertura do livro, reproduzindo-as; se uma linha obtiver melhor comparação com outra, promoverá essa linha na árvore de abertura. Com o tempo, o mecanismo aprende as melhores linhas.

Após o término da fase de abertura, o mecanismo para de usar o livro e começa a usar a função de avaliação.


Como implementar um mecanismo de auto-aprendizado usando o aprendizado de máquina?

Imagine um mecanismo usando um livro sem uma função de avaliação. E o livro está vazio inicialmente. Portanto, o motor não tem conhecimento sobre xadrez.

O mecanismo começa a jogar com este livro vazio e não fecha o livro até o final do jogo. Podemos pensar como um motor comum que usa um livro de abertura até o final do jogo.

Com o tempo, o mecanismo encontraria as melhores continuações estatisticamente, pois as linhas ruins terão uma pontuação pior com o tempo. Mas é claro que muitos jogos devem ser jogados para obter um bom livro. Não sei quantas, mas quantas podemos dizer impraticáveis.

Atualização de dezembro de 2017 : Bem, eu acho que o Alpha Zero me provou errado treinando com força suficiente para vencer um dos motores mais fortes, o Stockfish, com uma quantidade prática de jogos.


2

Tudo o que você tentar nesta área, leia a história de Turry aqui primeiro: http://waitbutwhy.com/2015/01/artificial-intelligence-revolution-2.html

TL; DR; versão spoiler por solicitação:

Na história de Turry, a IA de autotreinamento de Turry precisa escrever boas notas manuscritas e acabar se livrando dos seres humanos, porque eles não são necessários para atingir o objetivo aparentemente inócuo de escrever boas notas manuscritas. A analogia é que um mecanismo de xadrez auto-treinado com IA provavelmente também se livrará dos seres humanos porque eles não são necessários para melhorar o objetivo aparentemente inócuo de aprimorar as habilidades de xadrez.


Sua resposta é interessante, embora talvez não seja muito convincente. Eu li o artigo vinculado (ambas as partes) em seu conselho. O escritor enfraquece um pouco seu caso atacando alguns homens de palha, mas ele é um sujeito atencioso. Eu não acho que eu tinha algo muito parecido Turry do artigo na mente. Um tabuleiro de xadrez de 8 por 8 no qual dois jogadores fazem 40 turnos discretos é tão fundamentalmente mais simples. Acho notável que a IA não consiga sequer pensar no xadrez de uma maneira geral. Para uma visão contrária, atribui a leitura: Feser, Edward. A Última Superstição. Ainda assim, +1 por interesse.
THB

1

E existe o AlphaZero. Celebre toda uma nova geração de motores de xadrez


0

O uso da terminologia antropomórfica ao lidar com sistemas de computação é um sintoma de imaturidade profissional

De Como dizemos as verdades que podem doer? por Edsger W.Dijkstra resume bastante a suposição equivocada subjacente à sua pergunta. A inteligência artificial pode ser artificial, mas não é inteligência no sentido humano.

Nas conferências de Reith de 1984 da BBC, o filósofo americano John Searle explica exatamente o que há de errado com a IA difícil. O resumo "muito tempo, não escutei" de seu argumento é "Sintaxe não é semântica", mas, no entanto, encorajo você a pelo menos ouvir a aula 2 "Latas de cerveja e máquinas de carne ".

Depois de entender o que Dijkstra e Searle estavam dizendo há mais de 30 anos, você reconhecerá o que está errado com suas perguntas:

Alguém já escreveu um programa de xadrez que tem idéias próprias? Que aprende o jogo por conta própria?

Os seres humanos têm "insights" e podem aprender. Computadores não podem. Ao longo dos séculos, sua aldeia de humanos primitivos poderia reproduzir a teoria da abertura do xadrez, mas os computadores não.


Você argumenta que os computadores não atingem a inteligência no nível humano, ou mesmo que "pensar" e "entender" seja reservado aos humanos?
BlindKungFuMaster

@BlindKungFuMaster Se você se der ao trabalho de ouvir "Latas de cerveja e máquinas de carne" no link acima, ficará claro o que John Searle pensa. Ele me convenceu e eu compartilho sua opinião.
Brian Towers

O entendimento simplista de Searle dos programas de computador de IA é desculpável, afinal, é apenas 1984. Mas as arquiteturas modernas de IA imitam apenas a arquitetura da mente humana, de modo que apenas a arquitetura é descrita sintaticamente, e não o que finalmente faz o "pensamento". "Poder (ainda não) equivalente ao poder do cérebro humano" provém da ingestão de grandes quantidades de dados pelo "aprendizado". Somente nesta etapa o conteúdo semântico é capturado.
BlindKungFuMaster 01/01

Portanto, o argumento da sala chinesa é falho ao supor que você possa simular o entendimento apenas com um grande livro de regras, o que é de fato relativamente absurdo, e ao abrir a possibilidade de que o conteúdo semântico possa ser capturado pela arquitetura apropriada a partir de grandes quantidades de dados. Na verdade, isso é o processamento de linguagem natural é tudo sobre estes dias: cs224d.stanford.edu/syllabus.html
BlindKungFuMaster

@BlindKungFuMaster Há uma palavra-chave no que você diz, que me parece que você não entende. É a palavra "simular". Sou 35 anos engenheiro de software e, durante esse período, tenho muitos simuladores e escrevi alguns também. Os simuladores geralmente são componentes vitais de um projeto, mas em um projeto em tempo real eles nunca substituem completamente o equipamento de destino. Sem dúvida, os computadores são excelentes para simular inteligência e entendimento semântico, mas nunca podem alcançar consciência, vontade, entendimento.
Brian Towers

0

Essa resposta é dada pelo solicitante da pergunta original, quatro anos após a pergunta. Ele não substitui ou substitui as respostas dadas anteriormente, pois a maioria das respostas anteriores é mais interessante do que esta. No entanto, esta resposta pode adicionar algum contexto adicional.

Tanto quanto posso dizer, a maioria das pesquisas em IA parece implicitamente conceder a premissa de que pensamento e razão eram apenas fenômenos materiais, ou pelo menos que resultados indistinguíveis de pensamento e razão devem necessariamente ser alcançáveis ​​apenas por processos materiais. Não discuto a premissa (nem aqui a promovo, nesse sentido). Apenas observo que parece ser uma premissa.

E, afinal, na pesquisa em IA, como isso não deveria ser uma premissa? Os pesquisadores de IA devem trabalhar com processos materiais, quer eles sejam ou não.

Os estudiosos da filosofia realista , de Duns Scotus, St. Thomas, Aristóteles e Platão, têm muito a dizer sobre a teoria da mente. Representacionistas como Kant tiveram coisas bastante diferentes a dizer. A pesquisa em IA provavelmente está mais próxima de Kant, mas isso não faz os escolares errados.

É certo que existe uma objeção de Deus das lacunas que tende a aparecer neste momento em conversas do tipo atual, mas um filósofo profissional diria que a objeção de Deus das lacunas ataca um homem de palha, que essa objeção tende a ser útil apenas contra pessoas que não estudaram filosofia e, portanto, não sabem do que estão falando. Para Aristóteles, é a causa formal e final que pode estar implicada na questão da IA ​​auto-treinada do xadrez. No entanto, em termos aristotélicos, o pesquisador da IA ​​trabalha puramente com causalidade material e, especialmente, eficiente(exceto talvez obliquamente, na medida em que os treinadores humanos trazem pessoalmente elementos formais e finais ao sistema). Se a razão é formal, se o pensamento é final, se a sala chinesa de Searle prova ser uma impossibilidade ontológica (como poderia), então pode ser que uma IA de xadrez puramente autodidata não possa ser alcançada em teoria.

Suspeito que uma IA de xadrez puramente autodidata possa realmente ser alcançada, e será - que, em termos aristotélicos, essa questão se mostrará adequadamente viável em vista de uma causa meramente eficiente. Sou mais cético em relação à IA forte em geral, mas isso deve ser provado na experiência, não é? Ninguém realmente ainda sabe.

A filosofia da causalidade e da mente é sutil, compreendida por poucos (e provavelmente por poucos, mesmo entre os pesquisadores de IA, que são homens mais práticos). Se você deseja aprender essa filosofia, vale a pena aprender; mas esteja ciente de que, na Internet e mesmo com frequência impressa, é extremamente fácil encontrar explicações enganosas com base em mal-entendidos não ensinados. Pelo meu dinheiro, o melhor professor de introdução a escrever sobre o assunto hoje é Edward Feser, cujos livros permanecem impressos a preços razoáveis. Você pode aprender muito mais com ele.

No entanto, duvidamos que mesmo o Dr. Feser arrisque uma resposta autorizada sobre a presente questão! A resposta continua a ser provada nos laboratórios da IA.


-3

Eu quero que eles liberem o código, então podemos conversar. Não é tão fácil resolver o xadrez, o Alpha não o resolverá nem em meio século. Engraçado, ele ainda toca 1.d4. Por quê? Por ter sido treinado em jogos humanos e a teoria humana oferece a maior taxa de desempenho para 1.d4. O pobre coitado não sabe que 1 ... c5 consegue um empate em precisamente 8 movimentos. Agora eles querem que eu acredite que o Alpha não usou um livro de abertura simulado ... Eles dizem que o Alpha jogou muito bem as aberturas. Bem, sim, com algumas exceções. 1.d4 certamente não fala bem do nível de inteligência que o programa alcançou. Felizmente, SF é ainda mais fraco na fase de abertura. :)


3
Você faz afirmações ousadas ao dizer que 1. ... c5 consegue um empate em 8 movimentos e que o Stockfish é fraco na fase de abertura. Você poderia fornecer referências a essas reivindicações?
Pablo S. Ocal

1
1.d4 certamente não fala bem do nível de inteligência que o programa alcançou. Como jogador 1.d4, eu me pergunto se devo considerar que minha inteligência está sendo insultada aqui.
Evargalo

Embora eles não tenham divulgado o código ou publicado o artigo, foi lançado um projeto para reproduzir o resultado: lczero.org Você pode até brincar com o "AlphaZero" em evolução
Xu
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.