อัลกอริทึม AI 20 คำถามทำงานอย่างไร


103

เกมออนไลน์ง่ายๆ 20 คำถามขับเคลื่อนโดย AI ที่แม่นยำน่าขนลุก

พวกเขาเดาได้อย่างไร?


ดูเหมือนว่าจะเป็น 20 คำถาม AI ที่ดีที่สุดที่ฉันเคยเห็นมา มิฉะนั้นฉันจะเชื่อมโยงไปยังรายการอื่น ๆ
Daddy Warbox

1
ดีมาก. แม้ว่า Akinator ดูเหมือนจะเดาได้ง่ายกว่า 20q.net มากเท่าที่ฉันสามารถบอกได้ ฉันสนใจในสิ่งที่ทำให้คนนั้น 'ฉลาด' เป็นพิเศษเพื่อที่จะพูด
Daddy Warbox

1
ฉันไม่รู้ว่ามีสิ่งนี้อยู่ทางออนไลน์ มันเดาว่า 'กรวยสน' ในความพยายามครั้งที่สามทำให้ฉันประหลาดใจ! น่าประทับใจ
Peter Perháč

3
+1 - เกี่ยวข้องกับการเขียนโปรแกรมแน่นอนและเป็นคำถามที่ดี
Adam Davis

@JeffAtwood คุณพยายามเชื่อมโยงไปยังบทความใด
antony.trupe

คำตอบ:


55

คุณสามารถคิดว่าเป็น Binary Search Algorithm ในการทำซ้ำแต่ละครั้งเราจะถามคำถามซึ่งควรกำจัดตัวเลือกคำที่เป็นไปได้ประมาณครึ่งหนึ่ง หากมีทั้งหมด N คำเราสามารถคาดหวังว่าจะได้รับคำตอบหลังจากคำถาม log2 (N)

ด้วยคำถาม 20 ข้อเราควรจะสามารถค้นหาคำได้อย่างเหมาะสมระหว่าง 2 ^ 20 = 1 ล้านคำ

วิธีการหนึ่งที่ง่ายต่อการกำจัดค่าผิดปกติ (ตอบผิด) จะอาจจะใช้สิ่งที่ต้องการRANSAC นี่หมายความว่าแทนที่จะคำนึงถึงคำถามทั้งหมดที่มีคำตอบคุณสุ่มเลือกชุดย่อยที่เล็กกว่าซึ่งเพียงพอที่จะให้คำตอบเดียว ตอนนี้คุณทำซ้ำสองสามครั้งด้วยคำถามย่อยแบบสุ่มที่แตกต่างกันจนกว่าคุณจะเห็นว่าส่วนใหญ่แล้วคุณจะได้รับผลลัพธ์เดียวกัน แล้วคุณจะรู้ว่าคุณมีคำตอบที่ถูกต้อง

แน่นอนว่านี่เป็นเพียงวิธีเดียวในหลาย ๆ วิธีในการแก้ปัญหานี้


4
โปรแกรมง่ายๆนี้แสดงให้เห็นถึงสิ่งที่คุณกำลังพูดถึงค่อนข้างดี เมื่อคุณไปถึงที่นั่นคุณสามารถคลิกที่codeลิงค์เพื่อดู: openbookproject.net/py4fun/animal/animal.html
Noctis Skytower

AI ประเภทนั้นมีให้บริการหรือไม่? จะเกิดอะไรขึ้นถ้าฉันสามารถให้คำถามและคำตอบทั้งหมดแล้วปล่อยให้พบ
tggagne

แล้วเรียกอัลกอริทึมแบบนี้ว่าอะไร? มันมีชื่อ?
tggagne

25

แผนผังการตัดสินใจรองรับแอปพลิเคชันประเภทนี้โดยตรง ต้นไม้ตัดสินใจมักใช้ในปัญญาประดิษฐ์

