Nguồn gốc của sự ngẫu nhiên trong trận đấu Alpha Zero vs Stockfish là gì?


7

Sự hiểu biết của tôi là thuật toán của Alpha Zero đã được sửa chữa sau giai đoạn "học", vì vậy liệu nó có đưa ra cùng một động thái cho mọi vị trí không? Là sự thay đổi trong trận đấu hoàn toàn do cài đặt Stockfish, hay Alpha Zero cũng hiển thị một yếu tố ngẫu nhiên trong lựa chọn di chuyển của nó?


2
Tìm kiếm cây Monte Carlo được sử dụng bởi alpha zero nghe khá ngẫu nhiên.
hoacin

1
Monte Carlo không phải là một thuật toán xác định.
SmallChess

Sự hiểu biết của tôi là mcst đã được sử dụng trong giai đoạn "học tập" để huấn luyện mạng lưới thần kinh, trong khi thuật toán được chuẩn bị cho trận đấu thực tế. Có vẻ như tôi đang thiếu một mẹo.
fentydank 16/12/17

3
Tôi nghĩ rằng mcts đã được sử dụng tất cả các thời gian.
hoacin

Một khả năng khác nếu đôi khi nguồn không thể thay đổi là thời gian. Mặc dù cùng một thời gian có thể được sử dụng trên cùng một lần di chuyển, luôn có một số khả năng khác nhau về thời gian để thực hiện một số tính toán, do đó có thể nó chạy nhanh hơn một chút so với lần khác và sau đó thời gian nhanh hơn sẽ tốt hơn Trả lời vì nó nhận được sau đó thời gian chậm hơn.
Benji Altman

Câu trả lời:


6

Tôi đã nhận thấy AlphaZero đã chơi 1.d4 và 1.Nf3 trong http://www.chessgames.com/perl/chess.pl?tid=91944&crosurdy=1 . Khả năng:

  • Mutlithreading (bất kỳ kỹ sư phần mềm nào cũng có thể cho bạn biết nó không mang tính quyết định)
  • Monte Carlo Tree Search (thuật toán vẽ các đường dẫn ngẫu nhiên, do đó không thể xác định được)

Xin lưu ý trong khi các tham số của mô hình là "cố định" (từ riêng của bạn), di chuyển thực tế có thể khác. Chúng tôi không có mã nguồn cho AlphaZero, nhưng đa luồng và MCTS có thể là hai yếu tố chính.


1
Ý bạn là gì đa luồng không mang tính quyết định? Điều đó không phụ thuộc vào cách sử dụng nó. Chúng tôi có thể không biết chủ đề nào kết thúc trước, nhưng đối với hầu hết mọi người, mọi người có xu hướng (hoặc ít nhất là cố gắng) cẩn thận về việc đảm bảo rằng mọi sự không nhất quán với thứ tự được thực hiện sẽ không ảnh hưởng đến kết quả cuối cùng của chương trình.
Benji Altman

@BenjiAltman Tôi đã viết chúng tôi không có mã nguồn. Bạn được chào đón để đóng góp cho câu trả lời của riêng bạn.
SmallChess

3
Đa luồng trong động cơ cờ vua gần như không bao giờ xác định.
SmallChess

1
@BenjiAltman Chủ đề có thể kết thúc xử lý và thời gian khác nhau. Trừ khi chương trình bằng cách nào đó đợi mọi luồng kết thúc và trả về chúng một cách xác định , kết quả thực tế có thể phụ thuộc vào luồng nào được bộ lập lịch ưu tiên cao hơn.

1
@rec Đúng. Các ứng dụng hiệu suất cao như cờ vua không đợi các chủ đề kết thúc (chúng không phải là các ứng dụng kinh doanh!), Và do đó mang tính quyết định. Ví dụ, Stockfish chạy trên đa lõi là 100% không xác định.
SmallChess

5

Các tác giả LC0 đã nghiên cứu bài báo AlphaZero rất cẩn thận, thực hiện các thí nghiệm của riêng họ và họ đã đi đến kết luận sau đây. AlphaZero, mặc dù gọi đó là thuật toán tìm kiếm cây Monte Carlo (Tất cả các phương pháp Monte Carlo theo định nghĩa rõ ràng là ngẫu nhiên), không sử dụng bất kỳ sự không xác định rõ ràng nào sau một số lần di chuyển nhất định (tôi tin rằng đây là 15 lần di chuyển).

Có hai phần khác nhau để MCTS có thể đưa sự ngẫu nhiên vào lựa chọn di chuyển.

  1. Trong giai đoạn tìm kiếm, AlphaZero chỉ định các trọng số để di chuyển khám phá dựa trên 2 yếu tố: xác suất thắng được xác định bởi mạng lưới thần kinh và một số thống kê kích thước cây con của cây con và cây con di chuyển. Yếu tố đầu tiên đảm bảo rằng các dòng hứa hẹn hơn được đánh giá đầu tiên và yếu tố thứ hai đảm bảo rằng các dòng ít hứa hẹn hơn cuối cùng sẽ được tìm kiếm. Trong một triển khai MCTS tự nhiên, nó sẽ sử dụng các lựa chọn ngẫu nhiên có trọng số giữa các khả năng có trọng số này. Trong thực tế, AlphaZero chọn giữa những điều này hoàn toàn xác định, bằng cách chỉ chọn trọng lượng tối đa mỗi lần. Nó thực hiện điều này bởi vì tính ngẫu nhiên trong bước này không có ích và trung bình chỉ làm động cơ bị phân tâm khỏi các biến thể quan trọng hơn.

  2. Trong giai đoạn di chuyển, nó có thể đưa ra lựa chọn có trọng số giữa các ứng cử viên di chuyển đã có những đánh giá sâu sắc và chính xác được tính theo giai đoạn tìm kiếm. Ý tưởng là thực hiện các động tác không tối ưu một chút để cố gắng giới thiệu sự đa dạng trong cách chơi của nó, vì vậy nó không chơi cùng một trò chơi mỗi lần. Điều này đặc biệt quan trọng trong quá trình đào tạo, nhưng cũng dẫn đến kết quả trận đấu thú vị hơn. Hóa ra AlphaZero chỉ thực hiện điều này trong 15 lần di chuyển đầu tiên hoặc lâu hơn, sau đó nó luôn chọn cách di chuyển tốt nhất. Tính quyết định này hóa ra rất cần thiết cho lối chơi kết thúc cực kỳ chính xác của nó, trong đó những khác biệt nhỏ trong đánh giá hóa ra lại là sự khác biệt giữa hòa và thắng.

Điều này đúng trong cả đào tạo và đánh giá.

Nói cách khác, một khi nó ra khỏi phần mở đầu, lối chơi của nó mang tính quyết định như một động cơ truyền thống.

Tuy nhiên, lưu ý rằng nó sẽ có cùng loại đa luồng và kiểm soát thời gian không xác định như các động cơ truyền thống.

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.