Ответить
Ответить
Комментировать
0
Подписаться
3
6 ответов
Поделиться
АВТОР ВОПРОСА ОДОБРИЛ ЭТОТ ОТВЕТ

По сути, это принцип фильтрации. Есть куча объектов, то есть персонажей в данном случае, и у каждого есть некие параметры/база ответов.

Смысл в том, что система старается выбрать такой вопрос, который разделил бы всех персонажей пополам как при ответе "да", так и при ответе "нет". У половины персонажей ответ на данный вопрос - "да", у другой половины - "нет". Но это в идеале. На практике не получится (к тому же у некоторых персонажей не будет ответа на этот вопрос и т.п.), но должно к этому стремится. Нет смысла в начале игры задавать вопрос: ваш персонаж лысый? В смысле круто, конечно, если "да", персонаж лысый. 99% примерно отсеяться. Но если "нет", то всего 1% . Лучше задать вопрос: ваш персонаж мужского пола? И тут уже отсеется примерно половина+-10 процентов. Затем: "ваш персонаж вымышленный?".  Отсеивается 25-75 процентов. И так далее, нужно отсеивать как можно ближе к 50 процентам... И так с каждым разом персонажей становится все меньше и меньше и в конце-концов он угадывает.

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

По-моему, довольно средняя модерация там, если она есть... То есть много ошибок, мусора. Ведь базы ответов на вопросы о каждом персонаже по сути создается пользователями. Взять, скажем, блогера "Славного Друже Обломова". Кому-то пришла в голову задумать кота из его передачи. Он был первым. Естественно, Акинатор не угадал. Но пользователь пишет: я загадывал "Пепячника/кота Обломова". И система запоминает ответы о "Пепячнике". И так, когда кота загадают побольше людей Акинатор уже начнет отгадывать.

Но всё ломается, когда пользователи отвечают на вопросы о персонаже неправильно и в базу вносятся неверные данные.

47
0

Судя по описанию Акинатора, авторам разработки как раз интересен подход, при котором модерация сведена к минимуму, чтобы алгоритм сам делал выводы. Поэтому и много мусора и поэтому он "забывает". Потому что и вопросы, которые задаёт Акинатор - тоже были введены пользователями, а Акинатор не сумел догадаться, что почти такой же по смыслу вопрос уже есть в базе. И ему теперь потребуется время, чтобы понять, что эти вопросы дублируют друг-друга. Со временем он должен научиться задавать только один вопрос, а вопросы-дубликаты будет игнорировать.

0
Ответить

"всё ломается, когда пользователи отвечают на вопросы о персонаже неправильно и в базу вносятся неверные данные" - алгоритм учитывает, что пользователи могут давать неверные ответы. Поэтому - не ломается. Но сам факт того, что пользователи дают неверные ответы, приводит к тому, что Акинатор учится медленнее.

+2
Ответить

Так почему же он тупит, если ошибки действительно только замедляют совершенстование?

Вот я сейчас протестирую.

1 попытка. Ну несложный персонаж, Карл Граймс из Ходячих мертвецов (комикс и сериал).

Реален-нет

Человек-да

Мужчина-да.

