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

Две архитектуры

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

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

Основные различия между двумя архитектурами

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

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

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

Преимущества нейросетевого подхода заключаются в следующем:

• параллелизм обработки информации;

• единый и эффективный принцип обучения;

• надежность функционирования;

• способность решать неформализованные задачи.

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

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

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

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

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

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

Обучение

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

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

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

Конечно, при таком обучении нейронной сети нет уверенности, что она обучилась наилучшим образом, поскольку всегда существует возможность попадания алгоритма в локальный минимум (рис. 3). Для этого используются специальные приемы, позволяющие «выбить» найденное решение из локального экстремума. Если после нескольких таких действий нейронная сеть сходится к тому же решению, то можно сделать вывод о том, что найденное решение, скорее всего, оптимально.

Использование

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

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

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

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

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

В 1996 году фирмой Accurate Automation Corp (http://www.accurate-automation.com), Chattanooga, TN по заказу NASA и Air Force был разработан экспериментальный автопилотируемый гиперзвуковой самолет-разведчик LoFLYTE (Low-Observable Flight Test Experiment — рис. 4). Самолет имел длину всего 2,5 м и вес 32 кг и был предназначен для исследования новых принципов пилотирования. LoFLYTE использовал нейронные сети, позволяющие автопилоту обучаться, копируя приемы пилотирования летчика. Поскольку самолет был предназначен для полетов со скоростью 4-5 махов, то быстрота реакции пилота-человека могла быть недостаточной для адекватного отклика на изменение режима полета. В этом случае на помощь приходили нейронные сети, которые перенимали опыт управления у летчика и за счет высокой скорости обработки информации позволяли быстро находить выход в аварийных и экстремальных ситуациях (см. также http://www.accurate-automation.com/Tech … flyte.html и http://www.designation-systems.net/dusr … flyte.html).

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

Определение тематики текстовых сообщений — еще один пример успешного использования искусственных нейронных сетей. Так, сервер новостей Convectis (продукт компании Aptex Software, Inc.) был выбран в 1997 году компанией PointCast, Inc., являвшейся лидером персонализированной доставки новостей в Интернете, для автоматической рубрикации сообщений по категориям. Определяя значения ключевых слов по контексту, сервер Convectis был способен в реальном времени распознавать тематику и автоматически рубрицировать огромные потоки текстовых сообщений, передаваемых по таким информационным сетям, как Reuters, NBC и CBS.

Нейросетевой продукт SelectCast от Aptex Software, Inc. позволял определять область интересов пользователей Интернета и предлагал им рекламу соответствующей тематики. Летом 1997 года компания Excite, Inc. лицензировала эту разработку для использования на своих поисковых серверах. После установки на серверах Excite и Infoseek нейросетевой рекламой было охвачено около трети всех пользователей сети на тот момент. Проведенные исследования установили, что отклик на такую тематическую рекламу была в среднем в два раза выше, чем на обычную, а для отдельных ее видов эффективность увеличивалась до пяти раз.

Распознавание речи является весьма популярным применением нейронных сетей, реализованным в ряде программных продуктов. В компании «НейроПроект» несколько лет назад была создана демонстрационная система для речевого управления встроенным в Windows калькулятором. Система позволяла без предварительного обучения уверенно распознавать каждое из 36 слов, сказанных в микрофон любым человеком. Для классификации использовалась иерархическая нейронная сеть, состоящая из двух каскадов: первый осуществлял примерное распознавание слова, относя его к одному из шести классов, а второй точно классифицировал слово внутри каждого из классов. В обучении этой нейронной сети принимали участие 19 дикторов.