Даже искусственному мозгу, чтобы поумнеть, надо учиться, учиться и учиться.

Человек уже несколько десятилетий не может тягаться с компьютером в скорости вычислений, современные хранилища данных превосходят его в эрудиции, а поисковые системы — в эффективности сбора информации. Но выделить главный смысл и сформулировать вопрос пока по силам только человеку. Не так-то просто воспроизвести в искусственной среде такие особенности человеческого мозга, как способность к всестороннему обучению и ассоциативному восприятию. Чтобы обыграть чемпиона мира по шахматам Гарри Каспарова, специалистам компании IBM пришлось сделать шахматный компьютер Deep Blue, который способен был анализировать до миллиарда позиций в секунду. Причем успех пришел не сразу. Сначала Deep Blue проиграл, и только через год, в 1997-м, взял реванш. Во всем этом противостоянии впечатляет не быстродействие компьютера, а принципиальная разница между соперниками. Ведь человек, даже будучи гроссмейстером, тратит целую секунду на анализ каждого хода! В чем же секрет человеческой сообразительности? Одна из попыток ответить на этот вопрос — искусственные нейронные сети. Идея напрямую скопировать структуру мозга оказалась достаточно плодотворной — удалось отчасти воспроизвести тот самый интуитивный уровень реакций, который ответственен за распознавание образов и выделение сигналов на фоне шума. Нейронные сети, как и мозг, представляют собой универсальный инструмент для решения задач и особенно эффективны именно там, где не удается использовать стандартные алгоритмы.

Образец для подражания

В начале XX века испанский гистолог Сантьяго Рамон-и-Кахаль продемонстрировал научному сообществу, что нервная система состоит из отдельных клеток — нейронов, за что и был в 1906 году вместе с К. Гольджи удостоен Нобелевской премии по биологии. Постепенно выяснилось, что нейроны постоянно обмениваются электрохимическими сигналами с помощью специальных отростков — аксонов и дендритов, причем распространение сигналов строго направленное — по дендритам в клетку, а по аксону — из нее. Каждый нейрон связан с множеством других, и связи эти постоянно меняются — возникают, усиливаются, ослабевают или исчезают вовсе. Конструкция непростая, особенно если учесть, что мозг состоит примерно из 5 миллиардов таких клеток. А представив, что каждая из них поддерживает сотни связей со своими собратьями, невольно проникаешься уважением к самому себе. Несмотря на эти внушительные цифры, достаточно простое устройство отдельного элемента мозга — нейрона — открывало заманчивые перспективы. И в 1943 году У. Мак-Каллок и У. Питс впервые предложили его математическую модель — искусственный нейрон.

Искусственный нейрон

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

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

Вскоре после появления модели Мак-Каллока и Питса были развиты идеи обучения искусственных нейронов, а к началу 60-х годов Ф. Розенблатт предложил на их основе целый класс подобных структур, персептронов, способных передавать сигналы и обучаться. Их активно исследовали и пытались использовать для решения простых задач. Но это удавалось далеко не всегда, и надежда постепенно сменилась разочарованием. А когда М. Минский математически доказал, что персептрон в принципе не может справиться с нелинейной задачей, интерес к нейронным сетям заметно уменьшился.

Архитектура

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

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

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

Обучение

После выбора архитектуры наступает самый ответственный этап — обучение нейронной сети. Как и ее прототип, мозг, эта искусственная конструкция сразу после своего рождения подобна чистому листу бумаги. Дальше все зависит от учителя и его методов обучения. Так Маугли, попавший в ласковые лапы волчицы, че-рез некоторое время последует ее примеру, станет выть на луну и ловко ловить зайцев, а маленький джентльмен под присмотром строгой бонны научится говорить по‑французски и держать вилку в левой руке. Обучение нейронной сети тоже напоминает уроки грамоты. Есть ряд готовых примеров, в которых входным сигналам соответствуют известные правильные ответы. Эти входные сигналы подаются на вход сети. Сеть выдает ответ. Если он не совпадает с правильным, с помощью специальных математических процедур вносятся изменения в веса связей. Чем больше разница между полученным ответом и правильным, тем больше корректируются веса. После очередной коррекции вся процедура повторяется снова, пока сеть не начнет «отвечать» на вопросы правильно.

Несмотря на вроде бы безупречную логику, процесс обучения не всегда приводит к успеху. Во‑первых, обучающие примеры могут оказаться негодными. Здесь часто приводят случай из военной практики, когда сеть, предназначенная для распознавания танков противника, обучалась по их фотографиям. Обучение прошло успешно, но на первом же испытании случился конфуз. После разбирательства выяснилось, что все выбранные для учебы фотографии своих машин были сделаны в одном ландшафте, а вражеских — в другом. В результате сеть избрала самый простой вариант и научилась отличать вовсе не танки, а один фон от другого. Надо сказать, что для задач классификации разработан целый класс сетей, которым вообще не нужны обучающие примеры, но дело не только в примерах. Второй камень преткновения — неудачный выбор начальных значений весов на старте. Стоит здесь ошибиться — и обучение может зайти в тупик. Есть и проблема выбора архитектуры: недостаточное число нейронов не позволит решить сложную задачу, а слишком большое их количество сильно замедлит процесс обучения. Чем больше элементов в сети, тем медленнее она обучается. Но если интуиция по части архитектуры и методов обучения не подведет, появится реальный шанс перейти от теории к практике.

Что умеют нейронные сети

Существует два разных подхода к практическому воплощению идеи искусственных нейронных сетей. Первый — микропроцессорные устройства из искусственных нейронов, так называемые нейрочипы, а второй — компьютерные программы-имитаторы.

Созданием нейрочипов увлекались многие известные производители, IBM и Philips, Siemens и Intel. Например, нейрочип ZISC78, совместная разработка компаний Silicon Recognition и IBM, содержит 78 узлов-нейронов и хранит в каждом из них 64-битный вектор. Сравнение всех этих векторов с поступающим на вход сигналом занимает 3 микросекунды. Такие чипы можно сращивать друг с другом и получать мощные обучаемые инструменты для распознавания, как, например, схема из 4000 узлов, заказанная Министерством обороны США и способная распознавать 1,2 миллиарда векторов в секунду.

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

Другое дело компьютерные программы, которые, по сути, имитируют нейронную сеть, ее обучение и функции. Такую программу можно записать в микропроцессор или запустить на обычном компьютере. Обученная модель нейронной сети используется в микропроцессорных системах распознавания, встроенных в сенсорные панели фирмы Synaptics. А несколько лет назад некоторые аэропорты США получили в свое распоряжение устройство для обнаружения бомб, где данные анализируются с помощью нейросетевой программы. Крупные корпорации и банки обучают нейронные сети для прогнозирования цен и оценки эффективности инвестиций, а медики с помощью нейросетевых моделей пытаются диагностировать предынфарктное состояние и распознавать раковые клетки. Русская программа FormReader (компания ABBYY), которая распознаёт рукописный текст, тоже построена на нейронных сетях.

Перспективы

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

Статья «» опубликована в журнале «Популярная механика» (№2, Февраль 2004).