Нейросетевые агенты в интернете
СЕРГЕЙ ШУМСКИЙ

- Самое худшее случилось, - сказал сэр Дональд Акер, - когда в Массачусетском технологическом институте соединили входы с выходами.
С. Лем. "Не буду прислуживать"

Английской грамматикой в объеме Basic English первым овладел Proteus orator mirabilis, тогда как E.coli eloquentissima даже в 21 000 поколении делал, увы, грамматические ошибки.
С. Лем. "Эрунтика"


Нейрокомпьютинг вокруг нас

Представьте, уважаемый читатель, что однажды, листая свой любимый компьютерный журнал, вы встречаете на одной полосе сообщение, что распознавание речи с помощью нейронных сетей достигло небывалых высот, а несколькими страницами позже наталкиваетесь на пророчества Билла Гейтса, что скоро вообще 90% операционной системы будет занято распознаванием образов. [1] Неужели правда, спрашиваете вы себя, что с компьютерами вскоре можно будет общаться неформально - что-то вроде: "Покажи мне график развития рынка сетевых услуг в России за прошедший год". Искусственный интеллект? Слыхали неоднократно, и всякий раз обещания оказывались блефом. Проблема-то не простая, посложнее термояда будет.

Проходя мимо магазина, вы вдруг замечаете новый пылесос фирмы Samsung, в рекламе которого мелькнули все те же нейронные сети. М-да... что ж, и пылесосу, видно, не мешает быть чуточку интеллектуальнее. Так, скоро, глядишь, и все бытовые устройства поумнеют, обзаведясь какими-никакими, но все-таки мозгами. Может, это и есть естественный путь искусственного интеллекта? - размышляете вы по этому поводу. Не обязательно ведь сразу говорить, сначала неплохо было бы научиться что-то ощущать, различать элементарные ситуации и, постепенно обучаясь, адекватно на них реагировать. Все согласно эволюции: от простого - к сложному, от примитивной нервной системы из нескольких нейронов - до мозга. Видимо, искусственные нейросети развиваются именно как обучающиеся сенсоры? Недаром же их называют персептронами...

Вы правы, читатель, но не совсем. Конечно, потенциальный рынок нейрочипов огромен. В чем-то ситуация с ними аналогична появлению микропроцессоров в начале 70-х, когда те начинали свое победное шествие с простеньких микроконтроллеров. Однако нейросети способны изменить не только hardware, но и весь облик современного software. Более того, в силу гораздо меньшей инерционности, именно в программной среде мы и столкнемся в первую очередь с революционными изменениями, так или иначе связанными с нейронными сетями. C обучающимися нейросетевыми программами вы незаметно для себя сталкиваетесь чуть ли не ежедневно. Например, расплачиваясь по пластиковой карточке, когда ваши действия незаметно, на лету проверяются нейросетевой программой, обученной на десятках тысяч случаев несанкционированных транзакций. Или в Интернете, где вы подвергаетесь воздействию направленной рекламы, когда умные серверы подсовывают вам банеры в соответствии с тематикой просматриваемых страниц. Нажимая кнопочку "More like this" на портале InfoSeek или "Найти похожие документы" на российском Infoart.ru, вы получаете похожие по смыслу документы благодаря нейросетевым программам, обученным распознавать семантику текстов.

Кроме того, нейросетевые программы помогают считывать рукописные чеки и налоговые декларации, предсказывают рыночные курсы и улавливают изменения конъюнктуры, ставят диагнозы больным и вовсю используются военными. Но больше всего нас будет интересовать Интернет. Именно здесь ожидается очередная революция в информационных технологиях, сравнимая по масштабам с внедрением в массы персональных компьютеров, а может, и превосходящая это событие- и не в последнюю очередь благодаря искусственным нейронным сетям. Опять революция? Не верится? А зря. Попробуем разобраться по порядку. Что такое нейронные сети? Почему о них так много пишут в последнее время? Как они изменят и без того быстро меняющийся компьютерный мир? Как это повлияет на нашу с вами жизнь?
Две ветви компьютерной эволюции

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

