Искусственная искусственность

21 декабрь, 2006 - 17:44Виктор Вейтман

В середине 60-х годов прошлого столетия будущее систем искусственного интеллекта рисовалось исключительно в розовых тонах. Казалось, пройдет пару лет, и интеллектуальные системы заменят на производстве человека, взяв на себя большинство рутинных операций. Популярным персонажем научно-фантастических романов стал робот, думающий, как человек. Однако появляться в реальном мире такие роботы не спешили...

Шли годы, из них складывались десятилетия, и жизнь постепенно остужала горячие головы. Сменились многие поколения аппаратных средств, объем доступных ресурсов увеличился на несколько порядков, но на состоянии интеллектуальных систем это почти не сказалось. Конечно, определенные успехи были: например, программные системы сейчас умеют практически безошибочно распознавать английскую речь и печатные символы, неплохо справляются с наборами формализованных признаков, но существует ряд задач, которые им не по плечу. Так, ни одна программа не может ответить, кто изображен на фотоснимке – мужчина или женщина, тогда как любой человек справляется с подобным заданием за доли секунды. Нередко автоматизированную систему не удается реализовать лишь из-за того, что трудно найти решение частной задачи, а «обойти» ее невозможно. Что ж, откладывать внедрение на долгий срок? Оказывается, выход есть.

Человек на службе у компьютера

Все давно привыкли, что задачу компьютеру ставит человек. Этим, каждый по-своему, занимаются пользователи и программисты. Но бывает и наоборот: интеллектуальная система способна использовать человека как «вспомогательный инструмент» для решения задач, которые самой ей не под силу. Работу по-прежнему выполняют двое: человек и компьютер, но теперь инициатива переходит к машине. Необычно? Скорее непривычно.

В прессе часто упоминается система Amazon Mechanical Turk, действующая уже более года. Такое странное название, конечно же, дано по аналогии со знаменитым «механическим турком», созданным в XVIII веке Вольфгангом Кемпеленом.

Механический турок

В 1769 г. венгерский изобретатель барон Вольфганг Кемпелен продемонстрировал автомат, способный играть в шахматы. Механизм был внешне оформлен в виде куклы в турецкой одежде (отсюда и название), перед которой стояла шахматная доска. Современным читателям, вооруженным знаниями XXI века, понятно, что механическое устройство играть в шахматы на может. Если для реализации функций мышления механическими средствами принципиальных запретов нет (применялись же когда-то в горном деле пневматические вычислители), то для того чтобы обеспечить визуальное восприятие ситуации на доске, обязательно нужны электронные устройства. И действительно, внутри подставки прятался квалифицированный шахматист, который и управлял движениями турка. Однако в далеком XVIII веке представление произвело сенсацию и с восторгом принималось публикой. Впоследствии подделка была разоблачена.

Первоначально система Mechanical Turk задумывалась следующим образом. Обращаясь к ней, пользователь (впрочем, правильнее сказать – наемный рабочий) решает крайне простую задачу и получает за это вознаграждение в несколько центов. (Почему первоначально? Увы, даже беглого просмотра списка заданий достаточно, чтобы понять: принципы, заложенные в систему, уже нарушены. Задачи становятся сложнее, и Mechanical Turk все больше приближается к обычному серверу удаленной работы.)

Сама возможность купли-продажи результатов базовой мыслительной деятельности привлекла к себе широкое внимание. В Сети можно найти весьма интересные материалы по этому вопросу. Мы же рассмотрим другой аспект Mechanical Turk. В этой системе (по крайней мере, по ее первоначальному замыслу) работодателем должна являться компьютерная программа, а исполнителем – человек. Для описания подобных систем Джефф Безос (Jeff Bezos) ввел специальный термин: искусственный искусственный интеллект (Artificial Artificial Intelligence – AAI). Тавтология здесь совершенно уместна, ведь результаты получаются вследствие привлечения к решению задачи естественного человеческого интеллекта. Компания Amazon публикует API, который может использовать каждый для того, чтобы оформить свой программный продукт в качестве работодателя для людей-исполнителей.

