AlphaGo와 유사한 체스 용 심층 강화 학습 엔진이없는 이유는 무엇입니까?


32

컴퓨터는 오랫동안 "브 루트 포스"기술을 사용하여 체스를 플레이하고 특정 깊이로 검색 한 다음 위치를 평가할 수있었습니다. 그러나 AlphaGo 컴퓨터는 ANN을 사용하여 위치를 평가합니다 (내가 아는 한 깊이 검색은 수행하지 않음). AlphaGo가 Go와 같은 방식으로 체스를하는 체스 엔진을 만들 수 있습니까? 아무도 이것을하지 않은 이유는 무엇입니까? 이 프로그램이 오늘날 최고의 체스 엔진 (및 체스 플레이어)보다 성능이 좋습니까?



누군가이 일을 제대로 수행 할 때까지는 시간 문제였습니다. 당신이 당신의 질문을 게시 한 달 후, 여기로 이동 : arxiv.org/abs/1712.01815 .
amoeba는 Reinstate Monica가

답변:


49

편집 (논문을 읽은 후) :

나는 논문을 신중하게 읽었습니다. Google이 논문에서 주장한 내용부터 시작하겠습니다.

  • 그들은 Monte-Carlo-Tree-Search + Deep neural network로 Stockfish를 물리 쳤다.
  • 경기는 일방적이며 AlphaZero에서는 많은 승리를 거두었지만 Stockfish는 없었습니다.
  • 그들은 단지 4 시간 만에 그것을 할 수있었습니다
  • AlphaZero는 인간처럼 연주

불행히도, 나는 그것이 좋은 저널 논문이라고 생각 하지 않습니다 . 나는 링크로 설명 할 것입니다 (그래서 내가 꿈꾸지 않는다는 것을 알고 있습니다).

https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author

