Прежде чем переходить к частным вещам, таким как идентификация данных или связь лексических единиц, рассмотрим системы с точки зрения макро-элементов. То есть, рассмотрим среду, в которой существует информация, данные и информационные процессы. Это необходимо для определения этимологии информации, определения общих правил её распространения и для получения обобщенного взгляда на информационные процессы.
Так же, как и в окружающем нас мире, в интеллектуальных системах можно выделить несколько принципов, которые влияют на взаимодействие систем на макро-уровне. Разумеется, можно не брать во внимание это общее представление, абстрагироваться от него. В таком случае мы упростим систему, и тогда она будет ограничена только поставленными перед ней задачами обработки данных, и не будет ориентироваться на коммуникацию с внешними системами. В таком случае внешние системы, и как частный случай этих систем – человек, должны будут подстраиваться под эту систему, которая в свою очередь дистанцируется от взаимодействия с другими системами. Такая система, очевидно, будет похожа на образец систем 60-х годов прошлого века. В частности, Норберт Винер в своей «Кибернетике» писал: «В идеальную вычислительную машину все данные надо вводить сразу же в начале работы, и затем до самого конца она должна по возможности быть свободна от человеческого вмешательства. Это значит, что машина должна получить в начале работы не только все числовые данные, но и все правила их соединения, в виде инструкций на любую ситуацию, которая может возникнуть в ходе вычислений.» [1]. Для любого современного пользователя программных систем этот подход выглядит более чем анахронично в силу своей чрезвычайной закрытости и отсутствия интерактивности.
Мы же рассматриваем систему, которая должна иметь возможность постоянно развиваться, и которая будет способна к универсальности в выполнении задач. Под универсальностью понимается их возможность встраиваться в общую экологическую систему своего существования (общество).
Именно универсальность в интеллектуальных системах является наиболее ценным свойством, она означает наибольшую гибкость системы, её способность, с одной стороны, улавливать, воспринимать, распознавать, усваивать внешние данные и, с другой стороны, формировать ответы, реакции, генерировать информацию и действия, которые вписываются в общепринятую структуру знаний. Общепринятая структура знаний – это система понятий, терминов, методов и теорий, принятых в обществе.
Как видно из определения, основными свойствами системы являются коммуникативные способности в социуме. Другими словами, рассматривается не какая-то расчетная функция, не интеллектуальный механизм, а способность коммуницировать в общей среде. В то же время, отдельный элемент системы, обладающий только коммуникативными свойствами, является вырожденным, поскольку не несет в себе никакой ценности, связанной с выборкой, хранением, структурированием и анализом информации. Однако «разум в себе», не имеющий достаточных коммуникативных качеств, также является вырожденной системой. Но и так же можно сказать, что невозможно поддерживать приемлемый уровень коммуникации без обработки информации. В частности, система не сможет ответить на вопросы к ней, если у неё не будет хранилища информации, системы выборок информации и т. п.
В качестве примера, газеты с объявлениями или доски объявлений можно рассматривать не более чем как обособленные коммуникативные системы. Однако и газеты рекламных объявлений, и другие способы коммуникации структурируют и формализуют информацию – через формат газеты, рубрики и разделы, формат объявлений.
Для рассмотрения «общества» интеллектуальных систем наилучшим образом подходит теория многоагентных систем (МАС, multi-agent system). Это система, которая образована несколькими взаимодействующими интеллектуальными агентами. Интеллектуальный агент – это некоторая сущность, наблюдающая за окружающей средой или действующая в ней. Такой агент может быть роботом, программной системой, человеком и пр. Коммуникативная часть является определяющей, однако раз мы исследуем компьютерные системы, большее внимание мы будем обращать на агентов как на программные системы.
Агенты разделяются на агентов с простым поведением, агенты с модельным поведением, целенаправленные агенты, практичные агенты, обучающиеся агенты и т. д.
В теории мультиагентных систем отдельно выделяются субагенты. Субагент – это часть агента, которая может быть выделена в специализированную подсистему. Так, существуют:
– временные субагенты для принятия оперативных решений,
– пространственные агенты для взаимодействия с реальным миром,
– обучающие агенты и т. д.
Субагенты могут быть различного назначения, и в большей степени они разделяются исходя из процессов и архитектуры самого агента.
Агенты в многоагентной системе должны иметь несколько важных характеристик:
– автономность,
– ограниченность представления. То есть, ни у одного агента нет представления обо всей системе,
– децентрализованность, то есть, в системе нет агентов, управляющей всей системой.
В многоагентной среде отдельные агенты имеют возможность получать и формировать информационные поля в виде сообщений между собой. Не обязательно, что все агенты являются равными по ролям, по правам, по возможностям, по зависимостям друг от друга, по доступности или открытости взаимодействия с другими агентами. Например, в многоагентной среде наравне с интеллектуальными агентами могут существовать агенты для обмена данными, такие как поисковые сервера, публичные хранилища для обмена данными и для получения данных.
В многоагентной среде на первый план выходит взаимодействие между агентами. И на второй план отходит реализация этих агентов. Главное, чтобы агенты поддерживали общепринятый протокол обмена информацией, а как устроены эти агенты внутри и из чего они состоят, по большому счету, не имеет значения.
Таким образом, агенты предстают перед нами в виде черного ящика. Мы знаем, что они общаются с нами, но не знаем, кто они такие, какие механизмы обработки данных лежат в их основе, какую информацию они хранят в себе.
Большое количество современных программ и отдельных обработок в программах представляется нам аналогичным образом. Они являются закрытыми: на их входе существует некоторое количество исходных данных, на выходе – некоторый результат. С развитием интерактивных программ, некоторые обработки в рамках программных систем становятся еще менее прозрачными для пользователя, поскольку ему не всегда понятно, какие данные системы являются исходными для обработки, куда сохраняется результат и почему получился именно такой результат. Например, при расчете остатка дней отпуска сотрудника в системе управления персоналом система может брать (или не брать) в расчет дату приема сотрудника, признак ненормированного рабочего дня, отпуска, взятые за свой счёт более 7 дней, отпуска по уходу за ребенком. Количество параметров столь велико, что нельзя быть уверенным, что процедура расчета полностью возьмет все из них, и корректно рассчитает количество дней права на отпуск. Результатом работы такой процедуры является остаток дней. Но система может их хранить в нескольких таблицах (например, по рабочим годам сотрудника и общее количество дней в целом). И нет никакой гарантии, что процедура расчета верно запишет результаты во все таблицы, и что данные в этих таблицах будут непротиворечивы. Поскольку данные хранятся во внутренних таблицах системы, проверить их простому пользователю практически невозможно (лишь используя специальные отчеты) так же, как и невозможно проверить правильность работы процедуры – от параметров до логики.
Тем не менее, принцип «черного ящика» хорош, если мы хотим абстрагироваться от существа обработок, и сосредоточиться на вопросах коммуникации между системами, либо на вопросах предоставления и получения некоторой информации. Этот принцип может быть полезен при отделении части процессов на уровень субагентов. При проектировании систем содержимое «черного ящика» обычно заменяется элементарным (простейшим) процессом или заглушкой.
Поскольку агенты определяются именно своими коммуникационными способностями, в этом контексте невозможно не упомянуть тест Тьюринга. Кроме того, в этой главе я хочу определиться со своим отношением к общему понятию искусственного интеллекта.
Основную идею общего понятия «искусственный интеллект» в 1950 году сформировал Алан Тьюринг, автоматически став его основоположником. В журнале Mind Тьюринг описал тест на интеллект. Тест основан на взаимодействии человека (следователя) и компьютера. Общение происходит в изолированных комнатах посредством компьютерного терминала. Следователь задает вопросы и получает ответы от своего собеседника. Следователь не знает, общается он с человеком или с компьютером. Смысл теста Тьюринга заключается в том, чтобы признать, что компьютер обладает интеллектом, если следователь не смог раскрыть компьютер в качестве собеседника.
Конечно, по прошествии почти 60 лет будет неправильно говорить о корректности замещения определения «разумности» определенным тестом. До сих пор ни одна машина не в состоянии пройти тест Тьюринга. Но нужно ли проходить этот тест?
Тест Тьюринга преследует цель выявления внутреннего разума компьютера. В то же время для смазывания разницы в человеко-машинной коммуникации был выбран метод общения посредством компьютерного терминала.
Между тем, проблема во взгляде на «машинный интеллект» всё-таки существует. Она заключается в том, что под влиянием этого теста «искусственный интеллект» становится идентичным понятию «эмуляция человека». Причём от машинного интеллекта требуется точного воспроизведения всех черт, присущих человеку, включая ошибки, неточности и неспособности, например, неспособность человека к быстрым и точным вычислениям.
Но ждем ли от искусственного интеллекта полной идентичности человеческим возможностям? Очевидно, нет. Но такая задача по построению полной аналогии машины и человека проходит лейтмотивом во множестве технологий искусственного интеллекта. Например, идея воспроизведения мозга дала старт разработке нейронных сетей. Желание «вырастить» идеальную саморазвивающуюся структуру породило эволюционные алгоритмы и игру «жизнь».
В то же время копирование внутренних механизмов, присущих человеку, и воспроизведение человеческих возможностей – вещи разные. Перцептрон, реакционный процессинг и другие механизмы помогают нам наилучшим образом реализовать определенные идеи и задачи, такие как распознавание образов. И напротив, полное повторение человека – бесперспективно, поскольку слепое копирование результата не несет ключевой ценности: человек лишь носитель, одна из реализаций интеллекта, к которому мы стремимся в программных системах.
Компьютер обладает собственными важными свойствами, которые делают его ценными. Это быстрота и точность расчетов, быстрота в поиске данных, надежность и точность (дискретность) логики в выполнении программных инструкций, возможность хранения большого числа хорошо структурированных данных.
Мышление человека существенно отличается от правил обработки данных компьютером. Он состоит в возможности принятия решений в условиях ограниченности информации, отсутствии четкой структурированности информации, динамическом построении операций. Да и, вообще говоря, можно ли сравнивать компьютер и человека? К компьютеру не могут быть применимы такие сложные понятия как чувственность, интуиция, мечты, фантазия, экспрессия и одухотворенность. Но от этого компьютер не делает хуже вычисления и выполнение программ. От этого мы не работаем с ним меньше. Так давайте рассматривать искусственный интеллект в компьютерной реализации не как конкурента или брата, а как средство.
Ставя задачу «искусственного интеллекта» перед компьютером, мы определяем те результаты, которые будут полезны для человека, поскольку на современной стадии развития программных технологий глупо стремиться воспринимать компьютер как брата по разуму. И, более того, это совершенно не нужно, поскольку компьютер остается средством для принятия решений, средством для хранения и быстрого поиска данных, средством для решения прикладных задач.
Периодически в области искусственного интеллекта мелькает еще одна крамольная идея. Звучит она примерно следующим образом: «Если воспроизвести человеческий мозг, то мы получим интеллект». К этому измышлению подстегивает Норберт Винер: «…кибернетика полагает, что строение машины или организма является показателем их способности выполнить задачу. … механическая ригидность насекомого ограничивает его интеллект, в то время как механическая гибкость человеческого существа обеспечивает его почти безграничное интеллектуальное развитие… Теоретически, если бы мы могли создать машину, механическая структура которой воспроизводила бы человеческую физиологию, то мы могли бы иметь машину, „интеллектуальные способности“ которой воспроизводили бы умственные способности людей.» [2]
Как будто интеллект – это результат химической реакции или суп, сваренный из точно выверенных ингредиентов по какому-то мифическому рецепту. К сожалению, немногого можно добиться способом слепого копирования и ожидания последующей синергии, а также перехода количества в качество. Нельзя надеяться на то, что созданная структура сама восполнит отсутствие представлений по целому пласту знаний и видения процесса, и сама начнет воспроизводство «разума». Чудес не будет. Одна из причин этого в том, что помимо воспроизведения механизмов, как минимум, эти механизмы необходимо наделить знаниями (врожденными или априорными рефлексами, инстинктами и пр.). Думаю, если рукотворно можно создать такой организм, этот организм будет схож с клоном самого человека. А нужен ли нам клон, к этому ли мы стремились, создавая такой механизм?
Позиционирование и правильное определение задач и подходов в каждой области – вот от чего зависит успех науки в отрасли знаний. До сих пор «искусственный интеллект» является чрезмерно размытой областью знаний. Сюда входит и распознавание образов, и интеллектуальные алгоритмы, к чему бы они ни прилагались, и рекурсивный поиск, и задачи распознавания языка.
В поиске методов, подходов и идей искусственного интеллекта, объектом исследований выступает человек: его форма мышления, его механизмы. Желание повторить человека – не самое лучшее желание, поскольку человек – это сложное, согласованное и гармонизированное создание. Каждая его составляющая является важной – слух, коммуникация, зрение, мышление, речь, органы движения. Ущемление одной небольшой функции может вести к потере полноценной деятельности человека. Потому идея создания подобия человека – это, пожалуй, профанация.
Другое дело, человек – прекрасное создание для анализа и воспроизведения его отдельных составляющих. В первую очередь, того, что отличает человека от другого рода организмов, а именно наличия разума.
Единый обобщающий тест на разум, который придумал Тьюринг, сомнителен как по своему назначению, так и по своей методике. При помощи этого теста Тьюринг хотел отойти от критерия «разумности», но что же измеряет этот тест? Он сличает человека и машину, или точнее – подтягивает машину к человеческим стандартам. Насколько такое сравнение корректно, и насколько такое сравнение полезно? Какой результат и какие выводы даст такое сравнение? Ясных ответов на эти вопросы попросту нет.
Кроме того, я не уверен, что все люди могут пройти тест Тьюринга. Эта неуверенность может посетить каждого, кто достаточно времени провел в чатах. Будь у человека на том «конце провода» сложности с вербализацией (выражением мыслей), со знанием языка общения, перцепцией (восприятием) – и мы, тестируя его по Тьюрингу, то есть, сомневаясь в том, что на другой стороне «провода» человек, можем поставить отрицательный результат. Тест пройден не будет. Можно сделать вывод, что тест Тьюринга – это не тест на разумность, это система распознания «свой – чужой». То есть, тест на то, соответствует ли собеседник понятиям и стандартам тестирующего.
Единственным выводом из этой непростой ситуации является отказ от понятия «разума» как цели, к которой должен стремиться искусственный интеллект. Не надо измерять разум как единое и неделимое целое, так же как не надо стремиться определить критерии разума, поскольку это эмпирическое понятие, состоящее из сотен характеристик.
Что же надо делать в действительности, если мы всё же желаем использовать машину как интеллектуальный механизм? Очевидно, выявить составляющие разума, которые имеют ценность, как для человека, так и для их отчуждения в сторону машинной реализации.
Таким образом, с точки зрения агентов нам вообще не важно, кто находится на «том конце провода». Основная задача реализации агентов заключается в том, чтобы агент, находящийся с нами в контакте, был адекватен относительно исполняемых им задач и коммуникации. Но критерий адекватности означает не тест на соответствие полноте тестирующего человека (как тест Тьюринга), а тест на необходимость и достаточность в коммуникации. Это подобно тому, как мы можем объясниться с иностранцами, порой языком жестов и междометий, но объясняя суть вещей, несмотря на то, что он, очевидно, не знает таких слов как «шумовка» или «противень» на нашем языке общения. А, возможно, таких слов попросту нет в его родном языке.
Поскольку агенты могут существовать в гетерогенной среде, основное требование предъявляется к потенциальной возможности коммуникации.
Многоагентная среда, прежде всего, предъявляет требования к коммуникативному уровню агентов. Однако часть агентов может никак не проявлять себя и заниматься исключительно сбором данных. Такой вид агентов является частным случаем. Например, это агенты, собирающие широковещательные сообщения – публичную информацию (сообщения, размещенные в публичных хранилищах), а также агенты-перехватчики частных сообщений. Примером агентов-молчунов являются индексирующие подсистемы поисковых систем.
Противоположностью «молчунам» являются «вещатели», которые не запрашивают, не принимают и не хранят внешнюю информацию, зато постоянно сообщают вовне некоторую информацию. Самым распространенным, элементарным и нужным агентом такого типа является агент-часы. Человек не может самостоятельно объективно и точно определить время, он может основываться только на своих ощущениях. Для получения данных о времени человек обращается к этому агенту. Компьютеры также синхронизируют собственное, не совсем точное время, с глобальными часами.