В маске-нет (не очень опт

Герой мультфильма - нет

Видеоигра - нет

Герой книги - возможно/частично (комикс, думаю, можно считать)

Герой сериала - да

Есть моб телефон - нет

Ваш персонаж связан с аниме "Digimon" - нет (какого черта он уже спрашивает про аниме, если не мультфильм. Допустим, это был бы-таки мультфильм. Разве то, что нет мобильного телефона достаточно, чтобы начать угадывать по названиям? )

Герой Вселенной Готики 3 - нет (о боже, не видеоигра же!)

Имеет отношение в Игре престолов? - нет (ну, вопрос вроде не противоречив, но угадывать рано названия, на мой взгляд)

Ваш персонаж состоит в актерской группе? - Нет (Довльно странный вопрос. Не так много персонажей-актеров. Именно персонажей... Понятно что каждого героя кто-то играет)

Использует огнестрел - да (свернул на путь истинный, наконец-то)

Связан с зомби ? - да. Есть дети - нет. Старше 20 - нет. Секс был - нет (хотя по комиксу был, но большинство загадывают-таки киношного же) - и все, он угадал.

Захожу в отчет. Про герой книги система ожидает ответ Нет. Возможно, после этого он как-то подтупливает, но комикс - книга 100 проц, значит в базе уже не верный ответ, но при этом я на всякий случай отвечал "частично", чтобы он сильно не брал во внимание.

"Ваш персонаж связан с аниме "Digimon"?" - ответ ожидается "None". Видимо, первый раз так про него спрашивают.

Играем второй раз

Ваш персонаж - девушка? Нет

Ваш персонаж герой мультфильма? Нет

Ваш персонаж - герой сериала? Да

Ваш персонаж носит оружие? Да

Играл ли ваш персонаж в сериале "Сверхъестественное"? Нет

Сражался ли ваш герой с живыми мертвецами? Да

Ваш персонаж как-то связан с The Walking Dead? Да

Ваш персонаж любит цветы и деревья? Нет

У вашего персонажа есть дети? Нет

Имеет ли ваш персонаж отношение к The Walking Dead? Да Ваш персонаж моложе 18 лет? Да

И опять он начинает сразу угадывать сериал. Просто потому что часто так загадывают Сверхестественное? Ок, может это иногда и эффективно. Но вот Walking Dead к счастью, он не стал сразу называть, а взял что-то более широкое, ведь есть другие сериалы про зомби... Но к чему был вопрос про деревья (в сериале нет выраженного любителя цветов и деревьев) и зачем спрашивать второй раз про Walking Dead - я не знаю. Но в целом вторая попытка получше. Может быть, третья была бы еще лучше, не знаю.

И это - достаточно легкий персонаж, которого загадали почти 13к раз. Хотя загадай я любого другого персонажа подростка из сериала, он бы ошибся. Стоило-таки уточнить еще что-то. Он сын главгероя? У него один глаз? Да, скорее всего угадал потом бы (хотя часто замечал, что после неудачной попытки он много забывает и левые вопросы задает, но не всегда, конечно), но зачем вообще ошибаться лишний раз.

Где-то я, может, и придираюсь, но он всё-таки тупит :)

+3
Ответить
Ещё 9 комментариев

Где-то я, может, и придираюсь, но он всё-таки тупит :)

Да, с точки зрения обычного пользователя, он нередко тупит. Но это потому, что вы рассуждаете о нём, как об интеллекте, который понимает смысл вопросов, которые он задаёт. И который понимает взаимосвязь вопросов между собой.

В реальности, вполне возможно, Акинатор не имеет никакого представления о смысле своих вопросов. То есть, "персонаж - человек" и "интересуется ли он цветами и деревьями" - это для него ничего не значит, это просто хаос букв. Просто по своему опыту он выяснил, что первый вопрос - очень хороший, поэтому он им часто пользуется. А вот со вторым вопросом у него опыта нет. Но как получить опыт? Единственный вариант - начать вставлять вопрос куда попало и пытаться найти ему хорошее применение. Как это когда-то произошло со всеми другими вопросами (и теперь он ими нормально пользуется).

Я полагаю, что во второй игре, после того, как он в первый раз спросил о Walking Dead, он уже знал ответ (или думал, что знал), но вместо того, чтобы сразу отгадывать, он решил воспользоваться моментом (а это очень хороший момент) для того, чтобы проверить, как работают некоторые пока плохо изученные вопросы.

Поэтому он задал вопрос о цветах и деревьях (со временем он поймёт, что вопрос бесполезен, когда речь идёт о зомби), задал вопрос о детях (вероятно, он нащупал, что хорошо бы знать ответ на этот вопрос, когда речь идёт о персонажах Walking Dead или каких-то похожих темах и теперь он заполняет пробелы в знаниях, хочет узнать от вас, есть ли дети конкретно у этого персонажа) и задал - сюрприз! - ещё один вопрос про Walking Dead, но в другой формулировке. Почему? Потому что с его точки зрения это совершенно другой вопрос (он не может его прочесть). Он уже чувствует, что этот вопрос как-то очень тесно связан с Walking Dead. Но пока он ещё не понял до конца (или же понял, но перепроверяет), что это бесполезный вопрос-дубликат.

Если смотреть с такой позиции (я - программист и мне интересно читать о таких вещах), то алгоритм Акинатора выглядит очень сильным. Напомню общую идею. Люди ему =вообще= не помогают. Он общается с людьми и =сам= строит систему знаний, находит связи между "концепциями" (вопросами), сам исправляет ошибки. Это не так уж просто.

Ещё немного напоследок.