- Концептуально они оформились в 30-40-х годах. Первая - в теоретической работе Тьюринга 1936 г., предложившего гипотетическую машину для формализации понятия вычислимой функции, и затем уже в практической плоскости - в так и не законченном отчете фон Неймана 1945 г. на 101 странице, обобщившего уроки создания первой ЭВМ ENIAC и предложившего методологию конструирования машин с запоминаемыми программами (ENIAC программировался штекерами). Фон Нейман, кстати, использовал не только идеи Тьюринга. Так, в качестве базовых элементов ЭВМ фон Нейман предложил модифицированные формальные нейроны (!) Мак-Каллока и Питтса - основателей нейросетевой архитектуры. В статье, опубликованной в 1943 г., они доказали, что сети из таких пороговых элементов способны решать тот же класс задач, что и машина Тьюринга.

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

- Одной из главных задач Лаборатории баллистических исследований Министерства обороны США был расчет баллистических траекторий и составление корректировочных таблиц. Каждая такая таблица содержала более 2 тысяч траекторий, и лаборатория не справлялась с объемом вычислений, несмотря на свой раздувшийся штат: около ста квалифицированных математиков, усиленных несколькими сотнями подсобных вычислителей, окончивших трехмесячные подготовительные курсы. Под давлением этих обстоятельств в 1943 г. армия заключила контракт с Высшим техническим училищем Пенсильванского университета на 400 тысяч долларов для создания первого электронного компьютера ENIAC. Руководили проектом Джон Мочли и Прес Экерт (последнему в день подписания контракта исполнилось 24 года). ENIAC был построен уже после войны. Он потреблял 130 кВт, содержал 18 тысяч ламп, работающих с тактовой частотой 100 кГц, и мог выполнять 300 операций умножения в секунду.

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

- Первые серийные коммерческие компьютеры IBM-650 появились в 1954 г. (за 15 лет их было продано 1,5 тысячи штук). В том же году был изобретен кремниевый транзистор. В 1961 г. появился его полевой аналог, используемый в микросхемах, а в 1962-м началось массовое производство микросхем. В 1970 г. фирма Intel выпустила свой первый микропроцессор, дав старт микропроцессорной революции 70-х. Всего через четыре года появился первый персональный компьютер Altair по весьма доступной цене 397 долларов, правда, еще в виде набора деталей, подобно тому, как тогда продавались комплекты для радиолюбителей. А в 1977-м появился уже полнофункциональный user-friendly Apple-2. В 1981 г. на рынок PC наконец вышли компьютерные гиганты в лице IBM. В 90-х годах типичный пользователь уже имеет на своем рабочем столе аналог суперкомпьютера Cray-1.

Что касается нейросетевой архитектуры, то, несмотря на многочисленные реверансы в сторону нейронных сетей со стороны классиков кибернетики, их влияние на промышленные разработки вплоть до недавнего времени было минимальным. Хотя в конце 50-х - начале 60-х с этим направлением связывали большие надежды, в основном благодаря Фрэнку Розенблатту, разработавшему первое обучаемое нейросетевое устройство для распознавания образов, персептрон (от английского perception - восприятие).

- Персептрон был впервые смоделирован в 1958 году, причем его обучение требовало около получаса машинного времени на одной из самых мощных в то время ЭВМ IBM-704. Аппаратный вариант - Mark I Perceptron - был построен в 1960 г. и предназначался для распознавания зрительных образов. Его рецепторное поле состояло из матрицы фотоприемников 20x20, и он успешно справлялся с решением ряда задач - мог, например, различать транспаранты некоторых букв.

Тогда же возникли первые коммерческие нейрокомпьютинговые компании. Энтузиазм того героического периода "бури и натиска" был так велик, что многие, увлекшись, предсказывали появление думающих машин в самом ближайшем будущем. Эти пророчества раздувались прессой до совсем уже неприличных масштабов, что, естественно, отталкивало серьезных ученых. В 1969 году бывший однокашник Розенблатта по Высшей научной школе в Бронксе Марвин Минский, сам в свое время отдавший дань конструированию нейрокомпьютеров, решил положить этому конец, выпустив вместе с южноафриканским математиком Пейпертом книгу "Персептроны". В этой роковой для нейрокомпьютинга книге была строго доказана принципиальная, как тогда казалось, ограниченность персептронов. Утверждалось, что им доступен лишь очень узкий круг задач. В действительности критика относилась лишь к персептрону с одним слоем обучающихся нейронов. Но для многослойных нейронных сетей алгоритм обучения, предложенный Розенблаттом, не годился. Холодный душ критики, умерив пыл энтузиастов, затормозил развитие нейрокомпьютинга на многие годы. Исследования в этом направлении были свернуты вплоть до 1983 года, когда они, наконец, получили финансирование от Агентства перспективных военных исследований США (DARPA). Этот факт стал сигналом к началу нового нейросетевого бума.

