20 câu hỏi thuật toán AI hoạt động như thế nào?


103

Trò chơi trực tuyến đơn giản gồm 20 câu hỏi được hỗ trợ bởi AI chính xác đến kinh ngạc.

Làm thế nào để họ đoán tốt như vậy?


Có vẻ như đây là 20 câu hỏi hay nhất về AI mà tôi từng thấy cho đến nay. Nếu không, tôi sẽ liên kết với một trong những người khác.
Daddy Warbox

1
Rất tốt. Mặc dù Akinator dường như đoán trực quan hơn 20q.net nhiều, theo như tôi có thể nói. Tôi quan tâm đến điều gì làm cho cái đó đặc biệt 'thông minh', có thể nói như vậy.
Daddy Warbox

1
tôi không biết điều này tồn tại trực tuyến. Nó đã đoán là 'hình nón thông' ở lần thử thứ ba, trước sự ngạc nhiên của tôi! Ấn tượng
Peter Perháč

3
+1 - chắc chắn liên quan đến chương trình và một câu hỏi hay.
Adam Davis

@JeffAtwood bạn đang cố liên kết đến bài viết nào?
antony.trupe

Câu trả lời:


55

Bạn có thể coi nó như là Thuật toán tìm kiếm nhị phân. Trong mỗi lần lặp, chúng tôi đặt một câu hỏi, câu hỏi này sẽ loại bỏ khoảng một nửa số lựa chọn từ có thể có. Nếu có tổng số N từ, thì chúng ta có thể mong đợi nhận được câu trả lời sau câu hỏi log2 (N).

Với câu hỏi 20, chúng ta có thể tìm một từ tối ưu trong số 2 ^ 20 = 1 triệu từ.

Một cách dễ dàng để loại bỏ các ngoại lệ (câu trả lời sai) có thể là sử dụng một cái gì đó như RANSAC . Điều này có nghĩa là, thay vì tính đến tất cả các câu hỏi đã được trả lời, bạn chọn ngẫu nhiên một tập hợp con nhỏ hơn, đủ để cung cấp cho bạn một câu trả lời duy nhất. Bây giờ bạn lặp lại điều đó một vài lần với các nhóm câu hỏi con ngẫu nhiên khác nhau, cho đến khi bạn thấy rằng hầu hết thời gian, bạn đều nhận được cùng một kết quả. sau đó bạn biết bạn có câu trả lời đúng.

Tất nhiên đây chỉ là một trong nhiều cách giải quyết vấn đề này.


4
Chương trình đơn giản này thể hiện những gì bạn đang nói khá tốt. Một khi bạn đạt được điều đó bạn có thể click vào codeliên kết để xem nó: openbookproject.net/py4fun/animal/animal.html
Noctis Skytower

Loại AI đó có sẵn như một dịch vụ không? Điều gì sẽ xảy ra nếu tôi có thể cung cấp tất cả các câu hỏi và câu trả lời và để nó tìm thấy chúng?
tggagne

Và bạn gọi loại thuật toán này là gì? Nó có một cái tên?
tggagne

25

Cây quyết định hỗ trợ trực tiếp loại ứng dụng này. Cây quyết định được sử dụng phổ biến trong trí tuệ nhân tạo.

Cây quyết định là một cây nhị phân đặt câu hỏi "tốt nhất" ở mỗi nhánh để phân biệt giữa các tập hợp được đại diện bởi con trái và con phải của nó. Câu hỏi tốt nhất được xác định bởi một số thuật toán học tập mà những người tạo ra ứng dụng 20 câu hỏi sử dụng để xây dựng cây. Sau đó, như các áp phích khác đã chỉ ra, một cái cây sâu 20 tầng cung cấp cho bạn một triệu thứ.

Một cách đơn giản để xác định câu hỏi "tốt nhất" tại mỗi thời điểm là tìm kiếm thuộc tính chia đều tập hợp thành một nửa. Bằng cách đó, khi bạn nhận được câu trả lời có / không cho câu hỏi đó, bạn sẽ loại bỏ khoảng một nửa bộ sưu tập ở mỗi bước. Bằng cách này, bạn có thể tìm kiếm gần đúng nhị phân.

Wikipedia đưa ra một ví dụ đầy đủ hơn:

http://en.wikipedia.org/wiki/Decision_tree_learning

Và một số thông tin cơ bản chung:

http://en.wikipedia.org/wiki/Decision_tree


2
+1, tôi xin lưu ý rằng đó là một trong những nhận xét trong bài báo của Atwood.
cgp

