Tại sao NN + MCTS & AB + viết tay eval thống trị cờ vua động cơ?


14

Theo tôi hiểu, các công cụ có thể được chia thành bốn nhóm ngay bây giờ: những nhóm sử dụng Alpha-beta (AB) + những nhóm sử dụng Monte Carlo Tree Search (MCTS) để tìm kiếm và những nhóm sử dụng chức năng viết tay + những nhóm sử dụng mạng thần kinh cho đánh giá Hai động cơ mạnh nhất là Leela và Stockfish. Leela sử dụng MCTS + NN, trong khi Stockfish sử dụng AB + viết tay.

Tại sao hai sự kết hợp này? Tại sao không phải là NN + AB, hay MCTS + viết tay? Nếu MCTS tốt hơn AB, tại sao Komodo MCTS không mạnh hơn Komodo AB? Nếu AB tốt hơn MCTS, tại sao Leela không sử dụng AB thay thế?


Chỉ cần suy đoán: NN là nhận dạng mẫu. Vì MCTS tạo ra một mạng lưới rộng hơn, nhiều khả năng gặp phải các mẫu mà NN đã được đào tạo để nhận ra là tốt hay xấu.
John Coleman

Câu trả lời:


12

Tốc độ

Mạng lưới thần kinh hoạt động chậm hơn nhiều so với các chức năng đánh giá thủ công. Trong Superfinal TCEC , Leela Chess Zero, chạy trên hai GPU, mỗi GPU có lõi tenor chuyên dụng, có thể tìm kiếm khoảng 60 nghìn vị trí mỗi giây. Ngược lại, Stockfish, trên một lõi đơn trên PC của tôi, tìm kiếm hơn 2 triệu vị trí mỗi giây.

Trong khi các động cơ hiện đại có nhiều lựa chọn kỹ thuật để cắt các nhánh không cần thiết , tìm kiếm cây alpha-beta vẫn là một kỹ thuật vũ phu, đòi hỏi số lượng lớn các vị trí được tìm kiếm để xác định di chuyển tốt.

Ngược lại, MCTS được lựa chọn nhiều hơn và chỉ mở rộng cây tìm kiếm theo hướng di chuyển hứa hẹn nhất, cho phép nó tận dụng tối đa số lượng nút hạn chế hơn có thể tìm kiếm.

Hành vi xấu nhất

Một trong những yêu cầu chính của chức năng đánh giá đối với một công cụ dựa trên tìm kiếm alpha-beta là nó phải có hành vi trong trường hợp xấu nhất . Điều này là do bất kỳ lỗi lớn nào trong đánh giá, tuy nhiên rất hiếm, có thể dễ dàng được truyền đến thư mục gốc và dẫn đến một động thái không chính xác khủng khiếp đang được phát.

Do tính chất phức tạp của chúng, các mạng lưới thần kinh dễ bị quá tải và chỉ có thể tốt như dữ liệu được sử dụng để huấn luyện chúng. Ví dụ, trong trận đấu 80 của Superfinal TCEC mùa 14 , khi di chuyển 47 Lc0 dường như không cảm thấy ngạc nhiên bởi nữ hoàng phụ của Stockfish, đánh giá vị trí là +0,77, trong khi Stockfish (và hầu hết các động cơ khác) đã đánh giá +8,31. Một lời giải thích phổ biến cho điều này là Lc0 có thể không có số lượng trò chơi đáng kể với nhiều nữ hoàng trên bảng trong tập huấn luyện của mình.

Do đó, các mạng thần kinh có hành vi xấu nhất trong trường hợp xấu và do đó có khả năng hoạt động kém với tìm kiếm alpha beta. Ngược lại, MCTS cho phép bù điểm không chính xác được gán cho một vị trí bằng cách lấy trung bình điểm đó với điểm số hợp lý được gán cho các vị trí gần đó trong tìm kiếm.

Quieshood

Tất cả các công cụ alpha-beta mạnh đều sử dụng một kỹ thuật gọi là tìm kiếm tĩnh , một hình thức tìm kiếm alpha-beta bị hạn chế áp dụng tại các nút lá, thừa nhận rằng các chức năng đánh giá thủ công của chúng chỉ hoạt động tốt ở các vị trí "yên tĩnh", trong đó không có bắt giữ hoặc kiểm tra đang chờ xử lý .

Ví dụ, ngay sau nửa đầu của một cuộc trao đổi nữ hoàng, chức năng đánh giá thủ công có thể cho bạn biết rằng phía mà nữ hoàng của họ đã mất hoàn toàn, trong khi một mạng lưới thần kinh có thể hiểu rằng nữ hoàng sẽ sớm bị chiếm lại.

Điều này làm cho các chức năng đánh giá thủ công tương tự không phù hợp với MCTS do không tìm kiếm hoạt động, dẫn đến các chức năng thủ công hoạt động kém trong thời gian (mặc dù Komodo 12 MCTS đã khắc phục hạn chế này bằng cách sử dụng các tìm kiếm alpha-beta ngắn , để có được các vị trí kiểm tra và do đó cho phép đánh giá thủ công của nó để trả về một số điểm hợp lý)


2

AB và MCTS không nhất thiết phải tốt hơn nhau về giá trị riêng của họ. Chỉ là chúng là các thuật toán tìm kiếm khác nhau hoạt động tốt hơn với các nền tảng khác nhau. Đối với NN, MCTS hoạt động tốt vì nó cho phép động cơ khám phá các nhánh đang hoạt động tốt hơn. Điều này giúp động cơ tự do hơn khi nhìn vào những gì nó "muốn".

Trong khi đó với AB, tất cả các nhánh về nguyên tắc phải được xem xét. Điều này là do ngay cả khi lặp đi lặp lại sâu, động cơ chỉ nhìn xa đến từng nhánh trong mỗi lần lặp. Vì vậy, nó không biết nếu một chi nhánh thực sự chiến thắng cho một bên, ngay cả khi nó dường như thua ở độ sâu hạn chế.

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.