AlphaGo: Mastering the ancient game of Go with Machine Learning

If you don't know Vietnamese, please scroll to the bottom of this article for the originals.

Game là một cơ sở kiểm thử tuyệt vời đối với việc phát triển các giải thuật thông minh và linh hoạt có khả năng giải quyết các vấn đề theo các cách mà con người đã và đang làm. Việc tạo ra các chương trình có thể chơi game giỏi hơn những người giỏi nhất có một bề dày lịch sử - game cổ điển đầu tiên được chinh phục bởi một chiếc máy tính chính là noughts and crosses (hay còn được biết đến cái tên là tic-tac-toe) vào năm 1952 trong một luận án tiến sĩ. Tiếp đến là cờ đam (checkers) năm 1994. Cờ vua (chess) đã bị đánh bại bởi Deep Blue vào năm 1997. Thành công này không chỉ giới hạn ở thể loại board game, siêu máy tính Watson của IBM đã dành vị trí quán quân trong game show Jeopardy! năm 2011, và trong năm 2014, các giải thuật riêng của chúng tôi đã học chơi hàng tá game thể loại Atari chỉ với input là các điểm ảnh thô (raw pixel).

Nhưng cho đến nay (tại thời điểm bài viết là 27/1/2016), vẫn còn có những tựa game ngăn cản sự chinh phục của trí tuệ nhân tạo. Một trong số đó chính là cờ vây (Go). Được sáng tạo ở Trung Quốc hơn 2500 năm trước, hiện có hơn 40 triệu người trên thế giới chơi cờ vây. Luật chơi của nó rất đơn giản: người chơi lần lượt đặt các viên đá (thông thường, chúng ta gọi chúng là quân cờ) đen hoặc trắng xuống bàn cờ, cố gắng bắt quân đối phương (tù binh) và chiếm lãnh thổ. Khổng Tử đã từng nhắc về trò chơi này trong sách của ông và hiện tại nó được coi là một trong bốn tài nghệ cần thiết đối với bất kỳ học giả Trung Hoa chân chính nào. Cờ vây được chơi chủ yếu thông qua trực giác và cảm nhận. Cũng chính bởi sự huyền diệu và uyên thâm của nó, cờ vây đã thu hút được khả năng sáng tạo của con người hàng trăm năm qua.

Tuy quy tắc chơi đơn giản, thế trận của một ván cờ lại có khả năng biến hóa rất phức tạp. Có khoảng 1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ván cờ có thể xảy ra - một con số lớn hơn số lượng nguyên tử tồn tại trong vũ trụ và lớn hơn 10^100 (gooogol) lần so với số ván cờ có thể xảy ra trong cờ vua. Như một hệ quả tất yếu, các phương pháp AI tìm kiếm brute force truyền thống không có đất dụng võ trong cờ vây.

Chúng tôi thấy đây là một thử thách thú vị và bắt tay vào việc xây dựng một hệ thống, tên là AlphaGo, có thể vượt qua những trở ngại này. Mục đích chính của AlphaGo chính là hạn chế không gian tìm kiếm để dễ quản lý, dễ tính toán hơn. Để làm được điều này, AlphaGo được kết hợp bởi một thuật toán tìm kiếm cây hiện đại với hai mạng neural sâu, mà mỗi một mạng neural sâu này lại bao gồm rất nhiều lớp mạng khác nhau chứa hàng triệu các kết nối dạng neural. Một mạng neural, gọi là mạng chính sách (policy network), dự đoán nước đi tiếp theo, và được sử dụng để làm hẹp "chiều rộng" việc tìm kiếm để chỉ phải cân nhắc đến các nước đi tốt nhất có thể dẫn đến chiến thắng. Mạng neural còn lại, gọi là mạng giá trị (value network), được sử dụng để làm giảm "chiều sâu" của cây tìm kiếm - đánh giá người thắng cuộc ở mỗi nước đi thay vì tìm kiếm tất cả các chuỗi nước đi dẫn đến tàn cuộc.

Đâu tiền, chúng tôi huấn luyện mạng chính sách khoảng 30 triệu nước đi được chơi bởi các kỳ thủ chuyên nghiệp cho đến khi nó có thể dự đoán được 57% số nước đi của con người. Nhưng mục đích cuối cùng của chúng tôi là đánh bại những kỳ thủ giỏi nhất chứ không chỉ dừng lại ở việc bắt chước họ. Để làm việc này, AlphaGo đã phải học cách khám phá ra những chiến thuật riêng cho bản thân thông qua việc chơi hàng ngàn ván cờ giữa các mạng neural với nhau, rồi từ đó dần dần cải thiện chúng bằng việc sử dụng phương pháp thử và lỗi (trial-and-error), hay được biết đến là phương pháp học tăng cường (reinforcement learning). Cách tiếp cận này làm cho các mạng chính sách trở nên tốt hơn, đủ mạnh để mạng neural thô (một cách trực tiếp, không cần đến tìm kiếm cây) có thể đánh bại các chương trình cờ vây đương đại khác được xây dựng bởi các cây tìm kiếm khổng lồ.

Các mạng chính sách này tiếp theo sẽ được dùng để huấn luyện lại cho các mạng giá trị. Tất nhiên là cũng bằng phương pháp học tăng cường từ những ván cờ tự chơi như trên. Các mạng giá trị này có thể đánh giá bất kỳ thế cờ nào và dự đoán người thắng cuộc sau cùng - một vấn đề hóc búa đã từng được coi là không thể.

Tất nhiên, tất cả quá trình trên đòi hỏi một khối lượng tính toán lớn nên chúng tôi đã sử dụng Google Cloud Platform. Thêm vào đó, các thư viện mã nguồn mở dành cho tính toán số sử dụng đồ thị luồng dữ liệu (data flow graph) như là TensorFlow cho phép triển khai các tính toán cần thiết cho các giải thuật học sâu (deep learning algorithm) thông qua nhiều CPU hoặc GPU.

Sau các quá trình huấn luyện đó, AlphaGo đã được đưa vào thử nghiệm. Đầu tiên, chúng tôi tổ chức một cuộc thi đấu giữa AlphaGo và các chương trình cờ vây hàng đầu. AlphoGo chỉ thua duy nhất một trong số 500 trận đấu với các chương trình này. Tiếp đến là việc mời kỳ thủ đã gắn bó với cờ vây từ năm 12 tuổi và từng ba lần vô địch châu Âu, Fan Hui, đến trụ sở của chúng tôi tại London để thi đấu. Trận đó đã diễn ra vào tháng 10 năm ngoái với chiến thắng tuyệt đối 5 - 0 dành cho AlphaGo. Đây là lần đầu tiên một chương trình máy tính chiến thắng được một kỳ thủ cờ vây chuyên nghiệp.

Điều gì sẽ diễn ra tiếp theo? Trong tháng 3 tới, AlphaGo sẽ đối đầu với một thử thách khác: 5 ván đấu ở Seoul với huyền thoại cờ vây Lee Sedol. Lee Sedol rất háo hức về trận đấu này: "Tôi rất vinh dự khi được chọn làm người chơi, nhưng tôi tự tin là mình có thể giành chiến thắng".

Thank you for reading!

Nguồn: