Як працюють 20 питань алгоритмів ШІ?


103

Прості онлайн-ігри з 20 питань, що працюють на моніторі.

Як вони так гадають?


Здається, це найкращі 20 питань, які я бачив досі. Інакше я б посилався на одну з інших.
Тато Warbox

1
Дуже добре. Хоча я думаю, що Акінатор здогадується набагато інтуїтивніше, ніж 20q.net. Мене цікавить, що робить це, зокрема, «розумним», так би мовити.
Тато Warbox

1
я не мав уявлення, що ця річ існує в Інтернеті. На моє здивування, він вгадав "соснову шишку" з третьої спроби! Вражає
Пітер Перхач

3
+1 - безумовно, пов'язане з програмуванням, і гарне запитання.
Адам Девіс

@JeffAtwood, до якої статті ви намагалися посилання?
antony.trupe

Відповіді:


55

Ви можете думати про це як алгоритм бінарного пошуку. Під час кожної ітерації ми ставимо запитання, яке повинно усунути приблизно половину можливих варіантів вибору слів. Якщо є всього N слів, то ми можемо очікувати отримання відповіді після запитання log2 (N).

Маючи 20 запитань, ми повинні оптимально вміти знаходити слово серед 2 ^ 20 = 1 мільйон слів.

Одним із простих способів усунути людей, що не мають права (неправильні відповіді) було б, ймовірно, використовувати щось на зразок RANSAC . Це означатиме, що замість того, щоб брати до уваги всі відповіді на запитання, ви випадково вибираєте меншу підмножину, що достатньо, щоб дати вам одну відповідь. Тепер ви повторюєте, що кілька разів з різним випадковим набором питань, поки не побачите, що більшу частину часу ви отримуєте однаковий результат. то ви знаєте, що маєте правильну відповідь.

Звичайно, це лише один із способів вирішення цієї проблеми.


4
Ця проста програма досить добре демонструє те, про що ви говорите. Як тільки ви потрапите туди, ви можете натиснути на codeпосилання, щоб побачити його: openbookproject.net/py4fun/animal/animal.html
Noctis Skytower

Чи доступний такий вид AI як послуга? Що робити, якщо я можу надати всі запитання та відповіді і дозволити їх знайти?
tggagne

А як ви називаєте цей вид алгоритму? Чи має це ім’я?
tggagne

25

Дерево рішень підтримує подібний додаток безпосередньо. Дерева рішень зазвичай використовують у штучному інтелекті.

Дерево рішень - це двійкове дерево, яке задає «найкраще» питання на кожній гілці, щоб розрізняти колекції, представлені його лівими та правими дітьми. Найкраще запитання визначається деяким алгоритмом навчання, який творці програми з 20 питань використовують для побудови дерева. Потім, як зазначають інші афіші, дерево глибиною 20 рівнів дає вам мільйон речей.

Простий спосіб визначення "найкращого" питання в кожному пункті - пошук властивості, яка найбільш рівномірно розділяє колекцію навпіл. Таким чином, коли ви отримаєте відповідь «так / ні» на це питання, ви позбудетесь приблизно половини колекції на кожному кроці. Таким чином можна наблизити двійковий пошук.

Вікіпедія дає більш повний приклад:

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

І деякі загальні відомості:

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


2
+1, я зазначу, що це був один із коментарів у статті Етвуда.
cgp

1
Правда, хоча програма BASIC Animal не має алгоритму навчання, який би визначав, які питання використовувати та як високо в дереві, щоб їх поставити. Продуктивність з навченим деревом рішень повинна бути набагато кращою. (Я погоджуюся з коментатором, що питання Етвуда виглядають дуже схоже на те, що вони були породжені оригінальним алгоритмом Animal, а не нейронною мережею.)
Nathan Shively-Sanders

24

Рекомендую прочитати про гру тут: http://en.wikipedia.org/wiki/Twenty_Questions

Зокрема, розділ "Комп'ютери":

У грі передбачено, що інформація (вимірювана статистикою ентропії Шеннона), необхідна для ідентифікації довільного об'єкта, становить приблизно 20 біт. Гра часто використовується як приклад при навчанні людей теорії інформації. Математично, якщо кожне запитання побудовано таким чином, щоб ліквідувати половину об'єктів, 20 запитань дозволять запитувачу розрізняти 2 20 або 1048,576 предметів. Відповідно, найефективніша стратегія для двадцяти питань - це задавати питання, які розбиватимуть поле інших можливостей приблизно навпіл щоразу. Процес аналогічний алгоритму двійкового пошуку в інформатиці.


2
Це пояснює деякі з них. Але якщо врахувати невірні відповіді та загальну неоднозначність, це все ще здається не зовсім простим.
Тато Warbox

1
Якщо ви подивилися на посилання, ви побачите, що це насправді не питання / так, яке може розділити поле вдвічі. Хоча ваша відповідь правильна на 20 запитань, я вважаю, що відповідь Шауна більш точна, простий алгоритм навчання найближчого сусіда та достатня кількість користувачів дозволяє отримати дуже точні результати.
z -

Ах, правда, вони схожі, але, безумовно, найближчий сусід має більше сенсу.
cgp

12

Він рахується як "нейронна мережа в Інтернеті", і в цьому лежить ключ. Ймовірно, зберігається ймовірність питання / відповіді у запасній матриці. Використовуючи ці ймовірності, він може використовувати алгоритм дерева рішень, щоб визначити, яке питання задати, що найкраще звузить наступне питання. Як тільки воно скоротить кількість можливих відповідей на кілька десятків, або якщо до нього вже досягнуто 20 питань, то він починає зчитувати найімовірніше.

Дійсно інтригуючий аспект 20q.net полягає в тому, що на відміну від більшості алгоритмів дерева рішень та нейронних мереж, про які я знаю, 20q підтримує розріджену матрицю та додаткові оновлення.

Редагувати: Виявляється, відповідь була весь час у мережі. Робін Бургенер, винахідник, детально описав свій алгоритм під час подання патенту 2005 року .


6

Він використовує алгоритм навчання.

k-NN - хороший приклад одного з них.

Вікіпедія: k-Найближчий сусідський алгоритм


4
Чи хороший вибір алгоритму найближчого сусіда в цьому випадку? Здавалося б, було б надто пробачити неправильні відповіді, і це могло б закінчитися величезною кількістю вимірів, про багато з яких немає даних. (Я припускаю використання дистанції забивання та один вимір на запитання.) Дерево рішень здається більш природним.
Килотан

1
Теорія навчання є правильною відповіддю - неважливо, що вона дає менш "точні" відповіді, оскільки вона грунтується на помилках, які всі мають схильність, що насправді полегшує здогадки.
Джонатан Плакетт

То як це допомагає визначити найкраще запитання?
Томас Ейл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.