Muito recentemente, surgiu a notícia de que a equipe de pesquisa DeepMind da Alphabet estendeu seu mecanismo de aprendizado de máquina para jogar Shogi e xadrez. Aparentemente, depois de apenas algumas horas de auto-aprendizado, ou seja, apenas jogando contra si mesmo, dadas as regras dos jogos, seu desempenho no xadrez já superou o dos principais motores atuais, como o Stockfish 8. Pessoalmente, ainda não sei exatamente como as partidas foram organizadas, como em que condição o Stockfish estava definido para executar, pois se o tempo de cálculo for limitado, os motores poderão ter um desempenho muito ruim. De qualquer forma, esta é uma conquista muito impressionante, porque, mesmo que alguém possa ter configurado o Stockfish de maneira ideal, com poucas horas adicionais de treinamento, o AlphaZero superaria novamente o nível de jogo, o que significa que o AlphaZero é fundamentalmente mais forte do que qualquer outro produto atual. mecanismo de xadrez padrão baseado em funções de avaliação heurística.
Agora, à luz dessas notícias, seria ótimo se alguém pudesse elaborar as principais diferenças no funcionamento de um mecanismo de xadrez aprendido por máquina em comparação com os motores padrão que estamos acostumados a usar. Mais concretamente:
- A função de avaliação que o AlphaZero usa, treinada pelos métodos de aprendizado de máquina, não é apenas mais uma função de avaliação heurística? Em caso afirmativo, seria justo dizer que a diferença fundamental entre as funções de avaliação dos dois motores é o fato de o Stockfish ter uma função de avaliação otimizada ajustada manualmente por seres humanos, o que significa que a definição da função a ser otimizada é fixa, enquanto que, para AlphaZero, a função de avaliação de objetivos está sendo redefinida constantemente por meio de treinamento adicional (por exemplo, por meio da reprodução automática)? Tornando o último uma abordagem muito mais dinâmica.
Por fim, vagamente falando, um mecanismo como o Stockfish aplica sua função de avaliação à árvore de possíveis movimentos, decidindo quais galhos manter e quais cair, e então através de um concreto mais profundoNa análise de cada ramo, novamente por meio de sua função de avaliação, ele descobre qual ramo produziu o valor mais alto e que se torna a principal variação (é claro que existem muitas técnicas avançadas em torno desse processo para podar com eficiência essa árvore grande). Ou seja, para cada posição, essa rotina extremamente concreta precisa ser repetida para que o Stockfish tome uma decisão. Por outro lado, imagino que o AlphaZero faça algo muito diferente, ou seja, não se baseie em uma análise concreta da árvore de possíveis movimentos em uma determinada posição, mas sua função de avaliação atribui essencialmente um valor a essa posição (que intuitivamente é semelhante a colocar a posição atual em analogia a todas as outras posições para as quais foi treinada), sem ter que executar tarefas concretasanálise da maneira que Stockfish, ou mesmo um jogador humano faz. Essa é uma imagem sólida do funcionamento do AlphaZero ou de mecanismos de aprendizado de máquina com treinamento semelhante?
Sabemos que o espaço das posições no xadrez é grande o suficiente para que qualquer tentativa de amostrar todas as posições nele seja, em princípio, completamente em vão (complexidade EXPTIME), o que sugere que nenhuma quantidade de treinamento através do jogo automático seria suficiente para exploraram todas as posições, então como o resultado final pode ser bom, apesar de ter potencialmente explorado uma pequena fração de posições do espaço por meio da reprodução automática? Qual é a ideia principal aqui em jogo?
Meu palpite é que, o AlphaZero tem uma maneira muito ideal de comparar qualquer posição, mesmo que nova, com uma posição anteriormente visitada em seu conjunto de treinamento, quanto mais próxima a comparação, mais válida será a avaliação da avaliação. Por exemplo, quando jogou o movimento Bg5 no jogo 5 , ele deve ter explorado uma estrutura semelhante durante o treinamento, ou seja, é capaz de reconhecer que essa posição é essencialmente equivalente a (possivelmente uma completamente) diferente estudada em seu treinamento, em analogia com a forma como o reconhecimento de face é alcançado através do aprendizado de máquina e, como resultado, conclui que o Bg5 deve ser a melhor jogada, como foi nessa (ou nessas) outras posições semelhantes. Isso é um palpite correto? Não tenho ideia de como essa comparação feito, pois certamente não é possível armazenar todas as posições treinadas e analisá-las todas as vezes.
Esta é apenas uma tentativa de obter informações tão detalhadas sobre o funcionamento do AlphaZero e como ele chega a uma decisão dada uma posição.
Acho que minha pergunta seria como a rede neural "aprende" o que fazer em uma posição que não encontrou. Dizer que o AZ real executa um MCTS usando os pesos de viés + da rede neural treinada apenas retrocede um passo na maneira como a rede neural calcula esses valores. Se foi por meio de brincadeiras aleatórias, sem conhecimento humano, como ele decide como pesar uma posição que nunca viu?
fonte