Архивы: по дате | по разделам | по авторам

Нейрооптимизм

Архив
автор : Михаил Вялый   08.02.2000

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


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

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

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

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

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

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

Нейронные сети:

- работают параллельно;

- способны к обучению;

- способны обрабатывать образы;

- являются моделью мозга, самой гибкой из известных нам систем.

Параллельные архитектуры

Нейронные сети выделяются среди прочих моделей параллельных вычислений простотой базовых элементов, довольно высоким уровнем параллелизма (как правило, рассматриваются модели нейронных сетей, в которых число связей между отдельными нейронами велико) и фиксированными правилами взаимодействия между элементами. Простота базовых элементов и правил взаимодействия позволяет надеяться на достаточно дешевые технологические решения. Высокая степень параллелизма, напротив, достигается пока лишь дорогой ценой (в самой "распараллеленной" из существующих ныне архитектур - Connection Machine - основной вклад в стоимость системы вносит как раз коммуникационное оборудование, позволяющее любому из 64K процессоров напрямую обращаться к памяти любого другого процессора).

По-видимому, если когда-нибудь архитектуры массового параллелизма и получат широкое распространение, решающим соображением в выборе конкретной из них будет как раз цена соединений между элементами. Какие именно действия выполняют сами элементы - не так уж важно. Всегда остается возможность имитировать действия одних элементов другими. Скажем, еще в пионерской работе Мак-Каллока-Питтса было замечено, что пороговые функции могут использоваться как базисные функции в алгебре логики (то есть любую логическую формулу можно представить как композицию пороговых функций). Поэтому нейронная сеть, состоящая из пороговых элементов, способна (при правильном выборе весов) имитировать вычисление любой другой функции. Но точно такое же соображение справедливо и в обратную сторону: современные нейрочипы имитируют работу пороговых элементов, используя для этого те функции, реализация которых представляется более предпочтительной. Заметим, что для реализации пороговых (и логистических) функций достаточно элементов всего трех типов: вычисляющих конъюнкцию (функция, определяемая условием "все входы равны 1"), дизъюнкцию ("хотя бы один вход равен 1") и отрицание ("1 заменяется на 0"). А можно использовать элементы всего двух типов - осуществляющие сложение и умножение входов по модулю 2.

Так что преимущества нейронных сетей нужно искать в их способе функционирования.

Обучение и программирование

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

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

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

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

Опти-мистический постулат

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

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

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

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

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

Распознавание образов или хранение образцов?

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

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

Крайне сомнительно (если не прибегать к опти-мистическому постулату), что для любой задачи классификации именно нейронные сети окажутся лучшим способом распознавания. Но тогда возникают те же проблемы, что уже обсуждались выше: кто-то должен придумать, что и как нужно распознавать. То есть опять гибкость должна проявлять внешняя по отношению к нейронной сети система.

Насколько эффективна имитация природы?

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

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

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

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

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

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

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

Нейронные сети в XXI веке

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

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

Поживем - увидим.



Михаил Вялый - работает в Вычислительном центре РАН, специалист по теории алгоритмов, автор ряда работ по теории сложности вычислений и квантовым алгоритмам.

© ООО "Компьютерра-Онлайн", 1997-2022
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.