Шайтан-коробочка: Как карманная игра из 90-х научилась читать мысли людей

от автора

90-е запомнились везде по разному: где-то они были лихие, где-то благословенные. Но для ИИ это десятилетие было настоящим ренессансом. 

Что поделать, закон Мура в действии: оперативка резко поумнела, процессоры стали быстрее истребителя, а еще алгоритмические прорывы случались один за другим.

Но среди всего этого великолепия особенно выделялся один странный, безымянный алгоритм, который долгое время оставался загадкой для посторонних. Никто не знал откуда он взялся, как и кем был натренирован, хотя при этом он умел всего лишь одну простую вещь: читать чужие мысли.

Mind Games: Как все начиналось

На дворе 1988 год, лето в канадской Оттаве бьет все мыслимые рекорды: 32°C  в тени! И пока у большинства оттовчан и оттовчанок плавились мозги от аномального зноя, у небольшой кучки их земляков такой же эффект в черепной коробке наблюдался от немного другого явления.

Пару дней назад несколько ребят-программистов получили на руки флоппи-дискеты — тогдашний суррогат интернета — от своего приятеля Роба Бургенера с лаконичным пояснением: “Там игра внутри. Попробуйте. Сам сделал.

Вероятно кого-то ждало разочарование: на дискете не было ничего похожего на яростного Донки Конга, красочную Bard’s Tale или хотя бы какой-нибудь около-спектрумовской стрелялки в космосе. Вместо этого перед очами тест-добровольцев предстало неброское диалоговое окно:

Привет. Я умею читать мысли. Выбери и загадай какой-нибудь предмет: Животное, Растение, Миниерал или Другое.

Как только игрок повиновался, выбрав категорию, странная игрушка сразу переходила к наводящим вопросам, которые звучали довольно абстрактно и вводили в еще большее недоумение: “Оно живое?”, “Оно двигается?”, “Оно пахнет?”

Примерная реконструкция диалогового окна 20Q. Восьмидесятые такие восьмидесятые.

Примерная реконструкция диалогового окна 20Q. Восьмидесятые такие восьмидесятые.

На отдельно взятый допрос бюджет игры был ограничен всего 20 вопросами. И если по истечении последнего вопроса она не могла угадать предмет, ей засчитывалось поражение. Но проблема в том, что где-то в половине случаев она безошибочно приходила к правильному ответу, вероятно, пробуждая суеверный страх в своих технически подкованных тестировщиках.

Казалось бы, чего уж там, половина ответов правильные — мат. вероятность близкая к счастливой лотерейной случайности. Но нет, здесь все работало несколько иначе. Потому что игрок мог загадать абсолютно любой предмет из тех, что только существуют на белом свете в этих четырех категориях.

После выходных друзья-товарищи облепили Бургенера с расспросами, желая постигнуть энигму безымянной дискетной игры, но тот лишь отвечал загадочной улыбкой Калиостро и дежурной репликой: “A good magician never reveals his tricks…

10 миллионов синапсов 

Игру звали 20Q. И в начале, в своем младенчестве, она еще не успела овладеть телепатией, а потому половина допросов ей просто не дались. 

В ее “мозгах” находились 5-10 миллионов синаптических связей, которые сплетались в нейро-образные ноды-узлы. По вычислительной мощности это близко к насекомому, например безхоботковому звонцу. Но количество синаптических цепочек в нашем мозге гораздо больше, как же ей тогда удавалось проникать в мысли своего человеческого визави?

Экран “game over”.

Экран “game over”.

В начале 20Q еще не успела столкнуться с паттернами нашего мышления и хорошенько изучить как работают логические и ассоциативные цепочки в голове у человека. Но каждый раз, когда кто-то запускал ее, он умнела по чуть-чуть, корректируя свои веса. Это позволяло ей лучше ориентироваться в каталоге из 10 000 объектов, внесенных в память.

В ее условном “детстве” 20Q часто ошибалась, как и любой ребенок. Но стоило ей услышать правильный ответ, как она запомнила его, соотносила с ответами игрока на наводящие вопросы и таким образом расширяла свой кругозор. Это помогало ей усвоить дескриптивные характеристики предметов, а также их логическую связь гораздо лучше.

Чтобы 20Q достигла окончтальеного триумфа, ей нужно было больше интеракций с живыми людьми — оставалось сделать веб-версию, куда бы приходили тысячи желающих ежедневно. Бургенен сделает это в 1994 и это даст сверхзвуковой буст интеллекту его игры-угадайки: точность ответов достигнет минимум 80%. (А при 25 вопросах 98%).

Архитектура дьявольской коробочки

What year is 20Q game from? : r/nostalgia

Живой девайс прямиком из нулевых, откопанный кем-то на Реддите.

Вообще идея игр в жанре “угадайка” не нова и они появились еще до Бургенена. Но их ахиллесовой пятой была экспертная система знания. Это значит, что они следовали жестким, зафиксированным правилам, не могли обучаться на лету и моментально уходили в штопор, допустив малейшую ошибку.

Бургенен, который кстати был самоучкой в машинном обучении и программировании, быстро увидел потенциал нейронных структур, умевших адаптироваться и улучшать свою результативность без постоянного вмешательства человека.