ต้นไม้ตัดสินใจคือต้นไม้ไบนารีที่ถามคำถาม "ที่ดีที่สุด" ในแต่ละสาขาเพื่อแยกความแตกต่างระหว่างคอลเล็กชันที่แสดงโดยลูกทางซ้ายและขวา คำถามที่ดีที่สุดถูกกำหนดโดยอัลกอริทึมการเรียนรู้บางอย่างที่ผู้สร้างแอปพลิเคชันคำถาม 20 ข้อใช้ในการสร้างต้นไม้ จากนั้นตามที่ผู้โพสต์คนอื่น ๆ ชี้ให้เห็นต้นไม้ 20 ระดับที่ลึกจะช่วยให้คุณมีสิ่งต่างๆมากมาย

วิธีง่ายๆในการกำหนดคำถาม "ที่ดีที่สุด" ในแต่ละประเด็นคือการมองหาคุณสมบัติที่แบ่งคอลเล็กชันออกเป็นครึ่งหนึ่งเท่า ๆ กัน ด้วยวิธีนี้เมื่อคุณได้รับคำตอบว่าใช่ / ไม่ใช่สำหรับคำถามนั้นคุณจะกำจัดคอลเล็กชันประมาณครึ่งหนึ่งในแต่ละขั้นตอน ด้วยวิธีนี้คุณสามารถประมาณการค้นหาแบบไบนารี

Wikipedia ให้ตัวอย่างที่สมบูรณ์ยิ่งขึ้น:

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

และภูมิหลังทั่วไป:

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


2
+1 ฉันจะทราบว่านั่นเป็นหนึ่งในความคิดเห็นในบทความ Atwood
cgp

1
จริงอยู่แม้ว่าโปรแกรม BASIC Animal จะไม่มีอัลกอริธึมการฝึกอบรมเพื่อกำหนดว่าจะใช้คำถามใดและต้องใส่ต้นไม้ให้สูงเพียงใด ประสิทธิภาพด้วยโครงสร้างการตัดสินใจที่ได้รับการฝึกฝนควรจะดีกว่ามาก (ฉันเห็นด้วยกับผู้แสดงความคิดเห็นว่าคำถามที่ Atwood มีลักษณะคล้ายกับที่สร้างขึ้นโดยอัลกอริทึม Animal ดั้งเดิมไม่ใช่โดยเครือข่ายประสาท)
Nathan Shively-Sanders

24

ฉันแนะนำให้อ่านเกี่ยวกับเกมที่นี่: http://en.wikipedia.org/wiki/Twenty_Questions

โดยเฉพาะอย่างยิ่งในส่วนคอมพิวเตอร์:

เกมดังกล่าวแสดงให้เห็นว่าข้อมูล (ซึ่งวัดโดยสถิติเอนโทรปีของแชนนอน) ที่จำเป็นในการระบุวัตถุโดยพลการนั้นมีขนาดประมาณ 20 บิต เกมนี้มักใช้เป็นตัวอย่างเมื่อสอนผู้คนเกี่ยวกับทฤษฎีสารสนเทศ ในทางคณิตศาสตร์หากแต่ละคำถามมีโครงสร้างเพื่อกำจัดวัตถุครึ่งหนึ่งคำถาม 20 ข้อจะช่วยให้ผู้ถามแยกความแตกต่างระหว่าง 2 20หรือ 1,048,576 วิชา ดังนั้นกลยุทธ์ที่มีประสิทธิภาพที่สุดสำหรับ Twenty Questions คือการถามคำถามที่จะแบ่งความเป็นไปได้ที่เหลือออกเป็นครึ่ง ๆ กระบวนการนี้คล้ายคลึงกับอัลกอริธึมการค้นหาแบบทวิภาคในวิทยาการคอมพิวเตอร์


2
นั่นอธิบายได้บางส่วน แต่เมื่อคุณพิจารณาคำตอบที่ไม่ถูกต้องและความคลุมเครือทั่วไปดูเหมือนว่าจะไม่ตรงไปตรงมา
Daddy Warbox

