Tại sao không có công cụ học tập củng cố sâu cho cờ vua, tương tự như AlphaGo?


32

Các máy tính trong một thời gian dài đã có thể chơi cờ bằng cách sử dụng một "kỹ thuật vũ phu", tìm kiếm đến một độ sâu nhất định và sau đó đánh giá vị trí. Tuy nhiên, máy tính AlphaGo chỉ sử dụng ANN để đánh giá các vị trí (nó không thực hiện bất kỳ tìm kiếm chuyên sâu nào theo như tôi biết). Có thể tạo ra một công cụ cờ vua chơi cờ giống như cách AlphaGo chơi cờ vây không? Tại sao không ai làm điều này? Chương trình này có hoạt động tốt hơn các động cơ cờ vua (và người chơi cờ) hàng đầu hiện nay không?


5
Xem arxiv.org/abs/1509.01549 (Hươu cao cổ: Sử dụng sâu Cốt Học để chơi cờ vua) và một bài viết phổ biến technologyreview.com/s/541276/... . Ngoài ra erikbern.com/2014/11/29/deep-learning-for-chess.html
amoeba nói Phục hồi Monica

Đó chỉ là vấn đề thời gian cho đến khi ai đó có được xung quanh để làm điều này đúng. Vì vậy, một tháng sau khi bạn đăng câu hỏi của mình, bạn vào đây: arxiv.org/abs/1712.01815 .
amip nói rằng Phục hồi Monica

Câu trả lời:


49

EDIT (sau khi đọc bài viết):

Tôi đã đọc báo một cách chu đáo. Hãy bắt đầu với những gì Google tuyên bố trong bài báo:

  • Họ đã đánh bại Stockfish bằng Monte-Carlo-Tree-Search + Mạng lưới thần kinh sâu
  • Trận đấu hoàn toàn diễn ra một chiều, nhiều chiến thắng cho AlphaZero nhưng không có trận nào cho Stockfish
  • Họ đã có thể làm điều đó chỉ trong bốn giờ
  • AlphaZero chơi như một con người

Thật không may, tôi không nghĩ rằng đó là một bài báo tốt. Tôi sẽ giải thích với các liên kết (vì vậy bạn biết tôi không mơ):

https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish- Tác giả

Bản thân kết quả trận đấu không có ý nghĩa đặc biệt vì sự lựa chọn khá lạ về điều khiển thời gian và cài đặt tham số Stockfish: Các trò chơi được chơi ở thời gian cố định 1 phút / lần di chuyển, điều đó có nghĩa là Stockfish không sử dụng phương pháp phỏng đoán quản lý thời gian của nó ( Rất nhiều nỗ lực đã được đưa vào để Stockfish xác định các điểm quan trọng trong trò chơi và quyết định khi nào nên dành thêm thời gian cho việc di chuyển, tại một thời điểm cố định cho mỗi lần di chuyển, sức mạnh sẽ bị ảnh hưởng đáng kể).

Stockfish không thể chơi cờ tốt nhất chỉ với một phút mỗi lần di chuyển. Chương trình không được thiết kế cho điều đó.

  • Stockfish đang chạy trên một máy thương mại thông thường, trong khi AlphaZero là máy 4 triệu + TPU được điều chỉnh cho AlphaZero. Điều này giống như kết hợp máy tính để bàn cao cấp của bạn với điện thoại Android giá rẻ. Tord đã viết:

Một là chương trình cờ thông thường chạy trên máy tính thông thường, chương trình còn lại sử dụng các kỹ thuật khác nhau cơ bản và đang chạy trên phần cứng được thiết kế tùy chỉnh không có sẵn để mua (và sẽ thoát khỏi ngân sách của người dùng thông thường nếu có).

  • Google đã vô tình đưa 64 luồng cho máy 32 lõi cho Stockfish. Tôi trích dẫn GM Larry Kaufman (chuyên gia cờ vua máy tính đẳng cấp thế giới):

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

