История развития вычислительных систем с массовым параллелизмом насчитывает уже не один десяток лет. Пожалуй, эта одна из небольшого числа областей науки и техники, где отечественные разработки находятся на уровне мировых достижений, а в некоторых случаях и превосходят их. Шли годы, изменялась элементная база и подходы к архитектуре построения современных суппервычислителей, появлялись новые направления, к числу которых можно отнести и нейрокомпьютеры.
Что же следует понимать под термином нейрокомпьютер? Вопрос достаточно сложный. Нейросетевая тематика, как таковая, является междисциплинарной, ей занимаются как разработчики вычислительных систем и программисты, так и специалисты в области медицины, финансово-экономические работники, химики, физики и т.п. То, что понятно физику, совершенно не принимается медиком и наоборот - все это породило многочисленные споры и целые терминологические войны по различным направлениям применения всего где есть приставка нейро-. Приведем некоторые наиболее устоявшиеся определения нейрокомпьютера [1,2,4,6], принятые в конкретных научных областях:
Общие принципы построения нейронных сетей были заложены в начале второй половины 20 века в работах таких ученых, как: Д. Хебб, М. Минский, Ф. Розенблат. Первые нейросети состояли из одного слоя искусственных нейронов-персептронов. М. Минским были строго доказаны ряд теорем определяющих принципы функционирования нейронных сетей. Несмотря на многочисленные преимущества персептронов: линейность, простота реализации параллельных вычислений, оригинальный алгоритм обучения и т.п., М. Минским вместе с соавторами было показано, что реализованные на его основе однослойные нейронные сети не способны решить большое число разнообразных задач. Это вызвало некоторое ослабление темпов развития нейросетевых технологий в 60-е годы. В дальнейшем многие ограничения по использованию нейросетей были сняты с разработкой многослойных нейронных сетей, определение которых было впервые введено Ф.Розенблатом: "под многослойной нейронной сетью понимается такое свойство структуры преобразования, которое осуществляется стандартной разомкнутой нейронной сетью при топологическом, а не символьном описании". Дальнейшее развитие теория нейронных сетей нашла в 70-80 годах в работах Б. Уидроу, Андерсона, Т. Кохонена, С. Гроссберга и др.
Теория нейросетей не внесла революционных новшеств в алгоритмы адаптации и оптимального управления. Самообучающиеся системы известны давно, теория адаптивных регуляторов также хорошо разработана, они широко применяются в технике. Теория нейросетей осваивает разработанные ранее методы и пытается их приспособить для создания все более эффективных нейронных систем. Особую важность использование нейроструктур приобретает с точки зрения производительности ЭВМ. Согласно гипотезе Минского [2-4]: реальная производительность типовой параллельной вычислительной системы из n процессоров растет как log(n) (то есть производительность системы из 100 процессоров всего вдвое выше, чем производительность 10-процессорной системы - процессоры дольше ждут своей очереди, чем вычисляют). Однако, если использовать для решения задачи нейронную сеть, то параллелизм может быть использован практически полностью - и производительность растет "почти пропорционально" n.
№ | Научное направление | Определение нейровычислительной системы |
1 | Математическая статистика | Нейрокомпьютер - это вычислительная система, автоматически формирующая описание характеристик случайных процессов или их совокупности, имеющих сложные, зачастую априори неизвестные функции распределения. |
2 | Математическая логика | Нейрокомпьютер - это вычислительная система алгоритм работы которой представлен логической сетью элементов частного вида - нейронов, с полным отказом от булевых элементов типа И, ИЛИ, НЕ. |
3 | Пороговая логика | Нейрокомпьютер - это вычислительная система, алгоритм решения задач в которой представлен в виде сети пороговых элементов с динамически перестраиваемыми коэффициентами и алгоритмами настройки, независимыми от размерности сети пороговых элементов и их входного пространства. |
4 | Вычислительная техника | Нейрокомпьютер - это вычислительная система с MSIMD архитектурой, в которой процессорный элемент однородной структуры упрощен до уровня нейрона, резко усложнены связи между элементами и программирование перенесено на изменение весовых коэффициентов связей между вычислительными элементами. |
5 | Медицина (нейробиологический подход) | Нейрокомпьютер - это вычислительная система представляющая собой модель взаимодействия клеточного ядра, аксонов и дендридов, связанных синаптическими связями (синапсами) (т.е. модель биохимических процессов протекающих в нервных тканях). |
6 | Экономика и финансы | Устоявшегося определения нет, но чаще всего под нейровычислителем понимают систему обеспечивающую параллельное выполнение "бизнес-транзакций" с элементами "бизнес-логики". |
Следовательно, основные преимущества нейрокомпьютеров связаны с массовым параллелизмом обработки, что обуславливает высокое быстродействие, низким требованиями к стабильности и точности параметров элементарных узлов, устойчивостью к помехам и разрушениям при большой пространственной размерности системы, причём устойчивые и надёжные нейросистемы могут создаваться из низконадёжных элементов, имеющих большой разброс параметров.
В дальнейшем в данном обзоре под нейрокомпьютером будет пониматься любая вычислительная система с MSIMD архитектурой (определение №4). Прежде чем перейти к обзору современных нейровычислителей и их элементной базы, остановимся на классификации архитектур вычислительных систем по Б.М. Когану:
Рис.1. Архитектуры вычислительных систем.
Элементарным строительным элементом нейронной сети (НС) является нейрон, который осуществляет взвешенное суммирование поступающих на его вход сигналов. Результат такого суммирования образует промежуточный выходной сигнал, который преобразуется активационной функцией в выходной сигнал нейрона. По аналогии с электронными системами активационную функцию можно считать нелинейной усилительной характеристикой искусственного нейрона, имеющей большой коэффициент усиления для слабых сигналов и c падающим усилением для больших возбуждений. Коэффициент усиления вычисляется как отношение выходного сигнала нейрона к вызвавшему его небольшому приращению взвешенной суммы входных сигналов. Кроме этого для обеспечения увеличения вычислительной мощности многослойными НС, по сравнению с однослойными, необходимо чтобы активационная функция между слоями была нелинейной, т.е. как показано в учитывая ассоциативность операции умножения матриц любую многослойную нейросеть без нелинейных активационных функций можно свести к эквивалентной однослойной нейросети, которые весьма ограничены по своим вычислительным возможностям. Но вместе с этим наличие нейлинейностей на выходе нейрона не может служить определяющим критерием, хорошо известны и успешно работают нейросети и без нелинейных преобразований на выход, получившие название нейросети на линиях задержки.
Алгоритмический базис нейрокомпьютеров обеспечивает теория нейронных сетей (НС). Нейронная сеть - это сеть с конечным числом слоёв из однотипных элементов - аналогов нейронов с различными типами связи между слоями. Среди основных преимуществ НС в [2] отмечены: инвариантность методов синтеза НС к размерности пространства признаков и размерам НС, адекватность современным перспективным технологиям, отказоустойчивость в смысле монотонного, а не катастрофического изменения качества решения задачи в зависимости от числа вышедших из строя элементов.
Решение математических задач в нейросетевой логическом базисе определяют теоретические положения нейроматематики. В [2] выделены следующие этапы решения практически любой задачи в нейросетевом логическом базисе: формирование входного сигнала НС, формирование выходного сигнала НС, формирование желаемого выходного сигнала НС, формирование сигнала ошибки и функционала оптимизации, формирование структуры нейронной сети, адекватной выбранной задаче, разработка алгоритма настройки НС, эквивалентного процессу решения задачи в нейросетевом логическом базисе, проведение исследований процесса принятия решения задачи. Всё вышеизложенное делает построение современных систем управления с использованием нейросетевого подхода и на основе нейросетевого логического базиса одним из самых перспективных направлений реализации многоканальных и многосвязанных систем управления.
Как было отмечено, нейрокомпьютер - это вычислительная система с MSIMD архитектурой, т.е. с параллельными потоками одинаковых команд и множественным потоком данных. Давайте разберемся, каким боком относятся нейрокомпьютеры к параллельным ЭВМ. На сегодня можно выделить три основных направления развития вычислительных систем с массовым параллелизмом (ВСМП):
№ | Наименование направления | Описание |
1 | ВСМП на базе каскадного соединения универсальных SISD, SIMD, MISD микропроцессоров. | Элементная база - универсальные RISC или CISC процессоры: Intel, AMD, Sparc, Alpha, Power PC, MIPS и т.п. |
2 | На базе процессоров с распараллеливанием на аппаратном уровне. | Элементная база - DSP процессоры: TMS, ADSP, Motorola |
3 | ВСМП на специализированной элементной базе | Элементная база от специализированных однобитовых процессоров до нейрочипов. |
Для каждого из направлений сегодня существуют решения, реализующие те или иные нейросетевые парадигмы. Для большей ясности в дальнейшем будем считать, что нейросетевые системы, реализованные на аппаратных платформах первого направления (пусть и мультипроцессорных) будем относить к нейроэмуляторам - т.е. системам реализующим типовые нейрооперации (взвешенное суммирование и нелинейное преобразование) на программном уровне. Нейросетевые системы, реализованные на аппаратных платформах второго и третьего направления в виде плат расширения стандартных вычислительных систем (1-го направления) - будем называть нейроускорителями (взвешенное суммирование, как правило, реализуется аппаратно, например, на основе трансверсальных фильтров, а нелинейные преобразования - программно) и системы, реализованные на аппаратной платформе третьего направления в виде функционально законченных вычислительных устройств, следует относить к нейрокомпьютерам (все операции выполняются в нейросетевом логическом базисе). Подводя итоги терминологической "войны" можно отметить, что нейрокомпьютеры можно смело отнести к вычислительным системам с высоким параллелизмом (MSIMD архитектуры), реализованным на основе специализированной элементной базы, ориентированной на выполнение нейросетевых операций в нейросетевом логическом базисе.
Вопросы построения и применения нейроэмуляторов выходят за рамки данного обзора, заинтересованному читателю мы можем порекомендовать обратиться к литературе [3,6,7]. Мы остановимся на обзоре современных нейроускорителей и нейрокомпьютеров, рассмотрев сначала элементы нейрологики с позиции аппаратной реализации, затем перейдем к элементной базе нейровычислителей (сигнальные процессоры и нейрочипы), а затем проанализируем архитектурные решения и тактико-технические свойства наиболее распространенных модификаций.