От Adaline к CCortex: путь длиной в полвека

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

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

Первыми попытку создать модель клетки головного мозга предприняли МакКаллок и Питтс. Их идея получила воплощение в реальном устройстве, которое было названо Adaline, или однослойный персептрон.

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

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

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

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

Увы, практически все попытки оказались неудачными. Казалось бы, рассуждения безупречны, но распознать не удавалось даже самые простые изображения. А вскоре классик программирования Марвин Минский выяснил причины происходящего. В 1969 г. он доказал теорему, которая гласит, что система, подобная Adaline, не может реализовать не только сложные функции, но даже такую простейшую операцию, как XOR (исключающее ИЛИ).

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

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

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

Мечты и реальность

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

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

Чтобы оценить перспективы работ в этом направлении, надо выяснить возможности первого варианта CCortex и подсчитать ресурсы, необходимые для реализации второго варианта системы.

Если бы обмен импульсами между нейронами головного мозга осуществлялся со скоростью света, реализацию идеи его моделирования пришлось бы отложить надолго (правда, в этом случае человек усваивал бы программу средней школы приблизительно за пять минут). На самом деле скорость прохождения электрохимических сигналов на много порядков меньше, и, по оценкам специалистов, нейрон может изменять свое состояние не более чем 100 раз в секунду. Для моделирования поведения одной связи потребуется как минимум 100 тактов работы процессора и около 10 байтов оперативной памяти (необходимо имитировать не только прохождение сигнала, но и изменение проводимостей связей между нейронами, т. е. реализовать алгоритм обучения). Таким образом, с задачей моделирования мозга справился бы компьютер с тактовой частотой около 2000 терагерц, имеющий объем памяти порядка 200 терабайт. На сегодняшний день тактовая частота компьютеров составляет единицы гигагерц, и нетрудно подсчитать, что для моделирования человеческого мозга придется задействовать порядка миллиона компьютеров средней мощности (и это при условии, что экспериментаторы будут иметь в своем распоряжении идеальный алгоритм распараллеливания вычислений, работающий абсолютно без накладных расходов). На фоне этих требований 1000 про-цессоров Intel и AMD, выделенные компанией Artificial Development на проведение первого этапа эксперимента, выглядят более чем скромно.

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


Основное ограничение, и как его обойти

Что же произойдет через 15 лет, когда вычислительные средства разовьются до должного уровня? Будет ли это событие ознаменовано появлением машинного интеллекта, не уступающего по своим возможностям человеческому? Тут нас ждет жестокое разочарование. Мало эмулировать 15--20 миллиардов нейронов. Гораздо важнее воспроизвести саму структуру мозга, а для этого надо хотя бы приблизительно знать, как он устроен. На сегодняшний день таких знаний нет. Не появятся они и через 10 лет, и даже через 100. Почему прогноз столь пессимистичен? Надо учесть, что инструментом для изучения мозга является... сам мозг! Другими словами, система берется изучить сама себя. Увы, это невозможно. Система не способна сама описать себя — этот вывод следует из известной каждому математику теоремы о неполноте.

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

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

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