Tôi đồng ý rằng bài kiểm tra là xa công bằng; Một vấn đề khác làm tổn thương SF là nó rõ ràng đã chạy trên 64 luồng trên máy 32 lõi, nhưng nó sẽ chơi tốt hơn nhiều khi chỉ chạy 32 luồng trên máy đó, vì hầu như không có lợi ích SMP nào để bù khoảng 5 đến 3 lần chậm. Ngoài ra tỷ lệ chi phí là nhiều hơn tôi nói; Tôi đã nghĩ rằng đó là một máy 64 lõi, nhưng một máy 32 lõi có giá khoảng một nửa những gì tôi đoán. Vì vậy, có thể tất cả trong tất cả 30 đến 1 không phải là một ước tính quá tệ. Mặt khác, tôi nghĩ bạn đánh giá thấp mức độ có thể cải thiện của nó.

  • Stockfish chỉ đưa ra bảng băm 1GB. Đây là một trò đùa ... Tôi có một bảng băm lớn hơn cho ứng dụng Stockfish iOS của tôi (Tuyên bố miễn trừ trách nhiệm: Tôi là tác giả) trên iPhone của tôi! Tord đã viết:

    ... cách các bảng băm quá nhỏ cho số lượng chủ đề ...

Bảng băm 1GB là hoàn toàn không thể chấp nhận cho một trận đấu như thế này. Stockfish sẽ thường xuyên gặp phải va chạm băm. Phải mất chu kỳ CPU để thay thế các mục băm cũ.

  • Stockfish không được thiết kế để chạy với số lượng chủ đề đó. Trong ứng dụng cờ vua iOS của tôi, chỉ có một vài chủ đề được sử dụng. Tord đã viết:

... đã chơi với nhiều luồng tìm kiếm hơn bao giờ hết nhận được bất kỳ số lượng thử nghiệm đáng kể nào ...

  • Stockfish đã chạy mà không có một cuốn sách mở đầu hoặc cơ sở bảng kết thúc Syzygy 6 mảnh. Cỡ mẫu không đủ. Phiên bản Stockfish không phải là phiên bản mới nhất. Thảo luận ở đây .

PHẦN KẾT LUẬN

Google đã không chứng minh mà không nghi ngờ phương pháp của họ là vượt trội so với Stockfish. Số lượng của họ rất hời hợt và thiên vị mạnh mẽ với AlphaZero. Phương pháp của họ không thể được sao chép bởi một bên thứ ba độc lập. Vẫn còn quá sớm để nói Deep Learning là một phương pháp ưu việt so với lập trình cờ truyền thống.


EDIT (tháng 12 năm 2017):