Интерес широкой научной общественности к нейросетям пробудился после теоретической работы физика Джона Хопфилда (1982 г.), предложившего модель ассоциативной памяти в нейронных ансамблях. Холфилд и его многочисленные последователи обогатили теорию нейросетей многими идеями из арсенала физики, такими как коллективные взаимодействия нейронов, энергия сети, температура обучения и т. д. Однако настоящий бум практического применения нейросетей начался после публикации в 1986 году Дэвидом Румельхартом с соавторами метода обучения многослойного персептрона, названного ими методом обратного распространения ошибки (error back-propagation). Ограничения персептронов, о которых писали Минский и Пейперт, оказались преодолимыми, а возможности вычислительной техники - достаточными для решения широкого круга прикладных задач. В 90-х годах производительность последовательных компьютеров возросла настолько, что это позволило моделировать с их помощью работу параллельных нейронных сетей с числом нейронов от нескольких сотен до десятков тысяч. Такие эмуляторы нейросетей способны решать многие интересные с практической точки зрения задачи. В свою очередь, нейросетевые программные комплексы станут тем носителем, который выведет на технологическую орбиту настоящее параллельное нейросетевое hardware.


Две парадигмы вычислений

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

Так, можно строго описать все возможные операции над относительно короткими символами. Значит, можно сделать устройство - процессор -, предсказуемым образом обрабатывающее любой поступивший на вход символ - команду или данные. Если теперь удастся свеТак, можно строго описать все возможные операции над относительно короткими символами. Значит, можно сделать устройство - процессор -, предсказуемым образом обрабатывающее любой поступивший на вход символ - команду или данные. Если теперь удастся свести сложную задачу к перечисленным базовым операциям такого процессора - написать алгоритм ее решения, - то можно поручить ее выполнение компьютеру, избавляясь тем самым от утомительной рутинной работы. Оказывается, что любой сколь угодно сложный алгоритм можно запрограммировать на элементарно простых процессорах. [2]

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

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

Чтобы вписать нейрокомпьютинг в общую картину эволюции вычислительных машин, рассмотрим эти две парадигмы в историческом контексте. Давно известен факт "встречной направленности" биологической и компьютерной эволюций. Человек сначала научается распознавать зрительные образы и двигаться, затем говорить, считать, и наконец, самое сложное, - приобретает способность логически мыслить абстрактными категориями. Компьютеры же, наоборот, сначала освоили логику и счет, потом научились играть в игры и лишь с большим трудом подходят к проблемам распознавания речи, обработки сенсорных образов и ориентации в пространстве. Чем объясняется такое различие?

Последовательная обработка символов

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

При тогдашней дороговизне hardware выбор последовательной архитектуры, принципы которой были сформулированы в знаменитом отчете фон Неймана 1945 года, был, пожалуй, единственно возможным. И этот выбор на несколько десятилетий определил основное занятие ЭВМ: решение формализованных задач. Разделение труда между компьютером и человеком закрепилось по формуле: "человек программирует алгоритмы - компьютер их исполняет".

Тем временем прогресс полупроводниковых интегральных технологий обеспечил несколько десятилетий экспоненциального роста производительности фон-неймановских компьютеров, в основном за счет увеличения тактовой частоты, и в меньшей степени - за счет использования параллелизма. Если тактовая частота растет обратно пропорционально размеру вентилей на чипе, то есть пропорционально корню квадратному числа элементов, то число входов-выходов - всего лишь как корень пятой степени. Этот факт отражен в эмпирическом законе Рента: число вентилей в процессоре пропорционально примерно 5-й степени от числа его входов-выходов (Д. Ферри, Л. Эйкерс, Э. Гринич, "Электроника ультрабольших интегральных схем", М.: "Мир", 1991). Поэтому кардинальное увеличение разрядности процессоров при сохранении существующих ныне схемотехнических принципов невозможно. Обработка действительно сложной - образной -информации должна базироваться на принципиально иных подходах. Поэтому-то мы и не имеем пока систем искусственного зрения, хоть как-то сопоставимых по своим возможностям с их природными прототипами.

