Có thể bạn chưa biết: Máy tính đánh bại con người trong Poker ?
Cỗ máy đánh bại con người trong trò poker chỉ sử dụng đúng 1 card màn hình GTX 1080 !
Thậm chí AI poker DeepStack còn có thể phán đoán những lá bài của người chơi mà không cần dựa vào nét mặt của họ như con người.
Vào cuối tháng Một vừa qua, các nhà khoa học máy tính của trường Carnegie Mellon đã đạt được một bước tiến quan trọng về AI: thuật toán của họ Libratus đã đánh bại hàng loạt các những người chơi poker chuyên nghiệp trong một cuộc thi với 120.000 người tham gia.
Cho dù trước đây con người đã từng thất bại nhiều lần trước máy tính trong các trò chơi khác, poker lại là một sự khác biệt cơ bản. Ở đây, người chơi không có được thông tin về những người chơi còn lại. Khác biệt cơ bản này đòi hỏi AI của poker phải có khả năng đối phó được với loại tình huống thông tin không hoàn hảo.
Tuy nhiên trong tuần này, một nhóm nghiên cứu khác đã thông báo về thuật toán chơi poker của riêng họ, có khả năng đánh bại con người, DeepStack. Không những vậy, cả hai nhóm đều cho biết cách tiếp cận của mình không chỉ dành riêng cho môn poker mà còn với cả các trò chơi dạng thông tin không hoàn hảo khác, những môn con người đang thống trị.
Các chiến lược không hoàn hảo
Một trò chơi thông tin hoàn hảo tương đối đơn giản: tất cả người chơi đều có thể biết nhìn thấy toàn bộ trạng thái của trò chơi, thường chỉ diễn ra trên một bàn cờ. Ngoài ra những trò chơi này cũng có các quy tắc, luật lệ riêng. Vì vậy, việc tính toán mọi nước đi có thể trong một lần chơi cụ thể là tương đối đơn giản. Với đủ sức mạnh điện toán, máy tính có thể tính toán tất cả các nước đi có thể – quá đủ để kết thúc bất kỳ trò chơi nào.
Đối với một trò chơi đơn giản như Checkers (cờ Đam), điều đó có nghĩa là máy tính có thể dự đoán được cả những bước đi trong tương lai. Còn với những môn cờ phức tạp hơn, như cờ Vua, thường máy tính sẽ dự đoán khá chính xác 10 nước đi sắp tới.
Nếu một máy tính có thể ấn định giá trị cho mỗi bước đi trong tương lai trên bàn cờ, việc nó nó có thể thực hiện một bước đi tối ưu trong bất kỳ trường hợp nào là hoàn toàn có thể. Vào lúc đó, hy vọng tốt nhất dành cho người chơi chỉ có thể là một ván hòa.
Trong khi đó, poker hoàn toàn khác biệt. Trong mỗi biến thể của trò chơi này, luôn luôn có những quân bài mà không người chơi nào khác thấy được, bao gồm cả những quân bài đã được cầm lên tay và những quân bài vẫn chưa chia. Điều này tạo ra một thách thức điện toán lớn hơn nhiều so với các trò chơi khác.
Để giải quyết các trò chơi thông tin không hoàn hảo này, các nghiên cứu trước đây tập trung vào cách tiếp cận có nguồn gốc từ lý thuyết trò chơi. Các máy tính sẽ chọn một chiến thuật nào đó và tính toán khả năng nó sẽ phải hối hận vì đã sử dụng khi trò chơi đang diễn ra.
Trường hợp lý tưởng của cách tiếp cận này có nghĩa là những người chơi khác sẽ không thể thường xuyên khai thác được các điểm yếu trong chiến lược của nó để ăn tiền. Tuy nhiên, điều này không có nghĩa là máy tính sẽ thắng trong mọi ván đấu – một số trường hợp chỉ đơn giản là không thể làm theo cách này, bởi vì việc thường xuyên tìm kiếm cách đi mới để chiến thắng trong dài hạn là quá khó.
Chiến lược của Libratus
Vì vậy, AI poker sẽ vừa phải có khả năng tính toán xem chiến lược của mình sẽ hoạt động như thế nào đối với mỗi trường hợp cụ thể của ván đấu (quân bài rút được và lịch sử đặt cược), vừa phải có khả năng chọn được một chiến lược chung phù hợp nhất với mỗi ván đấu mà nó tham gia.
Quang cảnh trận đấu giữa Libratus với các chuyên gia poker hàng đầu thế giới.
Đối với Libratus, nó làm được điều này dựa nhiều vào việc tính toán trước và sau đó cập nhật mỗi ngày trong khi giải đấu vẫn đang diễn ra. Trong khi, những người chơi vẫn còn đang thảo luận về các điểm yếu trong chiến lược của nó mà họ tìm ra, nhóm Libratus lại đang sử dụng các phần cứng điện toán với tốc độ nhiều Petaflop để vá lại những lỗ hổng này.
“Mỗi ngày sau khi ván đấu kết thúc, một siêu thuật toán (meta-algorithm) sẽ phân tích những lỗ hổng nào trong chiến lược của Libratus mà người chơi đã phát hiện và khai thác.” Tuomas Sandholm, nhà nghiên cứu tại Carnegie Mellon cho biết. “Sau đó trí tuệ nhân tạo này sẽ ưu tiên siêu máy tính cho việc vá các lỗ hổng và thuật toán vào mỗi tối.”
Vì vậy, các chuyên gia poker đã phải nhận xét rằng. “Mỗi khi chúng tôi tìm ra một điểm yếu nào đó, nó học được điều đó và điểm yếu đó biến mất vào ngày hôm sau.” Jimmy Chou một trong các chuyên gia đấu với Libratus cho biết. Kết quả cuối cùng là một chiến thắng đậm đà cho Libratus khi nó dẫn trước với số tiền 1,75 triệu USD.
DeepStack – Phán đoán thái độ của người chơi mà không cần nhìn mặt
Trong khi đó, DeepStack là sự hợp tác giữa một số nhà nghiên cứu người Séc với nhóm đầu tiên hình dung ra thuật toán tiếp cận giới hạn với trò Texas Hold’em. Cũng giống như Libratus, đó là một cách tiếp cận chung để giải quyết các trò chơi có thông tin không hoàn hảo. Tuy nhiên, các chi tiết về cách tiếp cận điện toán của DeepStack rất khác biệt so với Libratus: nó chơi một cách hiệu quả nhờ việc xem mỗi lượt lên bài như một ván đấu hoàn toàn mới.
Một đoạn tài liệu dưới đây về DeepStack giải thích tại sao việc đưa ra quyết định dựa trên toàn bộ lịch sử của ván đấu lại khó có thể đạt được hiệu quả:
“Quyết định đúng đắn tại một thời điểm cụ thể phụ thuộc vào phân phối xác suất về thông tin riêng mà đối phương đang nắm giữ (các lá bài của đối phương), vốn chỉ được tiết lộ qua các hành động của họ trong quá khứ. Tuy nhiên, việc hành động của đối phương tiết lộ thông tin đó như thế nào, lại phụ thuộc vào hiểu biết của họ về thông tin riêng mà chúng tôi đang nắm giữ và hành động của chúng tôi tiết lộ nó như thế nào. Loại hàm đệ quy này là lý do tại sao người ta không thể dễ dàng giải thích các tình huống trò chơi một cách độc lập.”
Để tránh bị mắc kẹt vào một hàm đệ quy vô hạn, DeepStack chỉ cần bỏ qua quá khứ. “Mục tiêu của chúng tôi là tránh duy trì một chiến lược cho cả ván đấu.” Các nhà phát triển AI này cho biết. Thay vào đó, mỗi khi đến lượt chơi của mình, DeepStack thực hiện một phép tìm kiếm nhanh để chọn ra chiến lược dựa trên trạng thái hiện tại của ván đấu. Kết quả tìm kiếm phụ thuộc vào hai bước rút gọn chính.
Đầu tiên là nó chỉ xem xét một số lượng giới hạn các hành động. AI có thể FOLD (bỏ bài), CALL (cược bằng người chơi trước), ALL-IN (đặt hết số tiền) hoặc chỉ đặt cược gấp 2 hay 3 lần. Điều này giúp giới hạn một cách đáng kể số lượng các trạng thái của tương lai cần phải được xem xét – chỉ còn khoảng 140 cách xếp bài dựa trên những quân mà nó có. Nó cũng sẽ không tìm kiếm tiếp toàn bộ các khả năng có thể xảy ra.
Kết quả là AI này chỉ mất 5 giây để hoàn thành phép tính với một card đồ họa NVIDIA GeForce GTX 1080 duy nhất.
Thứ hai là giới hạn các khả năng lên bài của đối phương. Tất cả công việc trên vẫn đòi hỏi phải tìm kiếm các giá trị có thể của những lần lên bài trong tương lai. Tuy nhiên, nhờ vào việc sử dụng hai mạng lưới thần kinh nhân tạo Deep Learning (học sâu), hai bản sao của cùng một mạng lưới: một dành cho 3 lá bài chung đầu tiên, mạng lưới thứ hai dành cho hai lá bài riêng cuối cùng. Về cơ bản, AI này có khả năng phán đoán các lá bài của đối phương mà không cần nhìn vào mặt họ.
Hiệu quả của DeepStack
Để thử nghiệm AI này, thông qua Liên đoàn Poker Quốc tế, nhóm nghiên cứu thuê 33 người chơi để chơi đối đầu với nó. Nhưng giá trị tiền mặt của giải thưởng không đủ để thu hút những người chơi tốt nhất cho thử nghiệm này, và một vài người trong số họ chỉ hoàn thành một số ít ván đấu.
Chỉ có hai người chơi kết thúc ván đấu với việc dẫn trước DeepStack, và cả hai người đó đều chơi rất ít ván, vì vậy rất khó dự đoán được những lá bài rút được sẽ là gì. Với 11 người chơi đã trải qua đầy đủ 3.000 ván đấu với DeepStack, tất cả đều kết thúc với việc đứng sau nó, 10 người trong số họ thậm chí còn thua với một khoảng cách rất đáng kể.
Do các cách tiếp cận của hai nhóm Libratus và DeepStack rất khác biệt, nên có rất ít cơ hội để hai nhóm nghiên cứu có thể sáp nhập với nhau dù họ muốn. Tuy vậy, cách tiếp cận của DeepStack đang cho thấy tổng quát hơn, vì nó không dựa vào một siêu máy tính để cập nhật hệ thống trong thời gian nghỉ.
Nhưng điều quan trọng là liệu phần mềm này có thể mở rộng ra bên ngoài các trò chơi hay không. Cả hai nhóm đều tuyên bố sẽ đưa ra một cách tiếp cận tổng quát cho các trường hợp thông tin không hoàn hảo: Đối với DeepStack, phần code dành riêng cho poker dường như chỉ là việc sử dụng các mạng lưới thần kinh nhân tạo để tính toán giá trị của trạng thái ván đấu trong tương lai và ra quyết định tùy vào các giá trị đó.
Nếu những đoạn code này được chuyển đổi sang các lĩnh vực khác, nó có thể ứng dụng được cho các vấn đề trong thế giới thực. Các tác giả của DeepStack cho rằng nó sẽ rất có giá trị trong việc ra các quyết định về y tế và quốc phòng.
Tuy nhiên, bước tiếp theo của nghiên cứu này chỉ đơn giản là cho phần mềm này chơi khi có nhiều hơn một đối thủ. Cả hai AI này hiện tại mới được thiết kế dành cho các trận đối đầu một một, việc bổ sung thêm người chơi trên bàn sẽ làm gia tăng tính phức tạp và nâng cao thách thức điện toán.
Tham khảo Genk.