Hiểu AlphaZero


29

Gần đây, có tin tức rằng nhóm nghiên cứu DeepMind của Alphabet đã mở rộng công cụ học máy của họ để chơi cả Shogi và cờ vua. Rõ ràng, chỉ sau vài giờ tự học, nghĩa là chỉ chơi với chính quy tắc của trò chơi, hiệu suất của nó trong cờ vua đã vượt qua các công cụ hàng đầu hiện nay như Stockfish 8. Cá nhân tôi chưa biết chính xác các trận đấu được thiết lập như thế nào, vì trong điều kiện nào Stockfish được thiết lập để thực hiện, vì nếu thời gian tính toán bị giới hạn thì động cơ có thể thực hiện rất kém. Trong mọi trường hợp, đây là một thành tích rất ấn tượng, bởi vì ngay cả khi nó chỉ ra rằng người ta có thể thiết lập Stockfish một cách tối ưu hơn, với vài giờ huấn luyện bổ sung, AlphaZero sẽ vượt qua mức độ chơi, nghĩa là về cơ bản mạnh hơn AlphaZero động cơ cờ tiêu chuẩn dựa trên các chức năng đánh giá heuristic.

Bây giờ dưới ánh sáng của tin tức này, sẽ thật tuyệt nếu ai đó có thể giải thích về sự khác biệt chính trong hoạt động của một cỗ máy học cờ vua so với các động cơ tiêu chuẩn mà chúng ta đều quen sử dụng. Cụ thể hơn:

  1. Không phải là chức năng đánh giá mà AlphaZero sử dụng, được đào tạo bằng phương pháp học máy, cuối cùng chỉ là một chức năng đánh giá heuristic khác? Nếu có, sẽ công bằng khi nói rằng sự khác biệt cơ bản giữa các chức năng đánh giá của hai động cơ, là thực tế rằng Stockfish có chức năng đánh giá tối ưu được điều chỉnh bằng tay bởi con người, nghĩa là định nghĩa của chức năng tối ưu hóa được cố định, trong khi đối với AlphaZero, chức năng đánh giá mục tiêu liên tục được xác định lại thông qua đào tạo bổ sung (ví dụ thông qua tự chơi)? Làm cho cái sau trở nên năng động hơn rất nhiều của một cách tiếp cận.
  2. Cuối cùng, nói một cách mơ hồ, một động cơ như Stockfish, áp dụng chức năng đánh giá của nó cho cây di chuyển có thể, quyết định nên giữ nhánh nào và loại nào sẽ rơi, sau đó thông qua một bê tông sâu hơnphân tích từng nhánh, một lần nữa thông qua chức năng đánh giá của nó, nó chỉ ra nhánh nào mang lại giá trị cao nhất và trở thành biến thể chính (tất nhiên có nhiều kỹ thuật tiến bộ xung quanh quá trình này để cắt tỉa hiệu quả cây lớn này). Có nghĩa, đối với mỗi vị trí, thói quen cực kỳ cụ thể này phải được lặp lại để Stockfish đưa ra quyết định. Ngược lại, tôi tưởng tượng AlphaZero làm một điều gì đó rất khác, cụ thể là, nó không dựa vào phân tích cụ thể về cây di chuyển có thể tại một vị trí nhất định, thay vào đó, chức năng đánh giá của nó về cơ bản gán một giá trị cho vị trí đó (theo trực giác tương tự như việc đặt vị trí hiện tại tương tự như tất cả các vị trí khác mà nó đã được đào tạo), mà không bao giờ phải thực hiện cụ thểphân tích theo cách mà Stockfish, hoặc thậm chí là một người chơi. Đây có phải là một bức tranh âm thanh về hoạt động của AlphaZero hoặc các công cụ học máy được đào tạo tương tự không?

  3. Chúng tôi biết rằng không gian của các vị trí cờ vua đủ lớn để mọi nỗ lực lấy mẫu tất cả các vị trí trong đó sẽ thậm chí về nguyên tắc hoàn toàn vô ích (độ phức tạp EXPTIME), điều đó cho thấy rằng không có lượng đào tạo nào thông qua tự chơi là đủ để đã khám phá tất cả các vị trí, vậy thì kết quả cuối cùng có thể tốt như thế nào mặc dù có khả năng khám phá một phần nhỏ các vị trí của không gian thông qua tự chơi? Ý tưởng chính ở đây khi chơi là gì?

  4. Tôi đoán là, AlphaZero có một cách rất tối ưu để so sánh bất kỳ vị trí nhất định nào, ngay cả khi mới, với vị trí được truy cập trước đó trong tập huấn luyện của nó, so sánh càng gần, đánh giá càng có thể rút ra từ so sánh. Ví dụ, khi nó chơi Bg5 di chuyển trong trò chơi 5 , nó phải khám phá một cấu trúc tương tự trong quá trình đào tạo của nó, tức là có thể nhận ra rằng vị trí này về cơ bản tương đương với (một cách hoàn toàn khác) được nghiên cứu trong khóa đào tạo của nó, trong tương tự như cách nhận dạng khuôn mặt đạt được thông qua học máy, và kết quả là nó kết luận Bg5 nên là bước đi tốt nhất, cũng như trong đó (hoặc những) vị trí tương tự khác. Đây có phải là một dự đoán chính xác? Tôi không biết làm thế nào so sánh này được thực hiện, vì chắc chắn không thể lưu trữ tất cả các vị trí được đào tạo và phân tích thông qua chúng mỗi lần.

Đây chỉ đơn thuần là một nỗ lực để có được những hiểu biết sâu sắc về hoạt động của AlphaZero và cách đưa ra quyết định đưa ra một vị trí.

Câu trả lời:


18
  • Làm thế nào để AlphaZero chọn một di chuyển trong tìm kiếm?

Điều này là rất rõ ràng từ bài báo.

Mỗi mô phỏng tiến hành bằng cách chọn trong mỗi trạng thái di chuyển a với số lượt truy cập thấp, xác suất di chuyển cao và lựa chọn vale cao ...

Điều đó nghĩa là gì? AlphaZero đã đào tạo xác suất cho mỗi lần di chuyển (cuối trang 2 trong bài báo) từ một mạng lưới thần kinh sâu. Trong quá trình tìm kiếm, nó chọn một bước di chuyển tỷ lệ thuận với xác suất đó và cả các nút có số lượng thấp (để đảm bảo không gian lấy mẫu được khám phá). Đây không phải là một khái niệm mới, Monte Carlo Tree Search đã có trong tài liệu trước khi Google tồn tại.

------ (Rất) Ví dụ thô bạo ------

Chúng tôi có một vị trí, và chúng tôi có hai động thái hợp pháp.

  • Di chuyển 1 là tốt và hợp lý
  • Di chuyển 2 khiến vua của bạn gặp nguy hiểm khi không được bồi thường

Theo bài báo, một mô hình sâu được đào tạo có thể ước tính xác suất là (0,90, 0,10). Giả sử AlphaZero sử dụng 4 lần lặp ở Monte Carlo. Các lần lặp có thể trông giống như:

Lặp lại 1 : Chọn di chuyển 1 vì nó có xác suất cao nhất. Thực hiện mô phỏng từ di chuyển 1. Lặp lại 2 : Chọn di chuyển 1 vì nó có xác suất cao nhất. Thực hiện mô phỏng từ di chuyển 1. Lặp lại 3 : Chọn di chuyển 1 vì nó có xác suất cao nhất. Thực hiện mô phỏng từ di chuyển 1.

Bây giờ, chúng ta đang ở bước lặp 4. Mặc dù di chuyển 1 có xác suất ước tính cao hơn nhưng di chuyển 2 chưa được tìm kiếm ("số lượt truy cập thấp" trong bài viết), bây giờ AlphaZero sẽ chọn di chuyển 2 và thực hiện mô phỏng.

Cả hai động thái sẽ được xem xét, nhưng AlphaZero sẽ đưa thêm tài nguyên máy tính vào di chuyển 1 (điều tốt).

AlphaZero sau đó sẽ chọn động thái với kết quả mong đợi tốt nhất.

------------------ Những câu hỏi của bạn: ------------------

Không phải là chức năng đánh giá mà AlphaZero sử dụng, được đào tạo bằng phương pháp học máy, cuối cùng chỉ là một chức năng đánh giá heuristic khác?

Chức năng đánh giá được đào tạo là một mạng lưới thần kinh sâu sắc, nó không phải là một tập hợp các quy tắc heuristic, giống như những gì bạn thấy trong Stockfish. Không ai hiểu đầy đủ về (ngay cả nhóm Google) mạng được đào tạo, nó chỉ hoạt động. Đây là cách NN hoạt động nói chung.

trong khi đối với AlphaZero, chức năng đánh giá mục tiêu liên tục được xác định lại thông qua chức năng đánh giá mục tiêu liên tục được xác định lại thông qua đào tạo bổ sung.

Hàm đánh giá trong AlphaZero là một tập hợp các nơ-ron được đào tạo (độ lệch + trọng lượng). Nhóm Google đã sử dụng các máy rất mạnh để huấn luyện các tham số. Nói chung, càng có nhiều tài nguyên bạn có thể đầu tư vào việc đào tạo một mô hình học tập sâu, bạn càng nhận được các thông số tốt hơn.

(2).

Stockfish sử dụng alpha-beta, trong khi AlphaZero sử dụng Monte-Carlo. Chúng là hai thuật toán rất khác nhau. Thuật toán alpha-beta giả định giới hạn dưới / trên, trong khi Monte-Carlo tạo ra các mô phỏng từ gốc đến lá.