Có một bài báo mới từ Google Deepmind ( https://arxiv.org/pdf/1712.01815.pdf ) để học tập củng cố sâu trong cờ vua. Từ bản tóm tắt, cỗ máy cờ vua Stockfish số một thế giới đã bị "đánh bại" một cách thuyết phục. Tôi nghĩ rằng đây là thành tích quan trọng nhất trong cờ vua máy tính kể từ trận đấu Deep Blue năm 1997. Tôi sẽ cập nhật câu trả lời của mình khi tôi đọc bài viết chi tiết.


Bản gốc (trước tháng 12 năm 2017)

Hãy làm rõ câu hỏi của bạn:

  • Không, động cơ cờ vua không sử dụng vũ lực.
  • AlphaGo không sử dụng tìm kiếm cây, nó sử dụng Tìm kiếm cây Monte Carlo . Google " Monte Carlo Tree Search alphaGo " nếu bạn muốn được thuyết phục.

ANN có thể được sử dụng cho động cơ cờ vua:

Chương trình này có hoạt động tốt hơn các động cơ cờ vua (và người chơi cờ) hàng đầu hiện nay không?

Hươu cao cổ chơi ở cấp độ Quốc tế, được đánh giá khoảng FIDE 2400. Tuy nhiên, Stockfish, Houdini và Komodo đều chơi ở khoảng FIDE 3000. Đây là một khoảng cách lớn. Tại sao? Tại sao không tìm kiếm cây Monte-Carlo?

  • Vật liệu heuristic trong cờ vua là đơn giản. Hầu hết thời gian, một vị trí cờ là thắng / thua chỉ bằng cách đếm các tài liệu trên bàn cờ. Vui lòng nhớ lại các tài liệu đếm không hoạt động cho Go. Việc đếm vật liệu là các đơn đặt hàng có cường độ nhanh hơn so với việc chạy các mạng thần kinh - điều này có thể được thực hiện bằng các bảng bit được biểu thị bằng một số nguyên 64 bit. Trên hệ thống 64 bit, nó chỉ có thể được thực hiện bằng một số hướng dẫn máy. Tìm kiếm với thuật toán truyền thống nhanh hơn nhiều so với học máy. Các nút cao hơn mỗi giây dịch để tìm kiếm sâu hơn.
  • Tương tự, có các kỹ thuật rất hữu ích và rẻ tiền như cắt tỉa di chuyển null, giảm di chuyển muộn và di chuyển sát thủ, v.v ... Chúng rẻ khi chạy và hiệu quả đối với phương pháp được sử dụng trong AlphaGo.
  • Đánh giá tĩnh trong cờ vua là nhanh chóng và hữu ích
  • Học máy rất hữu ích để tối ưu hóa các tham số, nhưng chúng tôi cũng có SPSA và CLOP cho cờ vua.
  • Có rất nhiều số liệu hữu ích cho việc giảm cây trong cờ vua. Ít hơn nhiều cho Go.

Đã có nghiên cứu cho thấy Monte Carlo Tree Search không có quy mô tốt cho cờ vua. Go là một trò chơi khác với cờ vua. Các thuật toán cờ vua không hoạt động cho Go vì cờ vua dựa trên các chiến thuật tàn bạo. Chiến thuật được cho là quan trọng hơn trong cờ vua.

Bây giờ, chúng tôi đã thiết lập rằng MCTS hoạt động tốt cho AlphaGo nhưng ít hơn cho cờ vua. Học sâu sẽ hữu ích hơn nếu:

  • Đánh giá NN điều chỉnh là tốt hơn so với các thuật toán truyền thống. Tuy nhiên ... học sâu không phải là phép thuật, bạn là lập trình viên vẫn cần phải lập trình. Như đã đề cập, chúng tôi có một cái gì đó giống như SPSA để tự chơi để điều chỉnh các tham số trong cờ vua.
  • Đầu tư, tiền bạc! Không có nhiều tiền cho việc học máy trong cờ vua. Stockfish là mã nguồn mở và miễn phí, nhưng đủ mạnh để đánh bại tất cả người chơi. Tại sao Google sẽ chi hàng triệu đồng nếu ai đó chỉ có thể tải xuống Stockfish miễn phí? Tại sao sẽ trả tiền cho các cụm CPU? Ai sẽ trả tiền cho tài năng? Không ai muốn làm điều đó, bởi vì cờ vua được coi là một trò chơi "giải quyết".

Nếu học sâu có thể đạt được những điều sau, nó sẽ đánh bại thuật toán truyền thống:

  • Đưa ra một vị trí cờ vua, "cảm thấy" nó giống như một đại kiện tướng của con người. Ví dụ, một đại kiện tướng của con người sẽ không đi vào những điều tồi tệ - theo kinh nghiệm. Cả thuật toán truyền thống hay học sâu đều không thể đạt được điều đó. Mô hình NN của bạn có thể cung cấp cho bạn một xác suất [0..1] cho vị trí của bạn, nhưng điều đó không đủ tốt.

Hãy để tôi chỉ ra:

Không. Hươu cao cổ (liên kết được đăng bởi @Tim) không sử dụng Monte Carlo Tree Search. Nó sử dụng thuật toán nega-max thông thường. Tất cả những gì nó làm là thay thế chức năng đánh giá thông thường bằng NN, và nó rất chậm.

một lần nữa:

Mặc dù Kasparov đã bị Deep Blue đánh bại trong trận đấu năm 1997. "Nhân loại" đã thực sự thua vào khoảng 2003-2005, khi Kramnik thua một trận đấu với Deep Fritz mà không có chiến thắng và Michael Adams đã thua một cỗ máy cụm trong một trận đấu một chiều. Trong khoảng thời gian đó, Rybka tỏ ra quá mạnh mẽ đối với cả những người chơi giỏi nhất thế giới.

Tài liệu tham khảo:

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

Tôi trích dẫn:

Trong cờ vua, chúng ta có khái niệm về tính vật chất đã đưa ra ước tính có thể cộng hưởng được về việc động cơ hoạt động tốt như thế nào và có thể được tính toán nhanh chóng. Hơn nữa, có rất nhiều khía cạnh khác của trò chơi có thể được mã hóa trong chức năng đánh giá tĩnh không thể thực hiện được trong Go. Do có nhiều phương pháp phỏng đoán và đánh giá tốt, EBF (Yếu tố phân nhánh hiệu quả) khá nhỏ. Sử dụng Mạng thần kinh để thay thế cho chức năng đánh giá tĩnh chắc chắn sẽ làm chậm động cơ khá nhiều.


1
Cảm ơn bạn. Một số câu hỏi: Các công cụ cờ vua sử dụng thuật toán alpha-beta, đây có phải là thuật toán "brute-force" không? Có phải "Tìm kiếm cây Monte Carlo" có nghĩa là người ta sẽ nhìn thấy một số bước đi trước vị trí hiện tại?
lijas

1
@lijas "brute-force" thường được định nghĩa là tìm kiếm tất cả các khả năng. Động cơ cờ vua không làm điều đó.
SmallChess

7
@lijas Bạn vừa trả lời câu hỏi. Ma trận nhân là một hoạt động chậm.
SmallChess

3
Tìm kiếm Alpha Beta chắc chắn là "vũ phu". Hans Berliner về xu hướng AI: "Tôi cho rằng xu hướng quan trọng nhất là máy tính đã nhanh hơn đáng kể trong 50 năm qua. Trong quá trình này, chúng tôi thấy rằng nhiều thứ mà chúng tôi đã có ở các giải pháp nhân học tốt nhất, trong nhiều trường hợp không thể nắm bắt được ý chính thực sự của phương pháp của con người, có thể được thực hiện bằng các phương pháp tàn bạo hơn mà chỉ liệt kê cho đến khi tìm thấy một giải pháp thỏa đáng. Nếu đây là dị giáo, thì hãy làm như vậy. " (xem ieeexplore.ieee.org/document/820322/?reload=true )
Daniel Lidström

1
@smallchess alpha beta là thuật toán tìm kiếm trên thực tế, thậm chí các biến thể của nó như negascout chỉ là những cải tiến gia tăng. Ông có thể đề cập đến cái gì khác? Điều này đã được viết tốt trước khi hệ thống học tập sâu đến.
Daniel Lidström

6

DeepBlue đã đánh bại Kasparov nên vấn đề này được giải quyết bằng cách tiếp cận đơn giản hơn nhiều. Điều này là có thể bởi vì số lần di chuyển có thể có trong cờ vua nhỏ hơn rất nhiều sau đó , vì vậy nó là một vấn đề đơn giản hơn nhiều. Hơn nữa, lưu ý rằng cả NN và lực lượng vũ phu đều cần tài nguyên điện toán khổng lồ ( ở đây bạn có thể tìm thấy một bức ảnh của máy tính đằng sau AlphaGo, lưu ý rằng nó không sử dụng ngay cả GPU, mà là TPU để tính toán). Toàn bộ sự ồn ào là khi Deep Blue đánh bại Kasparov, cộng đồng cờ vây đã lập luận rằng điều này sẽ không thể thực hiện được (vì nhiều lý do khác nhau, nhưng để tóm tắt các lập luận tôi cần giới thiệu chi tiết về trò chơi của đi). Có, bạn có thể dạy NN chơi cờ, Mario hoặc thử dạy nó chơiStarcraft ...

Tôi đoán rằng lý do là vì đơn giản là bạn không thường nghe trên các phương tiện truyền thông chính thống về các trường hợp khi mọi người giải quyết vấn đề đã được giải quyết.

Hơn nữa, tiền đề của bạn là sai, Deep Learning được sử dụng để chơi cờ, ví dụ như được mô tả trong Deep Learning Machine Dạy cho chính mình Cờ vua trong 72 giờ, Chơi ở cấp độ quốc tế . Xem thêm bài báo tương ứng, Hươu cao cổ: Sử dụng học tập tăng cường sâu để chơi cờ .


3
Mặc dù rõ ràng có một số chương trình cờ được đào tạo với học tập củng cố sâu sắc, nhưng thực tế là không ai chế tạo được một động cơ có thể đánh bại các động cơ cờ "truyền thống". Tôi cho rằng điều này là do vấn đề này (đánh bại các động cơ truyền thống) đơn giản là không thú vị / đủ động lực để đầu tư nhiều nỗ lực cần thiết để phát triển một thứ gì đó ở cấp độ AlphaGo.
amip nói rằng Phục hồi Monica

1
@amoeba phần mềm chơi cờ phổ biến rộng rãi cũng không sử dụng học sâu và nó thường yếu hơn người chơi 1 dan nghiệp dư, vì vậy tệ hơn AlphaGo rất nhiều . AlphaGo là một bằng chứng về khái niệm.
Tim

1
@ rus9384 không dễ nhưng chúng tôi đã "giải quyết" được, Deep Bluie đã đánh bại Kasparov, chúng tôi có con thiên nga đen của chúng tôi đã vượt qua bài kiểm tra Turing cờ vua.
Tim

5
Trò chơi đã giải quyết là một điều khác: chúng tôi không biết liệu trò chơi hoàn hảo có đảm bảo chiến thắng cho màu đen / trắng hoặc kết thúc bằng trận hòa hay không.
rus9384

1
@ rus9384: Sẽ rất vui khi bắt đầu một trò chơi chống lại một AI cờ vua hoàn hảo và xem "Chiến thắng trắng. Người kiểm tra trong 97 nước cờ".
Eric Duminil
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.