컴퓨터는 오랫동안 "브 루트 포스"기술을 사용하여 체스를 플레이하고 특정 깊이로 검색 한 다음 위치를 평가할 수있었습니다. 그러나 AlphaGo 컴퓨터는 ANN을 사용하여 위치를 평가합니다 (내가 아는 한 깊이 검색은 수행하지 않음). AlphaGo가 Go와 같은 방식으로 체스를하는 체스 엔진을 만들 수 있습니까? 아무도 이것을하지 않은 이유는 무엇입니까? 이 프로그램이 오늘날 최고의 체스 엔진 (및 체스 플레이어)보다 성능이 좋습니까?
컴퓨터는 오랫동안 "브 루트 포스"기술을 사용하여 체스를 플레이하고 특정 깊이로 검색 한 다음 위치를 평가할 수있었습니다. 그러나 AlphaGo 컴퓨터는 ANN을 사용하여 위치를 평가합니다 (내가 아는 한 깊이 검색은 수행하지 않음). AlphaGo가 Go와 같은 방식으로 체스를하는 체스 엔진을 만들 수 있습니까? 아무도 이것을하지 않은 이유는 무엇입니까? 이 프로그램이 오늘날 최고의 체스 엔진 (및 체스 플레이어)보다 성능이 좋습니까?
답변:
편집 (논문을 읽은 후) :
나는 논문을 신중하게 읽었습니다. Google이 논문에서 주장한 내용부터 시작하겠습니다.
불행히도, 나는 그것이 좋은 저널 논문이라고 생각 하지 않습니다 . 나는 링크로 설명 할 것입니다 (그래서 내가 꿈꾸지 않는다는 것을 알고 있습니다).
https://chess.stackexchange.com/questions/19360/how-is-alpha-zero-more-human AlphaZero가 인간처럼 어떻게 행동했는지에 대한 대답이 있습니다.
경기는 불공정했고 강하게 편향되었다. Stockfish의 최초 프로그래머 인 Tord Romstad를 인용합니다.
https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
경기 결과는 시간 제어와 Stockfish 매개 변수 설정이 다소 이상하기 때문에 그다지 의미가 없습니다. 게임은 1 분 / 이동의 고정 시간에 재생되었습니다. 즉, Stockfish는 시간 관리 휴리스틱을 사용하지 않습니다 ( Stockfish가 게임에서 중요한 포인트를 식별하고 이동에 추가 시간을 소비 할 시점을 결정하기 위해 많은 노력을 기울였습니다.
Stockfish는 한 번에 단 1 분만에 최고의 체스를 할 수 없었습니다. 이 프로그램은 그 목적으로 설계되지 않았습니다.
하나는 일반 컴퓨터에서 실행되는 기존의 체스 프로그램이고, 다른 하나는 근본적으로 다른 기술을 사용하며 구매할 수없는 맞춤형으로 설계된 하드웨어에서 실행 중입니다 (일반 사용자의 예산을 벗어나는 경우).
http://talkchess.com/forum/viewtopic.php?p=741987&highlight=#741987
나는 시험이 공정하지 않다는 것에 동의한다. SF를 해친 또 다른 문제는 32 코어 시스템에서 64 스레드에서 실행되었다는 것입니다. 그러나 대략 5 대 3의 속도 저하를 상쇄 할 SMP의 이점이 거의 없기 때문에 해당 시스템에서 32 스레드 만 실행하는 것이 훨씬 더 좋습니다. 또한 비용 비율은 내가 말한 것 이상이었습니다. 나는 그것이 64 코어 머신이라고 생각했지만 32 코어 머신은 내가 추측했던 것의 절반 정도입니다. 따라서 30 대 1의 모든 것이 그렇게 나쁘지는 않을 것입니다. 반면에 나는 당신이 그것을 얼마나 더 향상시킬 수 있는지 과소 평가한다고 생각합니다.
... 스레드 수에 비해 너무 작은 해시 테이블 ...
1GB 해시 테이블은 이와 같은 일치에 절대 허용되지 않습니다. Stockfish는 종종 해시 충돌이 발생합니다. 오래된 해시 항목을 교체하려면 CPU주기가 필요합니다.
... 상당한 양의 테스트를받은 것보다 훨씬 많은 검색 스레드를 가지고 놀았습니다 ...
결론
구글은 그들의 방법이 Stockfish보다 우수하다는 것을 의심 할 여지 가 없다 . 그들의 숫자는 피상적이고 AlphaZero에 매우 치우친 편입니다. 그들의 방법은 독립적 인 제 3 자에 의해 재현 될 수 없습니다. 딥 러닝이 전통적인 체스 프로그래밍에 비해 우수한 방법이라고 말하기에는 아직 너무 이릅니다.
체스의 심층 강화 학습을위한 Google Deepmind ( https://arxiv.org/pdf/1712.01815.pdf ) 의 새로운 논문이 있습니다 . 초록에서, 세계 최고의 Stockfish 체스 엔진은 "확실히"패배했습니다. 1997 년 딥 블루 경기 이후 컴퓨터 체스에서 가장 중요한 성과라고 생각합니다. 논문을 자세히 읽으면 답변을 업데이트하겠습니다.
원본 (2017 년 12 월 이전)
당신의 질문을 명확히하자 :
ANN은 체스 엔진에 사용할 수 있습니다.
이 프로그램이 오늘날 최고의 체스 엔진 (및 체스 플레이어)보다 성능이 좋습니까?
기린은 약 FIDE 2400 등급 인 국제 마스터 레벨에서 플레이합니다. 그러나 Stockfish, Houdini 및 Komodo는 모두 FIDE 3000에서 재생됩니다. 이는 큰 차이입니다. 왜? 왜 Monte-Carlo Tree Search가 아닌가?
Monte Carlo Tree Search가 체스에 적합하지 않다는 연구가있었습니다. 바둑은 체스와는 다른 게임입니다. 체스는 잔인한 전술에 의존하기 때문에 체스 알고리즘이 작동하지 않습니다. 체스에서는 전술이 더 중요합니다.
이제 MCTS는 AlphaGo에서는 잘 작동하지만 체스에서는 덜 작동한다는 것을 알았습니다. 다음과 같은 경우 딥 러닝이 더 유용합니다.
딥 러닝이 다음을 달성 할 수 있다면 기존 알고리즘을 능가 할 것입니다.
내가 지적하자 :
아닙니다. 기린 (@Tim이 게시 한 링크)은 Monte Carlo Tree Search를 사용하지 않습니다. 일반적인 네가 맥스 알고리즘을 사용합니다. 정규 평가 기능을 NN으로 바꾸는 것만으로도 매우 느립니다.
하나 더:
카스파로프는 1997 년 경기에서 딥 블루에 맞았습니다. "인류"는 2003-2005 년경 Kramnik이 승리없이 Deep Fritz와의 경기에서 패배했고 Michael Adams가 일방 경기에서 클러스터 머신에서 패배했을 때 실제로졌습니다. 그시기에 Rybka는 세계 최고의 선수들에게도 너무 강한 것으로 판명되었습니다.
참고:
나는 인용한다 :
체스에서 우리는 중대성이라는 개념을 가지고 있는데, 이는 엔진이 얼마나 잘 작동하고 있고 빠르게 계산 될 수 있는지에 대한 공명 가능한 평가를 제공합니다. 더욱이, Go에서는 불가능한 정적 평가 기능으로 인코딩 될 수있는 게임의 다른 많은 측면이 있습니다. 많은 휴리스틱과 좋은 평가로 인해 EBF (Effective-Branching-Factor)는 매우 작습니다. 정적 평가 기능을 대체하기 위해 신경망을 사용하면 엔진 속도가 상당히 느려집니다.
DeepBlue는 이미 Kasparov를 이겼으므로이 문제는 훨씬 간단한 접근 방식으로 해결되었습니다. 이것은 체스에서 가능한 이동 수가 이동보다 훨씬 적기 때문에 가능했기 때문에 훨씬 간단한 문제입니다. 또한 NN과 무차별 대입에는 엄청난 컴퓨팅 리소스가 필요하다는 것을 알 수 있습니다. 여기서 AlphaGo 뒤의 컴퓨터 사진 을 찾을 수 있습니다 .GPU도 아닌 TPU도 계산에 사용합니다. Go와의 소란은 Deep Blue가 Kasparov를 이길 때 go 커뮤니티가 go로는 불가능할 것이라고 주장했습니다. 이동). 그렇습니다. NN에게 체스, 마리오 를 가르치거나 그것을 가르치도록 할 수 있습니다스타 크래프트 ...
그 이유는 사람들이 이미 해결 된 문제를 해결할 때 사례에 대해 주류 미디어에서 자주 듣지 않기 때문입니다.
또한 당신의 전제는 깊은 학습, 잘못 되고 에 설명 된대로 예를 들어 체스를 재생하는 데 사용 자체는 깊은 학습 기계 국제 마스터 레벨에서 72 시간에 체스, 재생 배웁니다 . 해당 논문 인 기린 : 심층 강화 학습을 사용하여 체스 재생을 참조하십시오 .