Параллельная обработка образов

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

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

Но зададимся, наконец, вопросом: как именно работают нейрокомпьютеры? Устройство мозга слишком сложно. Искусственные нейросети проще - они "пародируют" работу мозга, как и положено любым научным моделям сложных систем. Главное, что объединяет мозг и нейрокомпьютеры, - нацеленность на обработку образов. Оставим в стороне биологические прототипы и сосредоточимся на базовых принципах распределенной обработки данных.

Коннекционизм

Отличительной чертой нейросетей является глобальность связей. Базовые элементы искусственных нейросетей - формальные нейроны - изначально нацелены на работу с векторной информацией. Каждый нейрон нейросети, как правило, связан со всеми нейронами предыдущего слоя обработки данных (см. рис.).

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

Каждый формальный нейрон производит простейшую операцию - взвешивает значения своих входов со своими же локально хранимыми синаптическими весами и производит над их суммой нелинейное преобразование:

Нелинейность выходной функции активации принципиальна. Если бы нейроны были линейными элементами, то любая последовательность нейронов также производила бы линейное преобразование, и вся нейросеть была бы эквивалентна одному слою нейронов. Нелинейность разрушает линейную суперпозицию и приводит к тому, что возможности нейросети существенно выше возможностей отдельных нейронов. [3]
Обучение нейросетей. Обратное распространение ошибки

В основе обучения нейросетей лежит метод градиентной оптимизации - итерационное изменение синаптических весов, постепенно понижающее ошибку обработки нейросетью обучающих примеров. Причем изменения весов происходят с учетом локального градиента функции ошибки. Эффективным методом нахождения этого градиента является так назывемый алгоритм обратного распространения ошибки (error back-propagation). Отличия ответов нейросети от правильных, di, определяемые на выходном слое нейронов, распространяются по сети навстречу потоку сигналов. В итоге каждый нейрон способен определить вклад каждого своего веса в суммарную ошибку сети простым умножением невязки этого нейрона на значение соответствующего входа. Простейшее правило обучения соответствует методу наискорейшего спуска - изменения синаптических весов пропорциональны их (весов) вкладу в общую ошибку

.


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

Ключ к обучению многослойных персептронов предельно прост, он использует так называемое цепное правило дифференцирования, известное любому первокурснику. Суть метода back-propagation - в эффективном параллельном воплощении этого правила.

- Фрэнк Розенблатт использовал в своем персептроне недифференцируемую ступенчатую функцию активации. Возможно, именно это помешало ему найти эффективный алгоритм обучения, хотя сам термин back-propagation восходит к попыткам Розенблатта обобщить свое правило обучения одного нейрона на многослойную сеть. Как знать, используй он вместо ступенчатой функции активации - сигмоидную, может быть, его судьба сложилась бы по-другому (Розенблатт трагически погиб, так и не перенеся тяжелую депрессию, вызванную прекращением финансирования и охлаждением коллег к его работам после книги Минского и Пейперта).


Локальность вычислений

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

Локальность обучения

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

Интересно, что математически обучение методом обратного распространения ошибки соответствует так называемой градиентной оптимизации. Не вдаваясь в математические тонкости, этот процесс можно образно представить как поиск минимума функции ошибки, зависящей от набора всех синаптических весов сети, руководствуясь градиентом этой функции (см. врезку). Обратное распространение ошибки эффективно вычисляет локальный градиент в пространстве конфигураций, направляя тем самым процесс минимизации ошибки. Функция ошибки, однако, может иметь множество локальных минимумов, представляющих субоптимальные решения. Поэтому градиентные методы обычно дополняются элементами стохастической оптимизации, чтобы предотвратить "застревание" конфигурации сети в таких локальных минимумах. Идеальный метод обучения должен найти глобальный оптимум конфигурации сети [4].

Преимущества нейросетевого подхода

Подытожим привлекательные черты распределенной обработки информации в искусственных нейросетях:

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

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

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

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

Актуальность нейрокомпьютинга