để khám phá tất cả các vị trí, vậy thì kết quả cuối cùng có thể tốt như thế nào mặc dù có khả năng khám phá một phần nhỏ các vị trí của không gian thông qua tự chơi? Ý tưởng chính ở đây khi chơi là gì?

Google không tuyên bố họ đã giải quyết cờ vua, thậm chí những cỗ máy mạnh mẽ của họ có thể liệt kê tất cả các vị trí cờ vua. Nhưng họ không phải ... đó là điểm để học máy, mô hình "học" từ tập huấn luyện. Trong trường hợp này, tập huấn luyện đến từ tự chơi. Ý tưởng chính là chơi càng nhiều game chất lượng tốt càng tốt và nhanh chóng.

Chẳng hạn, khi nó chơi Bg5 di chuyển trong trò chơi 5, nó phải khám phá một cấu trúc tương tự trong quá trình huấn luyện,

Tôi không nghĩ AlphaZero gặp phải vị trí chính xác trong các trò chơi huấn luyện. Tôi nghĩ rằng đọc nhanh về Monte-Carlo là một ý tưởng tốt:

https://chessprogramming.wikispaces.com/Monte-Carlo+Tree+Search

AlphaZero đã có thể chơi di chuyển bằng cách đạt đủ độ sâu. Thuật toán ước tính xác suất chiến thắng dự kiến ​​cho mỗi lần di chuyển, rõ ràng, động thái Bg5 đưa ra xác suất dự kiến ​​cao nhất.

Bạn có thể nghĩ như thế, AlphaGo đã có thể tìm kiếm tốt đến mức nó thấy xác suất chiến thắng là cao nhất sau Bg5, trong khi Stockfish không xem xét việc di chuyển một cách nghiêm túc (và do đó thua).


2
"Tìm kiếm cây Monte Carlo đã có trong tài liệu trước khi Google tồn tại" Tôi chỉ có thể theo dõi MCTS từ khoảng năm 2006.
CodeInChaos

2
@CodesInChaos MCTS không phải là một kỹ thuật mới. Google chắc chắn đã không phát minh ra Monte Carlo.
SmallChess

4
Brügmann 1993 rõ ràng chỉ là MC. MC đi Dev. (2003) kết hợp MC và cây, nhưng theo cách nguyên thủy. Chang (2005) khá gần, nhưng trong một bối cảnh khác và tôi nghĩ nó vẫn thiếu sự lựa chọn đúng đắn của nút để mở rộng và truyền bá các ước tính. Các toán tử chọn lọc và sao lưu hiệu quả trong MCTS Remi Coulom (2006) là một MCTS thích hợp, theo như tôi có thể nói, cái đầu tiên.
CodeInChaos

1
@SmallChess Các phần trong câu trả lời của bạn có vẻ mâu thuẫn: "bây giờ AlphaZero sẽ chọn di chuyển 2 và thực hiện mô phỏng. Cả hai động thái sẽ được xem xét, nhưng AlphaZero sẽ đưa thêm tài nguyên điện toán vào di chuyển 1 (điều tốt)." mâu thuẫn với tuyên bố Mỗi mô phỏng tiến hành bằng cách chọn ở mỗi trạng thái di chuyển a với số lượt truy cập thấp ... như trong ví dụ của bạn, đó sẽ là 2 thay vì 1. Thành thật mà nói, bài báo không chứa bất kỳ mẩu thông tin hữu ích nào cho sự hiểu biết, vì họ cho thấy không có cách nào để tái tạo thử nghiệm hoặc đưa ra bất kỳ cái nhìn sâu sắc nào về cách họ thực sự đào tạo các mạng.
gặm

1
Những gì họ làm về cơ bản là nói rằng "chúng tôi đã sử dụng thuật toán X và nó hoạt động" - điều này cung cấp rất ít để không hiểu về các phương thức, vì vậy tôi sẽ không tập trung quá nhiều vào chính bài báo để cố gắng tìm ra những gì nó thực sự làm.
gặm

0

Tôi đoán câu hỏi của tôi sẽ là làm thế nào mạng lưới thần kinh "học" phải làm gì ở một vị trí mà nó không gặp phải. Việc nói AZ thực tế thực hiện MCTS bằng cách sử dụng độ lệch + trọng số từ mạng lưới thần kinh được đào tạo chỉ đẩy nó lùi một bước để làm thế nào mạng lưới thần kinh tính toán các giá trị này. Nếu đó là thông qua việc tự chơi ngẫu nhiên, không có kiến ​​thức về con người, thì làm thế nào để quyết định làm thế nào để cân một vị trí mà nó chưa từng thấy?


1
Tôi nghĩ rằng tôi có thể trả lời bạn, nhưng không phải ở đây. Hãy bắt đầu một câu hỏi mới.
SmallChess

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.