Можно лишь догадываться, в какой области находят применение приложения, готовые ожидать, пока найдется желающий решить поставленную задачу, и какие результаты они предоставляют своим пользователям (на этот раз настоящим – тем, по чьей инициативе они были запущены и работают). Это не так важно. (К тому же подобных приложений становится все меньше. Из формулировки большинства заданий видно, что в качестве работодателей выступают живые люди, которые, чтобы не нарушить формальные правила взаимодействия с системой, «прячутся» за простейшей программой.) Гораздо интереснее другое – как повлияет Mechanical Turk и другие службы аналогичного назначения на дальнейшее развитие искусственного интеллекта. Несомненно, подобные системы способны привлечь к себе программистов, желающих заработать, не прибегая к рутинной деятельности. Вместо того чтобы решать поставленные задачи, они станут работать над программами, реализующими простые функции, присущие на сегодняшний день только человеку. В итоге армия разработчиков интеллектуальных систем пополнится множеством энергичных, преимущественно молодых людей. Результат не может не сказаться. Количество обязательно перерастет в качество, и со временем распознавание на рисунке, собака это или кошка, станет для компьютерной программы такой же тривиальной задачей, как и вопрос о том, сколько будет дважды два.

Естественный отбор и вмешательство извне

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

Что такое генетические алгоритмы, пока знают немногие. В отличие от других направлений искусственного интеллекта (например, нейросетевых технологий), «генетический бум» пока не наступил. Помимо чрезвычайно высоких требований к объему ресурсов, есть и другие факторы, сдерживающие применение таких алгоритмов. Один из них связан с формированием целевой функции. Если для оптимизационных задач она очевидна (ищем максимум – предпочтительнее высокие значения, ищем минимум – низкие), то в других случаях ее трудно, а иногда и невозможно определить. Как, например, оценить, насколько гармонируют друг с другом выбранные цвета? А сделать вывод о том, какая из двух музыкальных фраз лучше? Ответ на подобные вопросы – тема отдельных исследований в области искусственного интеллекта. Надо ли говорить, что человек справляется с подобными проблемами достаточно легко?

Генетические алгоритмы

Есть задачи, для которых не существует алгоритмов решения, и создать таковые не представляется возможным. Но это не означает, что надо отказаться от попыток решить их. Имеется ряд способов, позволяющих справиться с неформализуемыми задачами; один из них носит название генетических алгоритмов. Любое решение, будь это значение функции, описание механизма или даже музыкальное произведение – всего лишь последовательность битов, иногда очень длинная. Сгенерировав несколько таких последовательностей (согласно терминологии, используемой в этой области, они называются особями), запускаем процесс их размножения. Для этого выбираются две родительские особи, например 010...11010 и 110...10101, в каждой из них определяется точка разрыва (пусть в данном конкретном случае она находится между вторым и третьим битом, считая с нулевого), и из полученных фрагментов собираются дочерние особи; в нашем примере это будут 010...11101 и 110...10010. Вполне возможно, что какая-то из дочерних особей окажется лучшим решением поставленной задачи, чем ее родители. Чтобы имитировать мутационные изменения, наблюдаемые в живой природе, значение одного из битов в произвольно выбранной особи периодически изменяется на обратное. Так формируются качества, отсутствующие в имеющихся особях. Еще один обязательный компонент генетических алгоритмов – целевая функция, с помощью которой можно сравнить две особи и сделать вывод о том, какая из них лучше. После сортировки списка особей по убыванию целевой функции наилучшее решение задачи автоматически оказывается первым. Если оно неприемлемо, процесс генерации особей следует повторить. Со временем «популяция» увеличивается, и для обработки списка не хватает ресурсов. Что делать? Приходится жертвовать теми решениями, которые признаны наихудшими. В виртуальном мире действует тот же закон, что и в реальном: выживает сильнейший.

