в чем суть теста тьюринга
Вся правда о тесте Тьюринга
Когда боты смогут говорить с людьми на равных, это станет важной вехой для ИИ, но не таким уж значительным моментом, как его рисуют научные фантасты. Филлип Болл с BBC провел исследование сильных и слабых сторон противоречивого теста Тьюринга. Алан Тьюринг сделал множество предсказаний на тему искусственного интеллекта, но одно из них может показаться знакомым для тех, кто слышал предупреждения Стивена Хокинга или Элона Маска на тему угрозы ИИ в 2015 году. «На каком-то этапе… мы должны ожидать, что машины перехватят контроль», — писал Тьюринг в 1951 году.
При этом он не только был настроен оптимистично по поводу перспектив, но и, возможно, наслаждался ими: его друг Робин Ганди вспоминал, что когда Тьюринг читал некоторые пассажи в своей основополагающей работе «Тест Тьюринга», он «всегда улыбался, иногда хихикал». Как минимум это дает нам повод усомниться в грустном изображении Тьюринга в биографическом фильме 2014 года «Игра в имитацию».
Тьюринг повлиял на то, как мы видим ИИ — тест Тьюринга часто приводят в качестве важного порога, который должен преодолеть искусственный интеллект на пути к истинному интеллекту. Если машинный интеллект сможет обмануть человека в процессе разговора, предположил Тьюринг, это будет очень важный момент.
Кроме того, на тест Тьюринга часто ссылались в изображениях роботов и искусственной жизни в популярной культуре — из последних можно припомнить «Из машины» Алекса Гарленда. Чаще всего, эти литературные представления показывали тест Тьюринга неверно, превращая его в чистую меру того, может ли робот превзойти человека. Оригинальный тест Тьюринга предназначался не для этого, а скорее для принятия решения, можно ли посчитать, что машина думает в манере, неотличимой от человеческой, — и это, как говорил сам Тьюринг, зависит от того, какие вопросы вы задаете.
Возьмем, к примеру, игры. Чтобы соперничать с человеческими когнитивными возможностями или превзойти их в чем-то более сложном, чем простой перебор цифр, Тьюринг предположил, что машина может начать с шахмат — игры, которая ассоциируется со стратегическим мышлением. После победы Deep Blue над чемпионом мира по шахматам Гарри Каспаровым в 1997 году, мы явно пересекли этот порог. Теперь у нас есть алгоритмы, которые чуть ли не всесильны (в долгосрочной перспективе) при игре в покер.
А как насчет чего-то более творческого и невыразимого, вроде музыки? Машины и здесь могут нас надурить. Уже существует музыкальный компьютер lamus, который производит настолько сложные работы, что они достойны внимания профессиональных музыкантов. Разработчик lamus Франциско Вико из Университета Малаги и его коллеги провели тест Тьюринга, попросив 250 субъектов — половина из которых была представлена профессиональными музыкантами — прослушать одну из композиций «ламуса» и музыку похожего стиля, написанную людьми, и решить, кто есть кто. «Произведения компьютера вызывали те же чувства и эмоции, что и написанные людьми, опрашиваемые не могли их различить, — говорит Вико. — Похожие результаты мы могли получить, подбросив монетку».
Некоторые утверждают, что компьютерная поэзия тоже прошла тест, хотя с оговоркой, мол, судьи попались не проницательные. Вдумайтесь в строку: «О, сладкий запах твой, алмазная архитектура».
Есть еще «сенсорный тест Тьюринга». Сам Тьюринг утверждал, что если мы когда-нибудь обнаружим материал, который может идеально имитировать человеческую кожу, едва ли мы будем пытаться сделать машину человечней, наращивая ей искусственное мясо. Тем не менее робот Ава в фильме «Из машины» показал, что это целесообразно, так как такая машина идеально вольется в человеческое общество.
Аве точно понравится, но некоторые исследователи роботов считают, что существуют весьма веские этические причины оставлять зазор между людьми и роботами.
Несколько более прозаической причиной необходимости разработки новых вариаций теста Тьюринга может быть задача не обмануть человека, а просто определить возможности машины. Ученый из области информатики Стюарт Геман из Брауновского университета в Провиденсе, штат Род-Айленд, и сотрудники Университета Джона Хопкинса в Балтиморе недавно описали «визуальный тест Тьюринга» для системы компьютерного зрения, которая научилась извлекать осмысленные отношения и тезисы из сцены, как это делаем мы, а не просто идентифицировать отдельные объекты. Такая способность станет чрезвычайно важной в свете развития систем шпионажа и биометрического сканирования.
Что касается оригинального теста Тьюринга, его будущее, вероятно, будет в Интернете. Онлайн-игроки уже иногда сомневаются в том, соперничают они с человеком или с игровым ботом — а некоторые вообще предпочитают играть с ботами. Некоторые общаются с ботами в чатах.
В общем, хотя машины уже способны на многое, до изящной реализации знаменитого теста им еще придется потрудиться.
Что на самом деле проверяет Тест Тьюринга
Некоторое время назад я предложил сыграть в Тест Тьюринга с моим ботом Мишей. Кто попробовал, тот знает, что игрок-робот определяется элементарно. Кто не пробовал, может прочитать об этом в первом же комментарии под той статьей.
Теперь настал момент устроить разбор полетов, рассказать об устройстве бота и сделать выводы.
Правила игры
Правила игры были перечислены в предыдущей статье, повторю здесь, чтобы вам и мне не бегать по ссылкам.
С момента запуска до момента написания статьи было сыграно 256 игр (немного странно, но факт).
Из них закончились с явным результатом, то есть обе стороны сыграли до конца очередного тура (больше одного тура никто не играл) и судья принял решение — 115 игр
В итоге робот правильно определялся в (74-15)/115 = 51% игр, а робота приняли за человека в 11/115 = 9.5% игр, то есть можно уверенно сказать, что Миша-бот тест не прошел.
Что под капотом
Бот написан на Python и по большому счету состоит из трех модулей:
На переходах между состояниями бот передает вопросы судьи к игроку, ответы от игрока судье. Передается только по одному сообщению и бот становится в следующее состояние, поэтому если кто пытался спросить или ответить двумя, видел, что бот это не позволяет делать.
Когда бот получает ответ от робота, он передает ее не сразу, а с задержкой времени — это не сразу появилось, я ее добавил по замечанию galqiwi, спасибо.
Каждое изменение состояния сохраняется в БД SQLite, на случай непредвиденных ситуаций — пропадания электросети, перезагрузки операционки или попросту хозяину бота (мне, то бишь) захотелось остановить его и что-то переделать. При новом запуске бот загружает из БД сохраненные игры, и игра продолжается.
Далее, есть две очереди ожидания — судей, ожидающих игроков, и игроков, ожидающих судей. Когда участник начинает новую игру, просматривается соответствующая очередь, есть ли ему партнёр. Если нет, то сам участник ставится в очередь.
В отдельном потоке живёт диспетчер роботов. Он периодически просматривает очередь судей, ожидающих игроков, и создаёт для них экземпляр робота. В нём специально сделана задержка, чтобы робот не всегда успевал перехватить судью и человек-игрок тоже имел шанс подключиться к игре. В диспетчере заложена возможность создавать различные варианты роботов, нужно просто зарегистрировать их классы. Но пока реализован всего один.
И, наконец, модуль робота. Но прежде, чем рассказать о внутренностях робота, расскажу о базе вопросов и ответов, с которой он работает.
Сначала я набил такой текстовый файл:
… ну и так далее. Затем отдельной утилиткой считал их в базу данных — таблица вопросов, таблица ответов, связь между ними многие-ко-многим. Плюс табличка использованных слов с линками на вопросы. Причем слова сохранялись не в оригинальной форме, а в нормальной и с синонимами. Нормальная форма слова определялась по pymorphy2 от kmike, а синонимы к ней искались из словаря YARN, предварительно сконвертированного из XML в SQLite — словарь занял всего 22 мегабайта, а сколько удовольствия…
Метод поиска синонимов к нормальной форме слова:
Теперь собственно робот. Вообще от робота требуется реализация лишь одного метода
, то есть просто получение ответа на заданный вопрос. Если роботу надо хранить предыдущие вопросы и контекст, какие-то дополнительные действия, то он делает это сам. Поскольку на каждую игру создается свой экземпляр класса робота, то контексты из разных чатов не пересекаются.
Поиск нужного ответа мой робот делает в два этапа:
Как видите, робот не умеет «думать» над ответом, всё, что он может ответить — это одна из заготовок, подходящая или неподходящая для очередного вопроса. Вы скажете, что это фигня, а я скажу — читайте классиков.
«Словарь Вильяма Шекспира, по подсчёту исследователей, составляет 12000 слов. Словарь негра из людоедского племени «Мумбо-Юмбо» составляет 300 слов. Эллочка Щукина легко и свободно обходилась тридцатью.«
Правда, классики не упомянули, обладала ли Эллочка Щукина интеллектом, пусть даже искусственным. Наверное, и сами не были уверены.
Выбор персонажа
Как видите, простота алгоритма робота не позволяет ему поддерживать сложные диалоги, поэтому встал вопрос, какого человека, точнее персонажа, сможет имитировать робот.
Нужен был персонаж, который может отвечать уклончиво, путаться в ответах, не стесняется повторяться. Но, с другой стороны, который был бы похож на человека. Так как я не обеспечил робота какими-либо книжными знаниями и не снабдил его возможностью искать в интернете, то его персонаж не мог быть взрослым образованным человеком. Его область знаний должна была ограничиваться минимумом, только тем, что он сам мог видеть и понять.
Было соблазнительно выбрать Людоедку Эллочку — а что, минимум словарного и фразеологического запаса, любой заготовленный ответ годится практически на любой вопрос. Но это было не интересно, хотелось усложнить задачу.
Поэтому выбор пал на роль ребенка. Возраст у ребенка должен быть такой, чтобы позволять ему связно говорить, понимать — это где-то от двух-трех лет. Он должен знать какие-то базовые вещи, но еще плохо работать с абстракциями. Например, я не вкладывал в робот калькулятор, поэтому и робот в роли ребенка не сможет посчитать «один плюс два» — так что отпадает школьный возраст и близкий к нему. Так что я взял средний возраст в пять лет, когда дети достаточно самоуверенны, но толком еще ничего не знают.
Однако, выбрав для робота роль ребенка, я понимал, что следствием этого выбора будет необходимость, чтобы все игроки-люди так же играли роль маленького мальчика. Практика показала, что мало кто это всерьез воспринял, отвечали как хотели, только что телефонами не обменивались.
Железо
Осталось показать тот суперкомпьютер, на котором живет Миша-бот:
Это Raspberry Pi 3. На хвосте к нему висит SSD, прицеплен на всякий случай, если понадобится активная работа с базами данных, но в самом роботе не используется.
Собственно, это всё о роботе Мише.
Размышления о Тесте Тьюринга
За почти семьдесят лет с момента написания статьи Тесту Тьюринга нашли определение, что это бихевиористский подход, сравнительный анализ на основе поведения — поведение человека сравнивается с поведением машины. Оно, конечно, так, однако я хочу обратить внимание на другие аспекты, на которые Алан Тьюринг, похоже, не обратил внимания.
Итак, то, что мы называем Тестом Тьюринга, было описано Тьюрингом в статье «Может ли машина мыслить?» (первая публикация называлась «Computing Machinery and Intelligence») и названо автором «игрой в имитацию». Если исходить лишь из её названия, можно было полагать, что игроки действительно должны имитировать поведение друг друга — человек притворяется машиной, а машина человеком. Но по замыслу Тьюринга в игре лишь машина должна подражать человеку.
Цитата:
«Можно было бы заметить, что при «игре в имитацию» не исключена возможность того, что простое подражание поведению человека не окажется для машины наилучшей стратегией. Такой случай возможен, но я не думаю, чтобы он привел нас к чему-нибудь существенно новому. Во всяком случае никто не пытался исследовать теорию нашей игры в этом направлении, и мы будем считать, что наилучшая стратегия для машины состоит в том, чтобы давать ответы, которые в соответствующей обстановке дал бы человек.«
Человеку-игроку же Тьюринг отвел роль не активного участника, который может запутывать судью своими сознательно неправильными ответами, а лишь роль образца, контрольного примера, с которым задающий вопросы будет сравнивать ответы машины. От человека ожидается естественное поведение, типичное для человека.
Цитата:
«Если бы человек попытался притвориться машиной, то, очевидно, вид у него был бы весьма жалкий. Он сразу выдал бы себя медлительностью и неточностью при подсчетах.«
Замечу, что Тьюринг не говорит, что человек не должен имитировать машину. Хотя человек может, если хочет, имитировать машину, другого человека или инопланетянина, вообще заниматься чем угодно, даже игнорировать вопросы или задавать встречные, но цель игры — получить ответ на вопрос «может ли [данная] машина мыслить?», поэтому человек здесь лишь помогает задающему вопросы в достижении цели, а не препятствует ему.
Из ответов бота:
«2018-10-23 13:01:53,385 186 Player2Judge Стал бы человек вести себя как машина, чтобы обмануть другого человека?«
Подытожу — два игрока, машина и человек:
Лучшее качество машины
Разобравшись с правилами, следующим шагом предположим, что мы хотим построить мыслящую машину. Как она должна работать, точнее, как она должна проявлять свои мысленные способности?
Мы можем воспользоваться представлениями о мыслящей машине из кинофантастики. Подходит ли Джарвис из «Железного человека» под это определение? R2-D2 или C-3PO из «Звездных войн»? Дэвид из «A.I.»? Долорес Абернати из «Мира Дикого Запада»? Афина из «Земли будущего»? ВАЛЛ-И из одноименного мультфильма? Вроде про каждого из них интуитивно можно сказать, что это мыслящие машины, потому что они ведут себя осмысленно, и не похоже, что они действуют по какой-то относительно простой программе.
Теперь проведем мысленный эксперимент — зададимся вопросом, какая из перечисленных машин скорее всего пройдет Тест Тьюринга? По условиям игры для этого достаточно ответить на вопрос, какая из машин сможет сымитировать человека так, что по его ответам его нельзя будет отличить от настоящего человека.
Очевидно, сразу отпадут роботы R2-D2 и ВАЛЛ-И, как не умеющие разговаривать на человеческом языке, и их я предлагаю далее не рассматривать.
Также очевидно, что в претендентах на победу окажутся машины, специально сконструированные для такой имитации — из нашего списка это Долорес и Афина. Причем если Долорес (я имею в виду её в статусе «девы в беде» в начале первого сезона) сама считает себя человеком, то Афина, напротив, вполне чётко понимает, что она робот, но может исполнить, при необходимости, имитацию на достаточно высоком уровне.
Что же касается Джарвиса, C-3PO и Дэвида, то они тоже осознают, что они машины, и не имеют ни склонности, ни способности скрывать это от людей. Задающему вопросы не придется подлавливать их на каких-то каверзных вопросах, они и сами во всем признаются.
И вот к чему мы пришли. Оказалось, что Тест Тьюринга пройдет машина, которая:
В защиту Тьюринга надо сказать, что перед ним не стояла задача оценки моральных качеств машины. Он искал даже не ответ, а способ получения ответа на вопрос «может ли машина мыслить?», и это в то время (1950), когда задача создания искусственного интеллекта казалась скорее фантастикой, чем теоретической наукой. На этом фоне «игра в имитацию» была значительным шагом вперёд в понимании, как оценивать искусственный интеллект.
Цитата:
«… нас интересует не то, будут ли все цифровые вычислительные машины хорошо играть в имитацию, и не то, будут ли хорошо играть в эту игру те вычислительные машины, которыми мы располагаем в настоящее время; вопрос заключается в том, существуют ли воображаемые вычислительные машины, которые могли бы играть хорошо.«
Тест Тьюринга
Итак сегодня мы поговорим о самом известном тесте для оценки говорящего бота — это тест Тьюринга.
Тест Тьюринга — эмпирический тест, идея которого была предложена Аланом Тьюрингом в статье «Вычислительные машины и разум» (англ. Computing Machinery and Intelligence), опубликованной в 1950 году в философском журнале «Mind». Тьюринг задался целью определить, может ли машина мыслить.
Стандартное звучание закона: «Если компьютер может работать так, что человек не в состоянии определить, с кем он общается — с другим человеком или с машиной, — считается, что он прошел тест Тьюринга»
Разумные, подобные человеку машины на протяжении многих десятилетий были одной из основных тем научно-фантастических произведений. С момента зарождения современной вычислительной техники умы людей занимал вопрос: можно ли построить машину, которая могла бы в чем-то заменить человека. Попыткой создать твердую эмпирическую почву для решения этого вопроса и стал тест, разработанный Аланом Тьюрингом.
Первый вариант теста, опубликованный в 1950 году, был несколько запутанным. Современная версия теста Тьюринга представляет собой следующее задание. Группа экспертов общается с неизвестным существом. Они не видят своего собеседника и могут общаться с ним только через какую-то изолирующую систему — например, клавиатуру. Им разрешается задавать собеседнику любые вопросы, вести разговор на любые темы. Если в конце эксперимента они не смогут сказать, общались ли они с человеком или с машиной, и если на самом деле они разговаривали с машиной, можно считать, что эта машина прошла тест Тьюринга.
Существуют, по крайней мере, три основных варианта теста Тьюринга, два из которых были предложны в статье «Вычислительные машины и разум», а третий вариант, по терминологии Саула Трейджера (Saul Traiger), является стандартной интерпретацией.
Наряду с тем, что существует определенная дискуссия, соответствует ли современная интерпретация тому, что описывал Тьюринг, либо она является результатом неверного толкования его работ, все три версии не считаются равносильными, их сильные и слабые стороны различаются.
Имитационная игра
Тьюринг, как мы уже знаем, описал простую игру для вечеринок, которая включает в себя минимум трех игроков. Игрок А — мужчина, игрок В — женщина и игрок С, который играет в качестве ведущего беседу, любого пола. По правилам игры С не видит ни А, ни В и может общаться с ними только посредством письменных сообщений. Задавая вопросы игрокам А и В, С пытается определить, кто из них — мужчина, а кто — женщина. Задачей игрока А является запутать игрока С, чтобы он сделал неправильный вывод. В то же время задачей игрока В является помочь игроку С вынести верное суждение.
В той версии, которую С. Г. Стеррет (S. G. Sterret) называет «Первоначальный тест на основе имитационной игры» (Original Imitation Game Test), Тьюринг предлагает, чтобы роль игрока А исполнял компьютер. Таким образом, задачей компьютера является притвориться женщиной, чтобы сбить с толку игрока С. Успешность выполнения подобной задачи оценивается на основе сравнения исходов игры, когда игрок А — компьютер, и исходов, когда игрок А — мужчина. Если, по словам Тьюринга, «ведущий беседу игрок после проведения игры [с участием компьютера] выносит неверное решение так же часто, как и после проведения игры с участием мужчины и женщины», то можно говорить о том, что компьютер разумен.
Второй вариант предложен Тьюрингом в той же статье. Как и в «Первоначальном тесте», роль игрока А исполняет компьютер. Различие заключается в том, что роль игрока В может исполнять как мужчина, так и женщина.
«Давайте рассмотрим конкретный компьютер. Верно ли то, что модифицируя этот компьютер с целью иметь достаточно места для хранения данных, увеличивая скорость его работы и задавая ему подходящую программу, можно сконструировать такой компьютер, чтобы он удовлетворительно выполнял роль игрока А в имитационной игре, в то время как роль игрока В выполняет мужчина?», — Тьюринг, 1950, стр. 442.
В этом варианте оба игрока А и В пытаются склонить ведущего к неверному решению.
Главной мыслью данной версии является то, что целью теста Тьюринга является ответ не на вопрос, может ли машина одурачить ведущего, а на вопрос, может ли машина имитировать человека или нет. Несмотря на то, что идут споры о том, подразумевался ли этот вариант Тьюрингом или нет, Стеррет считает, что этот вариант Тьюрингом подразумевался и, таким образом, совмещает второй вариант с третьим. В это же время группа оппонентов, включая Трейджера, так не считает. Но это все равно привело к тому, что можно назвать «стандартной интерпретацией». В этом варианте игрок А — компьютер, игрок В — человек любого пола. Задачей ведущего является теперь не определить кто из них мужчина и женщина, а кто из них компьютер, а кто — человек.
Для организации мероприятий по празднованию в 2012 году столетия со дня рождения Тьюринга создан специальный комитет, задачей которого является донести мысль Тьюринга о разумной машине, отраженную в таких голливудских фильмах, как «Бегущий по лезвию», до широкой публики, включая детей. В работе комитета участвуют: Кевин Ворвик, председатель, Хьюма Ша, координатор, Ян Бланд (Ian Bland), Крис Чапмэн (Chris Chapman), Марк Аллен (Marc Allen), Рори Данлоуп (Rory Dunlop), победители конкурса на получение премии Лёбнера Робби Гарне и Фред Робертс (Fred Roberts). Комитет работает при поддержке организации «Женщины в технике» (Women in Technology) и Daden Ltd.