Почему же нейрокомпьютинг, при столь внушительном наборе положительных качеств, стал популярен только в 80-х, а на практике стал применяться лишь в 90-е? Все очень просто: появление любой новой технологии должно быть востребовано экономикой. Именно экономическая потребность в суперкалькуляторах вызвала к жизни последовательные ЭВМ. Их умение решать любые формализованные задачи обработки как численной, так и символьной информации способствовала распространению компьютеров в офисах. А это, в свою очередь, подняло на должную высоту проблему человеко-машинного интерфейса. Отсюда и возросший интерес к проблемам искусственного интеллекта.

Сегодня именно интерфейс пользователя в наибольшей степени влияет на объем потенциального рынка. Отказ от командной строки и переход к графической объектной модели интерфейса вывел Microsoft в лидеры компьютерного мира.

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

Но времена меняются, и чем дальше - тем быстрее. За победным шествием Windows стратеги Microsoft чуть не просмотрели новый поворот в развитии компьютерной индустрии - появление и быстрое развитие Интернета. Привычная компьютерная среда обитания изменяется буквально на наших глазах. Вместо разрозненных персональных компьютеров появляется Сеть с ее неисчерпаемыми информационными ресурсами. Соответственно, меняется и роль компьютеров в нашей жизни. Из игровых автоматов и конторских рабочих мест они превращаются в источник знаний, средство коммуникации и электронной торговли.

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

Слово агент восходит к латинскому agere - вести, действовать. Главное качество агентов - способность выполнять какую-то делегированную ему работу в чьих-то интересах. В этом их сходство с роботами. Фактически, агенты - это и есть роботы, только предназначенные не для физической работы, а для работы с информацией. Идея интеллектуальных помощников при общении пользователей с машиной родилась в середине 70-х и была частично воплощена во многих популярных продуктах: Microsoft встраивает Wizards и System Agent в Windows 95, в Microsoft Office появляется скрепка-помощник, Mac OS включает обучаемого агента Open Sesame!, Lotus Notes V4 также имеет встроенных агентов. Но настоящий бум в области программных агентов начался с развитием Интернета. Говорящие агенты а-ля Julia общаются с вами в виртуальных мирах. Информационные агенты, такие как PointCast, доставляют вам новости и сообщают об изменениях на избранных сайтах. Shopping agents, подобные Bargian Finder, сравнивают за вас цены в многочисленных электронных магазинах. Роботы-пауки бродят по ссылкам и индексируют информацию для поисковых серверов, и т. д. Появилось понятие agentware - архитектурный принцип организации обработки информации, подобный, например, клиент-серверной архитектуре.

Существует множество типов агентов, различающихся по своим "способностям". Так, есть обучаемые и не обучаемые агенты, умеющие взаимодействовать с другими агентами, и "индивидуалы", агенты с различной степенью автономности, и т. д. Для Сети идеальны агенты, сочетающие все эти возможности. Обучаясь вкусам и предпочтениям своего хозяина, самостоятельно взаимодействуя от его имени с другими агентами, представляющими интерес поставщиков разного рода услуг, такие агенты способны создать по-настоящему комфортную среду обитания пользователей Сети.

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


Главное требование к агентам, призванным обеспечить информационный комфорт в Сети, это обучаемость (см. врезку). Нельзя рассчитывать, что массовый пользователь будет формулировать свои запросы в ясной и непротиворечивой форме. Человек, как правило, вообще не в силах объяснить логически структуру своих предпочтений. Зато он всегда может отличить то, что ему надо, от того, что "не его". Агентам предстоит учиться методом проб и ошибок, постепенно выявлять профили предпочтений своих хозяев и действовать в Сети от их имени и в их интересах. Чем качественнее обучится агент, тем комфортнее будет жить его хозяину.

Таким образом, развитие Интернета призывает на сцену обучающихся интеллектуальных агентов. Это - веление времени, давление рынка. Здесь-то способности нейросетей к обучению оказываются как нельзя более кстати. Через Интернет, через агентов нейросетипостепенно, шаг за шагом, будут отвоевывать свою экологическую нишу в мире компьютерных программ, пока их массовое распространение не сделает экономически выгодным отказ, где это возможно, от последовательных фон-неймановских машин и переход к настоящим параллельным нейрокомпьютерам (известный в последние десятилетия принцип: "software sells hardware"). Программные агенты, эмулирующие работу нейросетей на обычных компьютерах, будут тем троянским конем, который откроет дорогу параллельному hardware в мир, где пока безраздельно властвует последовательное. Программные роботы проложат дорогу роботам "железным" (кремниевым? медным? органическим?).

