Đề tài: AI chương trình đánh cờ I Giới thiệu Hiện nay, trí tuệ nhân tạo (AI) học máy áp dụng rộng rãi với nhiều ứng dụng khác Trong 60 năm, nhiều nhà khoa học nghiên cứu phát triển chương trình có khả đánh cờ với thuật tốn khác Bắt đầu từ chương trình Deep Blue IBM, phần mềm vượt qua giới hạn người, chứng minh tiềm to lớn AI lĩnh vực khác đời sống Bài review viết để tổng hợp thành tựu bật AI trò chơi từ năm 1997 năm 2019 II AI chương trình đánh cờ Các chương trình sử dụng alpha-beta cắt tỉa Ứng dụng học máy vào trò chơi phần mềm đánh cờ vua Vào năm 1949, Claude Shannon viết báo mơ tả chương trình máy tính có khả đánh cờ vua [1] Ơng tính tốn trung bình ván cờ vua có 10 120 khả xảy khác Với nước đi, chương trình phải tính 10 43 nước khác Kể siêu máy tính đại ngày khơng thể tính tốn hết số lượng nước lớn Một thuật toán áp dụng chương trình đánh cờ vua thuật tốn alpha-beta cắt tỉa Thuật tốn đánh giá node tìm kiếm lựa chọn node đánh giá tốt dựa tiêu chí Mini-Max Thuật tốn u cầu kiến thức cờ trận bắt đầu kết thúc để đánh giá node cách hiệu Đến năm 1997, IBM phát triển siêu máy tính Deep Blue lần đánh bại đại kiện tướng cờ vua lịch sử Deep Blue thực nhiều thuật toán alphabeta cắt tỉa chạy song song để tìm nước tối ưu dựa theo hành động đối phương Deep Blue ví dụ điển hình cho AI cổ điển GOFAI (Good Old-Fashioned AI) [2] Hơn 10 năm sau, phần mềm chơi cờ vua Stockfish đời Stockfish chạy máy tính điện thoại phổ thơng thay chạy siêu máy tính Deep Blue Ngồi thuật tốn alpha-beta cắt tỉa nâng cấp, phần mềm sử dụng cấu trúc liệu Bitboard dành cho phần mềm đánh cờ Bitboard biểu diễn ô trạng thái bàn cờ dạng bit array đặc biệt Bằng cách biểu diễn này, phần mềm chơi cờ tối ưu nhớ tốc độ xử lý tính tốn số lượng lớn phép tốn Đến năm 2018, Stockfish phiên 10 phần mềm chơi cờ hàng đầu giới, thua AlphaZero sử dụng học máy DeepMind [3] Bên cạnh Stockfish, Elmo engine chơi cờ shogi Nhật Bản hàng đầu sử dụng chung thuật toán alpha-beta 2 Các chương trình sử dụng thuật tốn tìm kiếm Monte Carlo Đối với cờ vây, chương trình sử dụng alpha-beta cắt tỉa không đạt thành công giống cờ vua cờ shogi Khác với hai mơn cờ trên, qn cờ vây khơng bị gò bó, hạn chế Mỗi nước cờ vây có số khả lớn nhiều Không vậy, bàn cờ cờ vây có kích thước 19x19, khiến cho việc tính tốn nước phức tạp Kể với bàn cờ kích cỡ 9x9, chương trình khơng thắng kì thủ dù chấp cờ Một phương pháp khác áp dụng phổ biến cho phần mềm chơi cờ vây phương pháp tìm kiếm Monte Carlo Khác với chương trình sử dụng alpha-beta, tìm kiếm Monte Carlo khơng u cầu kiến thức bên ngồi cờ luật chơi Với nước đi, thuật tốn mơ ván cờ với thân đánh giá nước chọn Sau số lượng lớn ván cờ mô phỏng, chương trình sinh tìm kiếm lựa chọn nước có khả thắng cao Vào năm 2006, phương pháp tìm kiếm UCT (upper confidence bounds applied to trees) sử dụng thuật tốn Monte Carlo UCT tập trung tìm kiếm nước tốt thường xuyên nước tồi Tuy nhiên, UCT tìm kiếm nước khác nước dẫn đến trường hợp có khả thắng cao Với kết hợp UCT, chương trình đánh cờ vây hàng đầu Zen, Leela, Crazy Stone đánh thắng kì thủ Nhật Bản bàn cờ kích thước 19x19 chấp cờ Chương trình đánh cờ vua Komodo MCTS (Monte Carlo Tree Search) đạt thành công bước đầu với tốc độ nhanh Stockfish Dù mắt vào năm 2018, Komodo MCTS đánh ngang ngửa với Stockfish phiên 10 Phiên Stockfish 8, mắt vào tháng 11/2016, đạt thêm 55 elo (chỉ số xếp hạng cờ vua) so với phiên vòng 10 tháng, trung bình 5.5 elo tháng Phiên mắt vào tháng 1/2018 đạt thêm 66 elo, trung bình 4.4 elo tháng Phiên nhất, Stockfish 10, mắt vào tháng 11/2018 cải thiện 15 elo so với phiên trước Điều chứng tỏ chương trình sử dụng thuật tốn alpha-beta gần đạt đến giới hạn, chương trình sử dụng thuật toán Monte Carlo tiến ngày nhanh [4] Các chương trình ứng dụng học máy Các chương trình siêu máy tính sử dụng phương pháp tìm kiếm Monte Carlo đánh bại người chấp cờ Tuy nhiên điều phụ thuộc nhiều vào kiến thức lập trình viên chuyên gia cờ vây xây dựng chương trình Một phương án đưa để chương trình tự học nhận cờ, luật lệ để đưa nước tối ưu Chương trình áp dụng thành công phương pháp phần mềm AlphaGo Google DeepMind Lần lịch sử, AlphaGo đánh bại kì thủ 9-dan Lee Sedol (thứ hạng cao cờ vây) bàn cờ 19x19 mà không cần chấp cờ với tỉ số 4-1 [5] Các chương trình trước sử dụng thuật tốn brute force để tìm tất nước có thể, AlphaGo cần tìm số lượng nước nhỏ hàng nghìn lần AlphaGo huấn luyện học máy kết hợp với tìm kiếm Monte Carlo Chương trình sử dụng học sâu để huấn luyện hai mạng chính: mạng sử dụng để dự đốn nước có khả thắng cao mạng để giảm độ sâu tìm kiếm Nhờ hai mạng mà chương trình loại bỏ nước thừa tập trung tìm kiếm nước khác cách thơng minh tìm kiếm Monte Carlo Mạng thứ nhất, mạng “chính sách” (Policy network), huấn luyện 30 triệu nước khác lấy từ hàng nghìn ván đấu kì thủ chun nghiệp Sau đó, AlphaGo tự chơi với để tự tìm chiến thuật đánh cờ, thay có đầu vào từ chun gia Các kết từ mạng sách đưa vào để huấn luyện mạng thứ hai, mạng giá trị (Value network) Mạng đánh giá nước dự đoán khả thắng người chơi Cuối cùng, đầu mạng kết hợp với tìm kiếm Monte Carlo để tìm nước hợp lý [6] Sau thành công AlphaGo, DeepMind cho đời phiên cải tiến, mạnh mẽ AlphaGo Master, AlphaGo Zero Đặc biệt, AlphaGo Zero huấn luyện mà không sử dụng liệu từ người Chương trình ban đầu biết luật chơi cờ vây Sau tự chơi 4.9 triệu ván cờ với thân ngày, AlphaGo Zero vượt qua AlphaGo với tỉ số 100 – [7] AlphaZero đạt tốc độ học nhanh AlphaGo Zero dùng cho cờ vua cờ shogi Các mạng AlphaZero cập nhật liên tục Ngồi ra, AlphaZero lợi dụng cờ đối xứng cờ vây xét trường hợp hoà cờ cờ vua cờ shogi AlphaZero cần tìm 80.000 nước giây cho cờ vua, 40.000 nước cho cờ shogi so với 70 triệu nước Stockfish 35 triệu nước Elmo [8] Hình 1: So sánh Elo AlphaZero với phần mềm Stockfish, Elmo AlphaGo sau 700000 bước huấn luyện Nguồn: [8] AlphaZero vượt qua khả người, đưa nước cờ độc đáo khơng có sách Phần mềm dễ dàng đánh bại phần mềm đánh cờ tiên tiến Các phần mềm đánh cờ sử dụng học máy khác phát triển Leela Zero, Zen Zero đạt kết vượt trội so với phương pháp tìm kiếm Monte Carlo thơng thường III Kết luận Khởi đầu từ siêu máy tính IBM Deep Blue, chương trình đánh cờ sử dụng thuật tốn alpha-beta cắt tỉa đạt thành công bước đầu Tuy nhiên, thuật tốn khơng thể áp dụng hiệu cho cờ vây Các chương trình sau sử dụng thuật tốn tìm kiếm Monte Carlo kết hợp với UTC thuật toán tối ưu khác Phương pháp giúp chương trình đánh cờ đánh thắng kì thủ 9-dan chấp cờ Đến năm 2016, AlphaGo kết hợp học máy với MCTS để đánh bại kì thủ cờ vây Lee Sedol mà không cần chấp cờ, điều mà nhà khoa học tưởng chừng thực vài thập kỉ AlphaGo AlphaZero làm nên lịch sử, chinh phục môn cờ khó kết thúc chặng đường kéo dài 60 năm Sau môn thể thao đánh cờ, nhà khoa học sẵn sàng với thử thách mới: đánh bại người trò chơi điện tử Nếu đánh cờ chương trình nhìn thấy cục diện tồn bàn cờ, trò chơi điện tử che giấu thơng tin đối phương đòi hỏi chương trình phải xử lý thao tác phức tạp nhiều Đây mảng nghiên cứu đầy tiềm cho AI nói chung học máy nói riêng Danh mục tham khảo [1] C Shannon, "Programming a Computer for Playing Chess," Philosophical Magazine, 1949 [2] "Deep Blue (chess computer)," [Online] Available: https://en.wikipedia.org/wiki/Deep_Blue_(chess_computer) [Accessed 4 2019] [3] "Stockfish (chess)," [Online] Available: https://en.wikipedia.org/wiki/Stockfish_(chess) [Accessed 4 2019] [4] S O Platz, "Monte Carlo instead of Alpha-Beta?," 30 2019 [Online] Available: https://en.chessbase.com/post/monte-carlo-instead-of-alpha-beta [Accessed 4 2019] [5] "AlphaGo," [Online] Available: https://en.wikipedia.org/wiki/AlphaGo [Accessed 4 2019] [6] D Silver and D Hassabis, "AlphaGo: Mastering the ancient game of Go with Machine Learning," Google DeepMind, 27 2016 [Online] Available: https://ai.googleblog.com/2016/01/alphagomastering-ancient-game-of-go.html [Accessed 4 2019] [7] David Silver et al., "Mastering the game of Go without human knowledge," Nature, no 550, pp 345349, 2017 [8] David Silver et al., "A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play," Nature, vol 362, no 6419, pp 1140-1144, 2018 ...2 Các chương trình sử dụng thuật tốn tìm kiếm Monte Carlo Đối với cờ vây, chương trình sử dụng alpha-beta cắt tỉa không đạt thành công giống cờ vua cờ shogi Khác với hai môn cờ trên, quân cờ. .. khả thắng cao Với kết hợp UCT, chương trình đánh cờ vây hàng đầu Zen, Leela, Crazy Stone đánh thắng kì thủ Nhật Bản bàn cờ kích thước 19x19 chấp cờ Chương trình đánh cờ vua Komodo MCTS (Monte Carlo... chứng tỏ chương trình sử dụng thuật tốn alpha-beta gần đạt đến giới hạn, chương trình sử dụng thuật tốn Monte Carlo tiến ngày nhanh [4] Các chương trình ứng dụng học máy Các chương trình siêu