경기 결과는 시간 제어와 Stockfish 매개 변수 설정이 다소 이상하기 때문에 그다지 의미가 없습니다. 게임은 1 분 / 이동의 고정 시간에 재생되었습니다. 즉, Stockfish는 시간 관리 휴리스틱을 사용하지 않습니다 ( Stockfish가 게임에서 중요한 포인트를 식별하고 이동에 추가 시간을 소비 할 시점을 결정하기 위해 많은 노력을 기울였습니다.

Stockfish는 한 번에 단 1 분만에 최고의 체스를 할 수 없었습니다. 이 프로그램은 그 목적으로 설계되지 않았습니다.

  • AlphaZero는 AlphaZero를 위해 조정 된 400 만 대 이상의 TPU 머신을 사용하는 동안 Stockfish는 일반 상용 시스템에서 실행되고있었습니다. 이것은 저렴한 안드로이드 폰과 고급 데스크톱을 일치시키는 것과 같습니다. 토드는 썼다 :

하나는 일반 컴퓨터에서 실행되는 기존의 체스 프로그램이고, 다른 하나는 근본적으로 다른 기술을 사용하며 구매할 수없는 맞춤형으로 설계된 하드웨어에서 실행 중입니다 (일반 사용자의 예산을 벗어나는 경우).

  • Google은 실수로 Stockfish의 32 코어 시스템에 64 개의 스레드를 제공했습니다. 나는 GM Larry Kaufman (세계 수준의 컴퓨터 체스 전문가)을 인용한다.

http://talkchess.com/forum/viewtopic.php?p=741987&highlight=#741987

나는 시험이 공정하지 않다는 것에 동의한다. SF를 해친 또 다른 문제는 32 코어 시스템에서 64 스레드에서 실행되었다는 것입니다. 그러나 대략 5 대 3의 속도 저하를 상쇄 할 SMP의 이점이 거의 없기 때문에 해당 시스템에서 32 스레드 만 실행하는 것이 훨씬 더 좋습니다. 또한 비용 비율은 내가 말한 것 이상이었습니다. 나는 그것이 64 코어 머신이라고 생각했지만 32 코어 머신은 내가 추측했던 것의 절반 정도입니다. 따라서 30 대 1의 모든 것이 그렇게 나쁘지는 않을 것입니다. 반면에 나는 당신이 그것을 얼마나 더 향상시킬 수 있는지 과소 평가한다고 생각합니다.

  • Stockfish는 1GB의 해시 테이블 만 제공했습니다. 이것은 농담입니다 ... 내 iPhone 에 내 Stockfish iOS 앱 (면책 조항 : 저자입니다)에 대한 더 큰 해시 테이블이 있습니다 ! 토드는 썼다 :

    ... 스레드 수에 비해 너무 작은 해시 테이블 ...

1GB 해시 테이블은 이와 같은 일치에 절대 허용되지 않습니다. Stockfish는 종종 해시 충돌이 발생합니다. 오래된 해시 항목을 교체하려면 CPU주기가 필요합니다.

  • Stockfish는 많은 수의 스레드로 실행되도록 설계되지 않았습니다. 내 iOS 체스 앱에서는 몇 개의 스레드 만 사용됩니다. 토드는 썼다 :

... 상당한 양의 테스트를받은 것보다 훨씬 많은 검색 스레드를 가지고 놀았습니다 ...

  • Stockfish는 오프닝 북이나 6 피스 Syzygy 엔드 게임 테이블베이스없이 실행되었습니다. 샘플 크기가 충분하지 않습니다. Stockfish 버전은 최신 버전이 아닙니다. 여기서 토론 하십시오 .

결론

구글은 그들의 방법이 Stockfish보다 우수하다는 것을 의심여지 가 없다 . 그들의 숫자는 피상적이고 AlphaZero에 매우 치우친 편입니다. 그들의 방법은 독립적 인 제 3 자에 의해 재현 될 수 없습니다. 딥 러닝이 전통적인 체스 프로그래밍에 비해 우수한 방법이라고 말하기에는 아직 너무 이릅니다.


편집 (2017 년 12 월) :

체스의 심층 강화 학습을위한 Google Deepmind ( https://arxiv.org/pdf/1712.01815.pdf ) 의 새로운 논문이 있습니다 . 초록에서, 세계 최고의 Stockfish 체스 엔진은 "확실히"패배했습니다. 1997 년 딥 블루 경기 이후 컴퓨터 체스에서 가장 중요한 성과라고 생각합니다. 논문을 자세히 읽으면 답변을 업데이트하겠습니다.


원본 (2017 년 12 월 이전)

당신의 질문을 명확히하자 :

  • 체스 엔진 무차별 대입을 사용 하지 않습니다 .
  • AlphaGo 트리 검색을 사용하고 Monte Carlo Tree Search를 사용 합니다. 당신이 확신하려면 구글 " 몬테카를로 트리 검색 alphaGo ".

ANN은 체스 엔진에 사용할 수 있습니다.

이 프로그램이 오늘날 최고의 체스 엔진 (및 체스 플레이어)보다 성능이 좋습니까?

기린은 약 FIDE 2400 등급 인 국제 마스터 레벨에서 플레이합니다. 그러나 Stockfish, Houdini 및 Komodo는 모두 FIDE 3000에서 재생됩니다. 이는 큰 차이입니다. 왜? 왜 Monte-Carlo Tree Search가 아닌가?

  • 체스에서의 머티리얼 휴리스틱은 간단하다. 대부분의 경우, 체스 판의 재료 만 세면 체스 위치가이기거나 잃습니다. Go에는 계산 재료가 작동하지 않습니다. 머티리얼 카운팅은 신경망을 운영하는 것보다 훨씬 빠릅니다. 이것은 64 비트 정수로 표현되는 비트 보드로 수행 할 수 있습니다. 64 비트 시스템에서는 여러 기계 명령으로 만 수행 할 수 있습니다. 기존 알고리즘으로 검색하는 것이 기계 학습보다 훨씬 빠릅니다 . 초당 더 높은 노드는 더 깊은 검색으로 변환됩니다.
  • 마찬가지로, 널 이동 프 루닝, 레이트 이동 감소 및 킬러 이동 등과 같은 매우 유용하고 저렴한 기술이 있습니다. 실행이 저렴하고 AlphaGo에 사용 된 접근 방식에 훨씬 효율적입니다.
  • 체스의 정적 평가는 빠르고 유용합니다
  • 기계 학습은 매개 변수를 최적화하는 데 유용하지만 체스를위한 SPSA 및 CLOP도 있습니다.
  • 체스에는 트리 축소에 유용한 유용한 지표가 많이 있습니다. Go의 경우는 훨씬 적습니다.

Monte Carlo Tree Search가 체스에 적합하지 않다는 연구가있었습니다. 바둑은 체스와는 다른 게임입니다. 체스는 잔인한 전술에 의존하기 때문에 체스 알고리즘이 작동하지 않습니다. 체스에서는 전술이 더 중요합니다.

이제 MCTS는 AlphaGo에서는 잘 작동하지만 체스에서는 덜 작동한다는 것을 알았습니다. 다음과 같은 경우 딥 러닝이 더 유용합니다.

  • 조정 된 NN 평가는 기존 알고리즘보다 낫습니다. 그러나 ... 딥 러닝은 마술이 아닙니다. 프로그래머는 여전히 프로그래밍을해야합니다. 언급했듯이 체스에서 매개 변수 튜닝을위한 자체 재생을위한 SPSA와 같은 것이 있습니다.
  • 투자, 돈! 체스에는 머신 러닝을위한 돈이별로 없습니다. Stockfish는 무료이며 오픈 소스이지만 모든 인간 플레이어를 물리 칠 수있을 정도로 강력합니다. 누군가가 무료로 Stockfish를 다운로드 할 수 있다면 왜 Google이 수백만 달러를 소비합니까? CPU 클러스터 비용을 지불하는 이유는 무엇입니까? 누가 재능을 지불합니까? 체스는 "해결 된"게임으로 간주되기 때문에 아무도 원하지 않습니다.

딥 러닝이 다음을 달성 할 수 있다면 기존 알고리즘을 능가 할 것입니다.

  • 체스의 위치가 주어지면 인간의 그랜드 마스터처럼 "느끼게"됩니다. 예를 들어, 인간 그랜드 마스터는 경험상 나쁜 라인에 들어 가지 않을 것입니다. 전통적인 알고리즘이나 딥 러닝은 그것을 달성 할 수 없습니다. NN 모델은 당신의 위치에 대한 확률 [0..1]을 줄 수 있지만, 충분하지 않습니다.

내가 지적하자 :

아닙니다. 기린 (@Tim이 게시 한 링크)은 Monte Carlo Tree Search를 사용하지 않습니다. 일반적인 네가 맥스 알고리즘을 사용합니다. 정규 평가 기능을 NN으로 바꾸는 것만으로도 매우 느립니다.

하나 더:

카스파로프는 1997 년 경기에서 딥 블루에 맞았습니다. "인류"는 2003-2005 년경 Kramnik이 승리없이 Deep Fritz와의 경기에서 패배했고 Michael Adams가 일방 경기에서 클러스터 머신에서 패배했을 때 실제로졌습니다. 그시기에 Rybka는 세계 최고의 선수들에게도 너무 강한 것으로 판명되었습니다.

참고:

http://www.talkchess.com/forum/viewtopic.php?t=64096&postdays=0&postorder=asc&highlight=alphago+chess&topic_view=flat&start=0

나는 인용한다 :

체스에서 우리는 중대성이라는 개념을 가지고 있는데, 이는 엔진이 얼마나 잘 작동하고 있고 빠르게 계산 될 수 있는지에 대한 공명 가능한 평가를 제공합니다. 더욱이, Go에서는 불가능한 정적 평가 기능으로 인코딩 될 수있는 게임의 다른 많은 측면이 있습니다. 많은 휴리스틱과 좋은 평가로 인해 EBF (Effective-Branching-Factor)는 매우 작습니다. 정적 평가 기능을 대체하기 위해 신경망을 사용하면 엔진 속도가 상당히 느려집니다.


1
고맙습니다. 몇 가지 질문 : 체스 엔진은 알파-베타 알고리즘을 사용합니다. 이것이 "브 루트 포스"알고리즘이 아닙니까? "Monte Carlo Tree Search"는 현재 위치보다 많은 움직임을 보이는 것을 의미합니까?
lijas

1
@lijas "brute-force"는 일반적으로 모든 가능성을 검색하는 것으로 정의됩니다. 체스 엔진은 그렇게하지 않습니다.
SmallChess

7
@lijas 방금 질문에 답했습니다. 행렬 곱셈은 느리게 작동합니다.
SmallChess

3
알파 베타 검색은 "brute forcish"입니다. AI 트렌드에 관한 Hans Berliner : "가장 중요한 트렌드는 지난 50 년 동안 컴퓨터가 상당히 빨라 졌다는 것입니다.이 과정에서 우리는 우리가 최고의 의인화 솔루션을 보유한 많은 것들을 발견하지 못했습니다. 인간의 방법의 실제 요지는 만족스러운 해결책을 찾을 때까지 단순히 열거 된 더 무차별 한 방법으로 수행 할 수있다. 이것이 이단이라면, 그렇게해야한다. " ( ieexplore.ieee.org/document/820322/?reload=true 참조 )
Daniel Lidström

1
@smallchess 알파 베타는 사실상 검색 알고리즘이며, 단지 개선 만하는 negascout과 같은 변형입니다. 다른 무엇을 언급 할 수 있습니까? 이것은 딥 러닝 시스템이되기 전에 잘 작성되었습니다.
Daniel Lidström

6

DeepBlue는 이미 Kasparov를 이겼으므로이 문제는 훨씬 간단한 접근 방식으로 해결되었습니다. 이것은 체스에서 가능한 이동 수가 이동보다 훨씬 적기 때문에 가능했기 때문에 훨씬 간단한 문제입니다. 또한 NN과 무차별 대입에는 엄청난 컴퓨팅 리소스가 필요하다는 것을 알 수 있습니다. 여기서 AlphaGo 뒤의 컴퓨터 사진찾을 수 있습니다 .GPU도 아닌 TPU도 계산에 사용합니다. Go와의 소란은 Deep Blue가 Kasparov를 이길 때 go 커뮤니티가 go로는 불가능할 것이라고 주장했습니다. 이동). 그렇습니다. NN에게 체스, 마리오 를 가르치거나 그것을 가르치도록 할 수 있습니다스타 크래프트 ...

그 이유는 사람들이 이미 해결 된 문제를 해결할 때 사례에 대해 주류 미디어에서 자주 듣지 않기 때문입니다.

또한 당신의 전제는 깊은 학습, 잘못 되고 에 설명 된대로 예를 들어 체스를 재생하는 데 사용 자체는 깊은 학습 기계 국제 마스터 레벨에서 72 시간에 체스, 재생 배웁니다 . 해당 논문 인 기린 : 심층 강화 학습을 사용하여 체스 재생을 참조하십시오 .


3
심층 강화 학습으로 훈련 된 일부 체스 프로그램 이 분명히 있음에도 불구하고 , 아무도 "전통적인"체스 엔진을 능가하는 것을 만들지 않았다는 사실은 여전히 ​​남아 있습니다. 나는 이것이 전통적인 엔진을 능가하는이 문제가 단순히 AlphaGo 수준의 무언가를 개발하는 데 필요한 많은 노력을 투자 할만 큼 흥미롭지 않고 동기 부여가되지 않기 때문이라고 생각합니다.
amoeba는

1
@amoeba 널리 사용되는 이동 재생 소프트웨어는 딥 러닝을 사용하지 않으며 일반적으로 아마추어 1 dan 플레이어보다 약하고 AlphaGo 보다 훨씬 나쁩니다. AlphaGo는 개념 증명입니다.

1
@ rus9384 쉽지는 않지만 우리는 이미 그것을 "해결했습니다", Deep Bluie는 Kasparov를 이겼습니다. 검은 백조가 체스 튜링 테스트를 통과했습니다.

5
해결 된 게임은 또 다른 것입니다. 완벽한 플레이가 흑백에서 승리를 거두는 지 아니면 무승부로 끝나는 지 알 수 없습니다.
rus9384

1
@ rus9384 : 완벽한 체스 AI를 상대로 게임을 시작하고 "White wins. Checkmate in 97 움직임"을 보는 것은 재미있을 것입니다.
Eric Duminil '10
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.