Walking Dead - есть такая компьютерная игра (в жанре интерактивного кино, если не ошибаюсь). Весьма известна (раз я о ней слышал и даже не раз). А есть много тех, которые знают об игре, но не знают о комиксе. Либо им не приходит в голову, что комикс - это книга.

Второй раз он быстро угадал Walking Dead во многом потому, что он осознаёт тенденцию, что персонажи часто повторяются. Он учитывает не только, сколько человек загадывают вопросы, но и время, когда они их загадывают, и даже кто именно загадывает. Более того, если вы будете загадывать персонажей из разных сериалов, он начнёт полагать, что и следующий персонаж будет из какого-то сериала. Держа в уме эту догадку можно сэкономить много вопросов. Поэтому вторая попытка - не в счёт. Это была не честная игра. Он знал.

Хотя загадай я любого другого персонажа подростка из сериала, он бы ошибся <

Но ведь не ошибся. Акинатор не рассуждает как человек. В его расчёте лежит чистая математика. Он решил, что гораздо вероятнее, что вы загадали этого персонажа.

Стоило-таки уточнить еще что-то. Он сын главгероя? У него один глаз? <

Во-первых, ему очень трудно научиться таким вопросам, потому что он не понимает сути задаваемых вопросов. К тому же он не смотрел Walking Dead. Откуда ему знать про один глаз? Только если задать такой вопрос случайно и попасть прямо в яблочко. Поэтому такие точные нацеленные вопросы сложно ожидать от Акинатора.

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

Анализ вопросов и ответов дал Акинатору основания считать, что вы загадали именно этого персонажа, допустим (я не знаю конкретных деталей его алгоритма, поэтому можно только гадать), с вероятностью 90%. Так просто получается математически. То ли люди любят этого персонажа и чаще его загадывают. То ли он сумел понизить шансы других персонажей, с помощью каких-то вопросов, на которые вы бы даже и не подумали. Ну, например, вы не знаете о том, что есть такая компьютерная игра. Возможно те, кто отвечают "нет" на вопрос о компьютерной игре, заметно чаще загадывают именно этого персонажа. Например, этот персонаж занимает первые роли в телесериале, но имеет лишь эпизодическую роль в компьютерной игре.

+5
Ответить

Хм, любопытно, о чем-то мог бы сам догадаться, если бы не был настроен слегка отрицательно, но так или иначе теперь смотрю немного на Акинатора, спасибо. Не все является тем, чем выглядит :) Надо понаблюдать еще за ним.

0
Ответить
  • по-другому теперь смотрю на Акинатора
0
Ответить

Забавно, он угадал в какой-то момент персонажа романа, прототипом которого является тот, кого я загадал, но самого человека не угадал (хоть потом дали возможность написать имя и выбрать из базы данных - человек был в базе).

0
Ответить

хоть потом дали возможность написать имя и выбрать из базы данных - человек был в базе <

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

+1
Ответить

Акинатор, это рекомендательный алгоритм на основе коллаборативная фильтрации. Это не самообучающаяся система.

0
Ответить

Это не самообучающаяся система.

Откуда же он знания берёт? Вы считаете, что их модераторы вводят? По миллионам загадываемых персонажей? Он обучается. Это заметно даже постороннему, пока с ним играешь.

0
Ответить

Он обучается

Тогда мы с вами по-разному понимаем термин «самообучающаяся». Акинатор не обучается, он выдает наиболее вероятный результат на основе статистики ответов. Чем больше в его базе ответов, тем полнее статистика, тем точнее результат.

Есть у него в базе 100 вопросов и 20 персонажей — он угадывает с вероятностью 0,7 (к примеру).
Ели в базе 10 000 вопросов и 50 персонажей — он угадывает с вероятностью 0,9.

Самообучение предполагает некий прогресс на конечном объеме данных. Тут без роста статистики ответов прогресса не будет.

0
Ответить

мы с вами по-разному понимаем термин «самообучающаяся»... Самообучение предполагает некий прогресс на конечном объеме данных. <

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

0
Ответить
Прокомментировать

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

4
-1
Прокомментировать

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

Александр Брянцевотвечает на ваши вопросы в своейПрямой линии
2
-2
Прокомментировать

Очень сильная экспертная система.

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

Фактически, каждый сам может сделать что-то подобное, используя бесплатное ПО, на пример "Малая экспертная система 2.0"

0
-1
Прокомментировать
Читать ещё 1 ответ
Ответить
Читайте также на Яндекс.Кью
Читайте также на Яндекс.Кью