Интернет как среда развития ИСКУССТВЕННОГО ИНТЕЛЛЕКТА

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

Чего же не хватает сети взаимодействующих обучающихся агентов, чтобы превратиться в некий глобальный обучающийся гипермозг? Способности передавать агентам корректирующий сигнал об адекватности их коллективной деятельности? Но эта технология уже на подходе. Речь идет, конечно же, об электронных деньгах. Возможность проводить микроплатежи за микроуслуги преобразит всю Интернет-экономику, да и всю экономику вообще, по мере того как граница между этими понятиями будет постепенно размываться. Появятся сотни новых реальных возможностей включиться в экономическую деятельность, то есть зарабатывать, оказывая небольшие услуги большому числу людей. Например, создавая программные компоненты, которыми смогут пользоваться агенты, на лету собирающие нужные приложения по заказу своих хозяев. Или воспитывая поисковых агентов, специализированных по отдельным тематикам. Достаточно разветвленная сеть таких специализированных агентов-экспертов, развивающаяся вместе с Сетью, - реальная альтернатива поисковым серверам, переставшим справляться с индексированием всей сети "без разбора". Сеть может быть проиндексирована и проаннотирована только самой Сетью.

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

Предсказывать, что ждет нас в этой новой Сети, - дело неблагодарное. В зависимости от пристрастий здесь возможен весь спектр футурологических прозрений - от утопических идиллий до антиутопий типа "Матрицы". Гораздо более захватывающая перспектива - принять личное участие в создании этого гипермозга. Этим сейчас занимаются многие, как в ведущих университетских лабораториях, так и в коммерческих фирмах. Занимаемся этим и мы - коллектив ученых и программистов в созданной специально для этой цели российской инновационной компании "НейрОК" (www.neurok.ru).

Понимая, что с наскока эту задачу не решить, мы начали с малого - создания достаточно интеллектуального семантического сервера, способного учиться распознавать смысл слов, просматривая большие массивы текстов. На основе такого сервера созданы средства ассоциативного поиска документов, визуализации больших текстовых коллекций (Semantic Explorer) и персональная обучающаяся газета (Proxima Daily). Эти технологии уже используются, в частности, службами ассоциативного поиска и персональной рассылки документов российского портала "ИнфоАрт". Следующим шагом станет создание семантического агента, способного составлять по заказу "тематические обзоры" по любым предметам. Объединившись, такие самообучающиеся агенты смогут, по нашему мнению, радикально изменить способы поиска и организации информации в Сети. Потому что они способны не просто индексировать информацию в базах данных, а умеют понимать смысл данных и связывать данные между собой в ассоциативные распределенные базы знаний. Автоформализация знаний - ключевой элемент превращения Сети из гиперкниги в гипермозг, самостоятельно осознающий свое собственное содержание.

Новая ветвь эволюции

Итак, пора подводить итоги. К каким выводам подводит нас логика нашего рассмотрения? К закономерности появления и развития компьютеров сначала именно как вычислительных машин, а затем - в качестве средства автоматизации труда белых воротничков. Повсеместное распространение персональных компьютеров создало предпосылки для их объединения в Сеть. Возникновение и бурное развитие глобальной Сети подвело эволюцию компьютеров к следующему неизбежному этапу - появлению сетевого разума. Вслед за компьютерами-калькуляторами и послушными исполнителями готовых алгоритмов в ближайшем будущем появятся обучающиеся программные агенты. Их объединение в сетевое сообщество взаимодействующих друг с другом (и, конечно, со своими хозяевами) агентов создаст самообучающуюся среду, вполне аналогичную по своей способности к самоорганизации человеческому мозгу. Человеко-машинный симбиоз, каким уже давно и является современное общество, перейдет на новый качественный уровень.

Нейросетевые программы постепенно проложат дорогу аналоговому нейросетевому hardware. Компьютеры наконец обретут способность видеть, слышать и ощущать иными, неведомыми человеку, органами чувств. Робототехника, быть может, наконец-то освободит людей от утомительной роли "подай-принеси" на современном производстве. Умные домашние приборы обеспечат новый уровень бытового комфорта...

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

Источник.