Он придумал довольно остроумное решение: внедрить в систему игры архитектуру двусторонней матрицы. Если по полочкам, то выглядело это вот так:

  • Все знания доступные игре структурировано хранились в матрице «Объекты × Вопросы».

  • Каждая ячейка в матрице содержит вес связи в числовом выражении, показывающий, насколько ответ на вопрос согласуется с конкретным объектом.

  • Поскольку места для игры было немного, для экономии памяти каждый вес кодировался всего в 1 байте: 7 бит отвечали за силу связи, 1 бит — за знаки +/–.  

Матрица с приоритетами ответов, которая показывает как исходный, не стимулированный вопрос активирует поиск целевых объектов 

Каждому типу ответа присваивался числовой вес, что примерно выглядело как Да = +4, Нет = –4, Иногда = +2, Не знаю = 0. Как только поступал ответ от игрока, система временно корректировала веса ячеек: если ответ совпадал со знаком ячейки, то вес прибавляется. Если же нет, то вес вычитался.

Матричные таблицы для ранжирования объектов из базы данных, позволявших регулировать веса модели.

Что интересно, система не отбраковывала варианты сразу, а лишь меняла их приоритет. Это позволяло ей корректировать мышление, если игрок давал неточный или субъективный ответ на раннем этапе. 

Далее в игру вступило ранжирование вопросов, когда они оценивались системой по двум ведущим стратегиям:

  • Максимальный информационный выигрыш: Ищется вопрос, который лучше всего разделит оставшихся кандидатов из пула ответов. В идеале, для одной половины из каталога объектов должен остаться ответ “Да”, а для другой “Нет”. В итоге это поможет минимизировать “разницу маржи” между суммами положительных и отрицательных весов. 

  • Подтверждение лидирующего кандидата: Если один объект сильно опережает остальные, система выбирает ключевой вопрос, ответ на который максимально подтвердит или же опровергнет именно его.

Логическая цепочка, задающая последовательность вопросов на основе уже полученных ответов.

Кстати, 20Q умело сокращала пул возможных ответов с каждым вопросом, чтобы не дать игроку мухлевать. 

Даже если человек по какой-то причине некорректно отвечал на вопрос, игра все равно помнила одновременно все объекты из датабазы, а также полученные ответы, сопоставляя одно с другим. Дальше, почти методом дедукции она “подмечала”, где игрок мог просчитаться с ответом. Умышленно это было сделано или нет уже другой вопрос.  

В конце каждой сессии, 20Q проходила дополнительное обучение, если ей удавалось угадать заветное слово. Алгоритм быстро пробегался по всем заданным вопросам. Если ответ совпадал с условными ожиданиями модели, то вес связи усиливался, а если противоречил, то наоборот ослаблялся. 

Иногда бывало, что вероятностную связь между ними установить вообще не удавалось и тогда игра создавала новую связь с нуля, с учетом полученных ответов. Вот так каждый игрок невольно становился еще и ее тренером по совместительству.

Кстати, еще одна интересная особенность 20Q была в ее способности адаптировать веса связей для отдельных демографических групп. Например, если игрок загадал животное “свинья”, то в зависимости от региона на вопрос “Это едят?” ответ может быть разным. Следовательно, благоразумно было бы подготовить разные профили весов для разных групп игроков и уже по ходу пьесы выбрать самый подходящий.

Триумф нулевых

Автор шайтан-машинки собственной персоной.

Автор шайтан-машинки собственной персоной.

В 1994 году Бургенера внезапно уволят и он решит сосредоточить все силы на развитии 20Q. Наплыв игроков приведет к тому, что в 2003 игра будет заключена в физическую оболочку: тамагочи-образный кейс, который можно прикрепить к петельке на джинсах.

Она станет успехом, хотя и будет внушать некоторым игрокам трепет (а то и параноидальный страх), так как точность ее ответов приблизится к почти абсолютной. Еще бы: после 18 лет тренировки, 20Q уже не будет допускать детских ошибок своих первых дней, благодаря простой, но при этом гениальной архитектуре.

Сам автор считал в 2006 году, что принцип 20Q в какой-то момент может перерасти амплуа фриковатой игрушки. Идея задавать наводящие вопросы и обучаться на ответном фидбеке могла бы, например, получить применение в медицине:

“Доктор, у которого в сумке десяток-другой таких штук, заточенных под медицинский опросник, может раздать их физически здоровым людям, а они в свою очередь смогут отправиться в общественные места, чтобы провести триаж (то есть сортировку предварительных диагнозов по жалобам пациентов).”

Конечно, тогда никто еще никто не подозревал, что архитектура предварительно обученного трансформера покажет еще и не такие чудеса науки… 

Но в сравнении с ЧатомГПТ, 20Q была скромной и маленькой моделькой, при этом умевшей поражать воображение своим ясновидением ничуть не хуже, чем огромные модели поражают нас почти человеческим мышлением сегодня. Чего уж там, ее таланты и сейчас смотрятся невероятно.

Тот самый сайт, где все началось.

Гугл патент с техническими комментариями автора.

Аналоги игры можно скачать на Андроид и iOS по запросу Twenty questions.

  

ссылка на оригинал статьи https://habr.com/ru/articles/1034808/