Способы реализации нейронных сетей
Нейронные сети могут быть реализованы двумя путями: первый - это программная модель нейронной сети, второй - аппаратная реализация. На современном рынке изделия, основанные на использовании механизма действия нейронных сетей, первоначально появились в виде нейроплат. В качестве типичного примера нейроплаты можно назвать плату МВ 86232 японской фирмы Fujitsu. На плате размещены процессор цифровой обработки сигналов и оперативная память емкостью 4 Мбайт, что позволяет использовать такую плату для реализации нейронных сетей, содержащих до тысячи нейронов. Есть и более совершенные платы.
Основными коммерческими аппаратными изделиями на основе нейронных сетей являются и, вероятно, в ближайшее время ими будут и оставаться нейрочипы, то есть нейронные микросхемы. Сейчас выпускаются более 20 типов нейрочипов, параметры которых порой различаются на несколько порядков. Среди них - модель ETANN фирмы Intel. Данная микросхема, выполненная по микронной технологии, является реализацией нейронной сети с 64 нейронами и 10240 синапсами. Ее цена - 2 тысячи долларов. К числу самых дешевых нейрочипов (стоимость - 41 доллар) относится модель MD 1220 фирмы Micro Devices. Эта микросхема реализует нейронную сеть с 8 нейронами и 120 синапсами.
Среди разрабатываемых в настоящее время нейрочипов выделяются модели фирмы Adaptive Solutions (США) и Hitachi (Япония). Нейрочип фирмы Adaptive Solutions, вероятно, станет одним из самых быстродействующих: объявленная скорость обработки составляет 1,2 миллиарда межсоединений в секунду (нейронная схема в чипе содержит 64 нейрона и 262144 синапса). Нейрочип фирмы Hitachi позволяет реализовать нейронную схему, содержащую до 576 нейронов. Такие нейрочипы, несомненно, станут основой новых нейрокомпьютеров и специализированных многопроцессорных изделий.
Большинство сегодняшних нейрокомпьютеров представляют собой просто персональный компьютер или рабочую станцию, в состав которых входит дополнительная нейроплата. К их числу относятся, например, компьютеры серии FMR фирмы Fujitsu. Такие системы имеют бесспорное право на существование, поскольку их возможностей вполне достаточно для разработки новых алгоритмов и решения большого числа прикладных задач методами нейроматематики. Однако наибольший интерес представляют специализированные нейрокомпьютеры, непосредственно реализующие принципы нейронных сетей. Типичными представителями таких систем являются компьютеры семейства Mark фирмы TRW (первая реализация персептрона, разработанная Розенблатом, называлась Mark I).
Модель Mark III фирмы TRW представляют собой рабочую станцию, содержащую до 15 процессоров семейства Motorola 68000 с математическими сопроцессорами. Все процессоры объединены шиной VME. Архитектура системы, поддерживающая до 65 тысячи виртуальных процессорных элементов с более чем 1 миллионом настраиваемых соединений, позволяет обрабатывать до 450 тысяч межсоединений в секунду.
Mark IV - это однопроцессорный суперкомпьютер с конвейерной архитектурой. Он поддерживает до 236 тысяч виртуальных процессорных элементов, что позволяет обрабатывать до 5 миллионов межсоединений в секунду. Компьютеры семейства Mark имеют общую программную оболочку ANSE (Artificial Neural System Environment), обеспечивающую программную совместимость моделей. Помимо указанных моделей фирма TRW предлагает также пакет Mark II - программный эмулятор нейронных сетей.
Другой интересной моделью является нейрокомпьютер NETSIM, созданный фирмой Texas Instruments на базе разработок Кембриджского университета. Его топология представляет собой трехмерную решетку стандартных вычислительных узлов на базе процессоров 80188. Компьютер NETSIM используется для моделирования таких моделей нейронных сетей как сеть Хопфилда-Кохонена и нейронных сетей с обратным распространением. Его производительность достигает 450 миллионов межсоединений в секунду.
Фирма Computer Recognitiion Systems (CRS) продает серию нейрокомпьютеров WIZARD/CRS 1000, предназначенных для обработки видеоизображений. Размер входного изображения - 512x512 пикселей. Модель CRS 1000 уже нашла применение в промышленных системах автоматического контроля.
Сегодня на рынке представлено много моделей нейрокомпьютеров. На самом деле их, видимо, гораздо больше, но наиболее мощные и перспективные модели по-прежнему создаются по заказам военных. К сожалению, не имея достаточной информации о моделях специального назначения, трудно составить представление об истинных возможностях современных нейрокомпьютеров.
Подходы к обучению
Нейронные сети принадлежат классу коннекционистских моделей обработки информации. Основная их черта - использовать взвешенные связи между обрабатывающими элементами как принципиальное средство запоминания информации. Обработка в таких сетях ведется одновременно большим числом элементов, благодаря чему они терпимы к неисправностям и способны к быстрым вычислениям.
Задать нейронную сеть, способную решить конкретную задачу, - это значит определить модель нейрона, топологию связей, веса связей. Нейронные сети различаются между собой меньше всего моделями нейрона, а в основном топологией связей и правилами определения весов или правилами обучения, программирования.
По структуре связей сети делятся на два больших класса: однослойные и многослойные. К однослойным относятся модель Хопфилда и последующие разработки, некоторые типы модели нейронной сети, известной под названием "машина Больцмана". Многослойная сеть имеет входной, выходной и скрытые слои, на входной подается информация, с выходного снимается ответ, скрытые слои участвуют в обработке. В настоящее время существует два подхода к решению задачи обучения нейронной сети возможности распознавания образов, оптимизации и так далее. Один, исторически более ранний, состоит в постепенной модификации весовых коэффициентов в процессе обучения.
Подходы к обучению однослойных и многослойных сетей различны. Обучение многослойных сетей состоит в том, что на основе набора примеров (входное состояние -> выходное состояние) постепенно подбираются веса всех связей так, чтобы каждое входное состояние вызывало соответствующее выходное. Обучающие алгоритмы представляют собою итерационные процедуры с медленным приближением к окончательным значениям весов связей. Этот способ впервые был реализован в персептроне Розенблата и локальных правилах обучения на основе модели Хебба. В последующие годы такой подход получил дальнейшее развитие в алгоритмах типа обратного распространения. В однослойных сетях часто удается выразить веса связей через параметры задачи (так обстоит дело с моделью Хопфилда и однослойной машиной Больцмана). Подход состоит в вычислении значений синаптических весов на основе заданного описания функционирования нейронной сети как "черного ящика". Если сеть должна реализовать заданную функцию, ее рассматривают как набор элементов пороговой логики и задача сводится к кусочно-линейной аппроксимации этой зависимости и синтезу соответствующего автомата.
Для общего случая, когда описание поведения сети задано в виде набора векторов возможных состояний, поиск синаптических весов сводится к решению соответствующей системы нелинейных уравнений. Такое решение было впервые найдено Хопфилдом. Появление этой работы в свое время продемонстрировало эффективность применения аналитических методов для интерпретации поведения нейронных сетей и привело к разработке проекционного алгоритма, позволяющего вычислять значения синаптических весов, сократив тем самым затраты времени на обучение.
Исследования проекционного алгоритма показывают, что при очевидных достоинствах ему свойственен ряд недостатков, в частности склонность сети к ложным реакциям и низкая эффективность при доучивании, когда необходимо ввести новые данные, не разрушая информации, запомненной ранее. Кроме того, до настоящего времени принято считать, что данный алгоритм пригоден лишь для полносвязных нейронных сетей и неприменим в сетях другой архитектуры. Указанные недостатки и малая изученность таких вопросов как структура и частота появления ложных реакций, реализация итеративных процедур доучивания и применение в неполносвязных сетях затрудняют использование проекционного алгоритма в исследованиях по нейробионике и при проектировании нейропроцессоров. Недостатком проекционного алгоритма с точки зрения решения задач прогнозирования является то, что при обучении необходимо сначала сформировать эталоны распознаваемых образов. В задачах прогнозирования это либо вовсе невозможно, либо чрезвычайно затруднено. Эталоны должны формироваться в самой сети на основе анализа исторических данных.