1
หากคุณดูลิงก์คุณจะเห็นว่านี่ไม่ใช่คำถามใช่ / ไม่ใช่จริงๆที่สามารถแบ่งฟิลด์ได้ครึ่งหนึ่งในแต่ละครั้ง แม้ว่าคำตอบของคุณจะถูกต้องสำหรับคำถาม 20 ข้อ แต่ฉันคิดว่าคำตอบของ Shaun นั้นแม่นยำกว่าอัลกอริทึมการเรียนรู้เพื่อนบ้านที่ใกล้ที่สุดและการป้อนข้อมูลของผู้ใช้ที่เพียงพอช่วยให้ได้ผลลัพธ์ที่แม่นยำมาก
z -

อ๋อจริงอยู่พวกเขาคล้ายกัน แต่แน่นอนว่าเพื่อนบ้านที่ใกล้ที่สุดก็เข้าท่ากว่า
cgp

12

มันเรียกเก็บเงินตัวเองว่าเป็น "ตาข่ายประสาทบนอินเทอร์เน็ต" และในนั้นก็เป็นกุญแจสำคัญ มีแนวโน้มว่าจะจัดเก็บความน่าจะเป็นของคำถาม / คำตอบไว้ในเมทริกซ์สำรอง การใช้ความน่าจะเป็นเหล่านั้นสามารถใช้อัลกอริธึมแผนผังการตัดสินใจเพื่อสรุปว่าคำถามใดที่จะถามซึ่งจะทำให้คำถามถัดไปแคบลงได้ดีที่สุด เมื่อ จำกัด จำนวนคำตอบที่เป็นไปได้ให้แคบลงเหลือไม่กี่โหลหรือถ้าถึง 20 คำถามแล้วก็จะเริ่มอ่านสิ่งที่เป็นไปได้มากที่สุด

สิ่งที่น่าสนใจจริงๆของ 20q.net ก็คือไม่เหมือนกับโครงสร้างการตัดสินใจและอัลกอริทึมเครือข่ายประสาทเทียมส่วนใหญ่ที่ฉันรู้จัก 20q รองรับเมทริกซ์แบบกระจัดกระจายและการอัปเดตแบบเพิ่มหน่วย

แก้ไข: ปรากฎว่าคำตอบอยู่ในเน็ตตลอดเวลา โรบิน Burgener ประดิษฐ์อธิบายขั้นตอนวิธีการของเขาในรายละเอียดในของเขายื่น 2005 สิทธิบัตร


6

มันกำลังใช้อัลกอริทึมการเรียนรู้

k-NN เป็นตัวอย่างที่ดีของสิ่งเหล่านี้

Wikipedia: k-Nearest Neighbor Algorithm


4
อัลกอริทึมเพื่อนบ้านที่ใกล้ที่สุดเป็นทางเลือกที่ดีในกรณีนี้หรือไม่? ดูเหมือนว่าจะเป็นการให้อภัยกับคำตอบที่ผิดมากเกินไปและอาจจบลงด้วยมิติข้อมูลจำนวนมากซึ่งส่วนใหญ่ไม่มีข้อมูล (ฉันสมมติว่าใช้ระยะทางค้อนและหนึ่งมิติต่อคำถาม) โครงสร้างการตัดสินใจดูเหมือนจะเป็นธรรมชาติมากกว่า
Kylotan

1
ทฤษฎีการเรียนรู้เป็นคำตอบที่ถูกต้องไม่สำคัญว่าจะให้คำตอบที่ 'ถูกต้อง' น้อยลงเพราะมันขึ้นอยู่กับข้อผิดพลาดที่ทุกคนมักจะทำซึ่งทำให้เดาได้ดีขึ้น
Jonathan Plackett

วิธีนี้ช่วยระบุคำถามที่ดีที่สุดที่จะถามได้อย่างไร
Thomas Ahle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.