Расширить круг задач, решаемых средствами генетических алгоритмов, позволяет технология IGA (Interactive Genetic Algorithms). Данный подход предполагает совместную работу компьютерной программы и человека. Первая генерирует новые решения, а второй оценивает их, т. е. выполняет роль внешнего вычислителя целевой функции. В результате резко расширяется сфера применения генетических алгоритмов – их удается использовать даже в таких «тонких» областях, как создание произведений искусства.

Роль человека в работе генетических алгоритмов не обязательно ограничивается критикой предлагаемых решений. Иногда различные виртуальные особи обладают качествами, которые целесообразно объединить. В процессе работы программа, вероятнее всего, сама и проделает это, но сколько придется ждать? Человек может «подтолкнуть» процесс, ускорив желаемое событие. Теперь уже в программе участвуют два человека: конструктор особей и критик, а ее роль в основном сводится к организации их взаимодействия, обеспечению интерфейса и учету полученных решений. Именно так работает HBGA (Human Based Genetic Algorithm). Конечно, быстродействие подобной системы (как, впрочем, и IGA) существенно ниже по сравнению с «чисто программным» решением, но недостаток скорости вычислений компенсируется их качеством.

AAI и spam

Мысль о привлечении человека к решению задач, с которыми не справляются программы, возникла не только у авторов Mechanical Turk, но и ... у спамеров.

Каждый, кто в последние годы регистрировался в популярных почтовых Web-системах, знает, что на одном из этапов этой процедуры приходится вводить в поле редактирования символы, отображаемые на картинке, расположенной рядом. Это вынужденный шаг, призванный запретить регистрацию для автоматических инструментов, применяемых спамерами. Простые задания по распознаванию цифр не вызывают никаких затруднений у пользователей, но программных средств, способных эффективно выполнять их, на сегодняшний день нет.

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

Для распознавания картинки привлекаются посетители некоего (достаточно популярного) сайта. «Входным билетом» становится работа по распознаванию символов на графическом изображении. Надо ли говорить, что именно оно только что было предложено почтовым сервером программе, пытающейся зарегистрироваться под видом человека? А чтобы не возиться с созданием и раскруткой ресурса и обеспечить гарантированный приток посетителей, его наполняют, к примеру, обычной порнографией. Поэтому любителям сетевой «клубнички» следует помнить, что они, вполне вероятно, способствуют рассылке спама, который наводнит их же почтовые ящики.

Новое – хорошо забытое старое

Итак, какой же принцип взаимодействия предпочтительнее? Кто должен выступать в роли «начальника» – человек или компьютер? А может, лучше работать на равных? Обратимся к признанному авторитету в области информационных систем.

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

«Вычислительные машины могут решать задачи, слишком сложные для человека. С другой стороны, человек запросто выполнит действия, которые не под силу компьютеру».

«Симбиотическое взаимодействие между человеком и компьютером позволит достичь результатов, которые невозможно переоценить. Естественно, чтобы такое взаимодействие стало реальностью, необходимо преодолеть трудности, связанные с различием в скорости работы и используемых языках».

Эти фразы взяты из статьи Дж. Ликлидера (J. Licklider) «Man-Computer Symbiosis», увидевшей свет ... в 1960 г. Еще тогда высказывались догадки о том, как следует организовать человеко-машинное взаимодействие для наиболее эффективного решения задач. Успехи в развитии искусственного интеллекта (пусть довольно скромные), достигнутые в 60-х годах, а главное, ожидание более впечатляющих результатов (которому не суждено было сбыться), оттеснили идею человеко-машинного симбиоза на второй план и заслонили ее перспективой полного и неограниченного владычества человека над вычислительными системами. Человеку раз и навсегда была отведена роль постановщика задач, а машине – участь беспрекословного исполнителя. Оказалось, зря. Сейчас, по прошествии почти полувека, приходится вспоминать предложения Ликлидера и других сторонников симбиотических систем. И свидетельством тому является не только Mechanical Turk, но и другие системы, в которых человек выполняет лишь функцию рядового компонента.