1
Đúng, mặc dù chương trình CƠ BẢN Animal không có thuật toán huấn luyện để xác định câu hỏi nào sẽ sử dụng và độ cao của cây để đặt chúng. Hiệu suất với cây quyết định được đào tạo sẽ tốt hơn nhiều. (Tôi đồng ý với các commenter rằng câu hỏi Atwood có cái nhìn rất giống với họ đã được tạo ra bởi các thuật toán Animal gốc và không phải bởi một mạng lưới thần kinh.)
Nathan Shively-Sanders

24

Tôi khuyên bạn nên đọc về trò chơi tại đây: http://en.wikipedia.org/wiki/Twenty_Questions

Cụ thể là phần Máy tính:

Trò chơi gợi ý rằng thông tin (được đo bằng thống kê entropy của Shannon) cần thiết để xác định một đối tượng tùy ý là khoảng 20 bit. Trò chơi thường được dùng làm ví dụ khi dạy mọi người về lý thuyết thông tin. Về mặt toán học, nếu mỗi câu hỏi được cấu trúc để loại bỏ một nửa số đối tượng, 20 câu hỏi sẽ cho phép người hỏi phân biệt giữa 2 20 hoặc 1.048.576 đối tượng. Theo đó, chiến lược hiệu quả nhất cho Hai mươi câu hỏi là đặt những câu hỏi sẽ chia đôi phần khả năng còn lại trong mỗi lần. Quá trình này tương tự như một thuật toán tìm kiếm nhị phân trong khoa học máy tính.


2
Điều đó giải thích một số điều đó. Nhưng khi bạn xem xét các câu trả lời không chính xác và sự mơ hồ chung chung, nó vẫn có vẻ không hoàn toàn dễ hiểu.
Daddy Warbox

1
Nếu bạn nhìn vào liên kết, bạn sẽ thấy rằng đây không thực sự là một câu hỏi có / không có thể chia trường cho một nửa mỗi lần. Mặc dù câu trả lời của bạn đúng cho 20 câu hỏi, nhưng tôi nghĩ rằng câu trả lời của Shaun chính xác hơn, một thuật toán học hàng xóm gần nhất đơn giản và đủ thông tin người dùng nhập, cho phép một số kết quả rất chính xác.
z -

Ah, đúng, chúng tương tự nhau, nhưng chắc chắn người hàng xóm gần nhất có ý nghĩa hơn.
cgp

12

Nó tự cho mình là "mạng lưới thần kinh trên internet", và chìa khóa nằm ở đó. Nó có khả năng lưu trữ các xác suất câu hỏi / câu trả lời trong một ma trận dự phòng. Bằng cách sử dụng các xác suất đó, nó có thể sử dụng thuật toán cây quyết định để suy ra câu hỏi nào cần hỏi để thu hẹp câu hỏi tiếp theo tốt nhất. Một khi nó thu hẹp số lượng câu trả lời có thể xuống còn vài chục hoặc nếu đã đạt đến 20 câu hỏi, thì khả năng cao nhất là nó sẽ đọc.

Khía cạnh thực sự hấp dẫn của 20q.net là không giống như hầu hết các thuật toán cây quyết định và mạng nơ-ron mà tôi biết, 20q hỗ trợ ma trận thưa thớt và cập nhật gia tăng.

Chỉnh sửa: Hóa ra câu trả lời đã có trên mạng suốt thời gian qua. Robin Burgener, nhà phát minh, đã mô tả chi tiết thuật toán của mình trong hồ sơ đăng ký bằng sáng chế năm 2005 .


6

Nó đang sử dụng một thuật toán học tập.

k-NN là một trong những ví dụ điển hình.

Wikipedia: k-Thuật toán láng giềng gần nhất


4
Thuật toán láng giềng gần nhất có phải là lựa chọn tốt trong trường hợp này không? Có vẻ như sẽ quá khó để tha thứ cho những câu trả lời sai và có thể dẫn đến một số lượng lớn các thứ nguyên, nhiều thứ nguyên không có dữ liệu. (Tôi đang giả định việc sử dụng khoảng cách hamming và một thứ nguyên cho mỗi câu hỏi.) Cây quyết định có vẻ phù hợp tự nhiên hơn.
Kylotan

1
Lý thuyết học tập là câu trả lời chính xác - không có vấn đề gì nếu nó đưa ra những câu trả lời kém 'chính xác' hơn bởi vì nó dựa trên những sai lầm mà mọi người thường mắc phải, điều này thực sự khiến nó đoán tốt hơn.
Jonathan Plackett

Vì vậy, làm thế nào để điều này giúp xác định câu hỏi tốt nhất để hỏi?
Thomas Ahle,
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.