Нейрокомпьютер
Нейрокомпью́тер (от нейро... и компьютер), вычислительная система, в которой аппаратное и программное обеспечение оптимизировано для реализации алгоритмов решения задач на основе принципов работы нейронных сетей.
Появление нейрокомпьютера обусловлено прежде всего отказом от логического базиса (И, ИЛИ, НЕ), используемого в компьютерах с т. н. архитектурой фон Неймана, сначала на уровне описания алгоритмов решения задач, затем на уровне элементной базы вычислительных машин с постепенным переходом на использование в качестве базовых элементов вычислительной системы формальных нейронов (с соответствующими алгоритмами настройки весовых коэффициентов входных сигналов), которые в простейшем случае моделируют функции биологических нейронов. Нейросетевые алгоритмы решения задач обеспечивают максимально возможный уровень распараллеливания вычислений при современной аппаратной реализации по сравнению с другими алгоритмами. По способу обработки сигналов различают цифровые, аналоговые и аналого-цифровые нейрокомпьютеры (именно нейрокомпьютеры обусловили тенденцию возврата к аналоговым методам обработки информации, обладающим высоким быстродействием и низкой стоимостью). См. также Аналоговая вычислительная машина.
Нейрокомпьютеры применяют в основном для решения общесистемных задач (обработка сигналов – речевых, сейсмических, радиолокационных, гидроакустических и других; обработка изображений – биометрических, аэрокосмических и других; реализация систем принятия решений, систем защиты информации и др.), задач промышленного назначения (в геоинформационных, телекоммуникационных, космических, навигационных системах, для диагностики технических систем и др.), социально-экономических задач (в медицине, биоинформатике, образовании, экономике и др.).
Основные преимущества нейрокомпьютера: параллелизм вычислений, что обусловливает высокое быстродействие; низкие требования к стабильности и точности параметров элементарных узлов; устойчивость к помехам и разрушениям (выходу из строя) формальных нейронов при большой пространственной размерности системы (причём устойчивые и надёжные нейронные сети могут создаваться из низконадёжных элементов, имеющих большой разброс параметров).
Архитектура нейрокомпьютеров
Известны реализации нейрокомпьютеров в виде совокупности нейрочипов (цифровых, аналоговых, аналого-цифровых); встраиваемых блоков, аппаратно реализующих различные физические принципы действия (оптические, молекулярные, квантовые); классических рабочих станций или супер-ЭВМ различной архитектуры с программным обеспечением, реализующим нейросетевые алгоритмы решения задач. Специализированные нейрочипы часто реализуются на основе процессорных матриц (систолических процессоров). Такие нейрочипы близки к обычным RISC-процессорам [англ. Restricted (reduced) Instruction Set Computer – компьютер с сокращённым набором команд] и объединяют в своём составе некоторое число процессорных элементов, а управляющая и дополнительная логика, как правило, строится на базе дополнительных схем. Основное отличие нейрочипов от других процессоров – это обеспечение высокого параллелизма вычислений за счёт применения специализированного нейросетевого логического базиса или конкретных архитектурных решений. Использование возможности представления нейросетевых алгоритмов для реализации на нейросетевом логическом базисе является основной предпосылкой резкого увеличения производительности нейрочипов.
Различают также нейросигнальные процессоры, ядро которых составляют типовые процессоры цифровой обработки сигналов (ПЦОС, цифровой сигнальный процессор; англ. Digital Signal Processor – DSP), а реализованная на кристалле дополнительная логика обеспечивает выполнение характерных нейросетевых операций (например, дополнительный векторный процессор и т. п.).
Архитектура нейрокомпьютера на базе мультипроцессорных вычислительных комплексов с раздельной памятью строится на основе элементарных машин (ЭМ), объединяемых в вычислительный комплекс посредством коммуникационной сети. Каждая ЭМ состоит из центрального процессора и оперативной памяти; т. к. каждый процессор имеет свою собственную память, то отсюда название – вычислительный комплекс с разделённой оперативной памятью. Так как вычислительный комплекс состоит из достаточно автономных ЭМ, эту структуру можно считать и многомашинным вычислительным комплексом. ЭМ реализуются на базе т. н. транспьютеров [англ. transputer = TRANSfer (передатчик) + comPUTER (вычислитель), разработан фирмой Inmos (Великобритания) в 1979]. Транспьютер – элемент построения многопроцессорных систем, выполненный на одном кристалле большой (сверхбольшой) интегральной схемы (СБИС). Объективной причиной их появления стала возможность реализовать в одном кристалле 16-разрядный (а несколько позднее 32-разрядный) микропроцессор, память и четыре канальных адаптера (последовательных интерфейсов связи, работающих независимо друг от друга и независимо от центрального процессора). Это позволило создавать вычислительные системы, собирая их как конструктор, впервые с возможностью подборки числа процессоров, адекватных сложности решаемой задачи. Под ЭВМ с массовым параллелизмом в отличие от классических многопроцессорных ЭВМ с числом процессоров 2, 4, 8, 16 (как правило, не более) понимают ЭВМ с числом процессоров 4, 8, 10, 16, 32, 128, 256, 512, 1024 и более, в которых соблюдается принцип линейного (или почти линейного) роста производительности в зависимости от числа процессоров (физического объёма или стоимости). Появление таких ЭВМ связано с разработкой фирмой Inmos транспьютера T414. В отличие от обычных микропроцессоров в транспьютере на кристалле были реализованы: 32-разрядный микропроцессор; внутрикристалльное оперативное запоминающее устройство (ОЗУ) объёмом 2 Кбайт; четыре канальных адаптера. Для разработки следующей версии транспьютера T800 фирме Inmos понадобилось около пяти лет. В него были введены два блока: блок выполнения операций с плавающей запятой; внутрикристалльное ОЗУ объёмом 4 Кбайт. Преимуществами транспьютерной идеологии построения сверхвысокопроизводительных ЭВМ были также развитое программное обеспечение, система интерфейсных СБИС (канальные, графические, ввода изображений и др.), система проблемноориентированных СБИС (обработка сигналов, изображений, дисковые системы, реализация тригонометрических функций и т. п.). Интерфейсные и проблемно-ориентированные транспьютерные СБИС имели, как и транспьютеры, свойство каскадируемости с использованием стандартных каналов связи. Транспьютерные системы, разработанные в 1990-х гг., были наиболее эффективной реализацией нейрокомпьютеров, как программно-аппаратных эмуляторов.
Классификация нейрокомпьютеров
Исходя из архитектуры нейрокомпьютеров и нейронных сетей, нейрокомпьютеры классифицируют по типу логики (цифровые, аналоговые и гибридные); типу реализации нейросетевых алгоритмов – с полностью аппаратной реализаций и с программно-аппаратной реализацией (когда нейроалгоритмы хранятся в постоянном запоминающем устройстве); характеру реализации нелинейных преобразований – с жёсткой структурой нейронов (аппаратно реализованных) и нейрокристаллы с настраиваемой структурой нейронов (перепрограммируемые); гибкости структуры нейронных сетей – с жёсткой и переменной нейросетевой структурой (т. е. топология нейронных сетей реализована жёстко или гибко). С точки зрения конструктивной реализации нейрокомпьютеры можно подразделить на изделия, реализованные в виде карт и модулей, и конструктивно-автономные системы. Нейрокомпьютеры, изготовленные в виде карт (виртуальные нейрокомпьютеры), как правило, предназначены для установки в слот расширения стандартного персонального компьютера. С другой стороны, нейрокомпьютеры в виде модулей соединяются с управляющей Host-ЭВМ (ведущей ЭВМ) по стандартному интерфейсу или шине. Рассматривая подходы к аппаратной реализации нейрокомпьютеров в виде конструктивно-автономных систем, необходимо отметить, что, несмотря на широкое распространение различных высокопараллельных ускорителей для различных задач, число моделей полнофункциональных нейрокомпьютеров невелико, т. к. большинство из них служат для специального применения.
Первые разработки нейрокомпьютеров
Аппаратные разработки нейрокомпьютеров начались в 1950-е гг. и велись параллельно с работами над универсальными ЭВМ; постепенно сфера применения нейрокомпьютеров расширялась вследствие роста числа сложных формализуемых и неформализуемых задач, решить которые на классических компьютерах было невозможно или очень трудно. Первый в мире нейрокомпьютер «MARK-1», перцептрон (рис. 1, рис. 2), создан в 1958–1960 гг. американским нейрофизиологом Ф. Розенблаттом.
Ряд специализированных и экспериментальных нейрокомпьютеров разрабатывался в 1960–1970-е гг. В СССР в 1968 г. впервые был разработан нейрокомпьютер на базе двух аналоговых вычислительных машин МН-4 и специализированного блока, реализующего функциональную структуру простейшей нейронной сети (рис. 3).
На рис. 3 вверху показана структурная схема специализированного блока, реализующего простейшую нейронную сеть, где – входные образы (векторы, сигналы, изображения); – указания «учителя», которые поступают в блок обучения; – принятое решение в результате распознавания. В нижней части рисунка представлена нейронная сеть, реализованная в аналоговом блоке. Здесь блок нейрон 1-1 – это первый нейрон первого слоя, соответственно нейрон 1-5 – пятый нейрон первого слоя; информация с выхода первого слоя поступает на второй слой нейронной сети (нейрон 2-1 – первый нейрон второго слоя и т. д.), а затем на вход третьего слоя нейронной сети, в которой окончательно формируется выходной сигнал (принятие решения в результате распознавания). В 1970 г. создан более совершенный нейрокомпьютер с более сложной функциональной структурой (рис. 4). Описаны четыре варианта структуры трёхслойной нейронной сети, реализуемые в аналоговом блоке. N – размерность входного вектора; K – число распознаваемых образов.
В 1974 г. в СССР разработан настольный нейрокомпьютер, имеющий следующие технические характеристики: размерность пространства признаков – 5; входное напряжение (вольт) – 0–10; приведённая относительная ошибка проведения границы (%) – 0,1; частота смены образов (кГц) – 1; количество классов – 2; потребная мощность (Вт) – 60. Под понятием «размерность пространства признаков» (размерность входного вектора) понимается число признаков N=5, по которым описывается образ (например, для описания человека при размерности пространства признаков 5 могут учитываться рост, вес, цвет глаз, волосы, причёска).
Отечественные разработки нейрокомпьютеров 1990-х гг.
В конце 1980-х гг. активизировались разработки цифровых нейрокомпьютеров, что связано с развитием микроэлектроники; например, стало возможно реализовать в одном кристалле фрагмент нейронной сети с каскадным соединением формальных нейронов. Один из первых цифровых нейрокомпьютеров – «Геркулес» (было представлено четыре модели), основу которого составляли сверхбольшие интегральные схемы AMD2900, имел объём памяти до 12 Мб; пиковую производительность (число переключений связей в секунду) до 16·106; максимальное число эмулируемых связей до 8·106; максимальное число эмулируемых нейронов до 8·106. Программное обеспечение: операционная система; инструментальная система разработки нейросетевых программ; среда для работы с готовыми нейросетевыми парадигмами; любые транспьютерные системы программирования.
Нейрокомпьютеры на основе ПЦОС и ПЛИС
Стремительный переход современных систем управления на цифровые стандарты привёл к необходимости обрабатывать с высокой скоростью достаточно большие объёмы информации. Процессоры цифровой обработки сигналов, обладая мощной вычислительной структурой, позволяют реализовать различные алгоритмы обработки информационных потоков. Сравнительно невысокая цена, а также развитые средства разработки программного обеспечения позволяют легко применять их при построении вычислительных систем с массовым параллелизмом. ПЦОС вот уже на протяжении двух десятилетий являются элементной базой нейрокомпьютеров, реализованных как в виде карт и модулей, так и в виде конструктивно-автономных систем.
Сложная обработка и фильтрация сигналов, например, распаковка сжатых аудио- и видеоданных или маршрутизация информационных потоков, требует применения достаточно производительных вычислительных систем. Подобные системы могут быть реализованы на различной элементной базе, но наибольшее распространение получили устройства с применением цифровых сигнальных процессоров и программируемой логической интегральной схемой (ПЛИС; англ. Programmable Logic Device – PLD). Программируемая логика способна работать на более высоких частотах, но поскольку управление реализовано аппаратно, то изменение алгоритмов работы требует перепрограммирования интегральной схемы. Низкая тактовая частота ПЦОС пока ограничивает максимальную частоту обрабатываемого аналогового сигнала до уровня в 10–20 МГц, но программное управление позволяет достаточно легко изменять не только режимы обработки, но и функции, выполняемые ПЦОС. Помимо обработки и фильтрации данных, ПЦОС могут осуществлять маршрутизацию цифровых потоков, выработку управляющих сигналов и даже формирование сигналов системных шин ISA (англ. Industry Standard Architecture bus), PCI (англ. Peripheral Component Interconnect bus) и др. Особенностью использования ПЦОС и ПЛИС в качестве элементной базы нейрокомпьютеров является то, что ориентация в выполнении нейросетевых операций обусловливает, с одной стороны, повышение скоростей обмена между памятью и параллельными арифметическими устройствами, а с другой – уменьшение времени весового суммирования (умножения и накопления) за счёт применения фиксированного набора команд типа регистр-регистр.
В 1992 г. был реализован нейрокомпьютер на базе ПЛИС Xilinx с 400 тыс. вентилей на кристалле.
В том же году разработан аналого-цифровой нейрокомпьютер для распознавания сигналов по форме, предназначенный для входного контроля микросхем памяти серий RUx (x = 2, 4, 8, 12). В нём была реализована континуальная (от лат. continuum – непрерывное, сплошное) трёхслойная нейронная сеть, синтезированная по парадигме нейронных сетей с переменной структурой.
Важным этапом в развитии нейрокомпьютеров было создание в конце 1980-х гг. принципиально новых аппаратно-программных нейронных сетей на базе транспьютерных систем, являющихся прототипом современных супер-ЭВМ. В начале 1990-х гг. в России были разработаны транспьютерные системы для аппаратно-программной эмуляции универсальных и специализированных нейронных сетей (рис. 5).
В начале 21 в. в России выпускаются высокопроизводительные мультипроцессорные платы как в виде виртуальных устройств, так и в виде крейтовых модулей и полнофункциональных вычислителей. Следует упомянуть разработки компаний «Инструментальные системы» (нейрокомпьютер DSP60V6) и «Модуль» (нейрокомпьютеры М1 и М2).
Зарубежные разработки нейрокомпьютеров конца 1990-х – начала 2000-х гг.
Среди большого количества разработок нейрокомпьютеров зарубежных фирм 1990–2000-х гг. необходимо отметить разработки IВМ (цифровой нейрочип Zero Instruction Set Computer – ZISC), Telmat (нейрокомпьютер L-neuro), Intel (аналого-цифровой нейрочип Electrical Trainable Artificial Neural Network – ETANN), Echelon (нейропроцессор NEURON), Fujitsu (нейрокомпьютер Neuro-Turbo), Siemens (нейропроцессор МА16).
Для оценки производительности нейровычислителей используются следующие показатели: CUPS (англ. Connections Update Per Second) – число изменённых значений весов в секунду (оценивает скорость обучения); CPS (англ. Connections Per Second) – число соединений (умножений с накоплением) в секунду (оценивает производительность); CPSP W=CPS/Nw, где Nw – число синапсов в нейроне; CPPS – число соединений примитивов в секунду, CPPS=CPS*Bw*Bs, где Bw, Bs – разрядность весов и синапсов; MMAC – миллионов умножений с накоплением в секунду (таблица 1).
Таблица 1. Сводные данные по производительности некоторых нейропроцессоров
Наименование нейрочипа | Конфигурация | CPS | CPSPW | CPPS | CUPS |
---|---|---|---|---|---|
NLX420 | 32-16, 8 bit mode | 10M | 20K | 640M | – |
100 NAP | 4 chips, 2M wts, 16 bit mantissa | 250M | 125 | 256G | 64M |
WSI (Hitachi) | 576 neuron Hopfield | 138M | 3,7 | 10G | – |
N64000 (Inova) | 64-64-1, 8 bit mode | 871M | 128K | 56G | 220M |
MA16 | 1 chip, 25MHz | 400M | 15M | 103G | – |
ZISC036 | 64 8 bit element inp. Vector | – | – | – | – |
MT19003 | 4-4-1-, 32 MHz | 32M | 32M | 6,8G | – |
MD1220 | 8-8 | 9M | 1M | 142M | – |
NI 1000 | 256 5 bit element inp. Vector | 40 000 vec in sec. | – | – | – |
L-neuro-1 | 1-chip, 8 bit mode | 26M | 26K | 1,6G | 32M |
NM6403 | 8 bit mode, 50MHz | 1200M | 150M | 77G | – |
Текущие разработки
В начале 21 в. наиболее востребованы цифровые нейрокомпьютеры, которые реализуют в различных технологических вариантах, например на базе ПЛИС, систем на кремниевой пластине. Разработки теории нейронных сетей, нейроматематики и нейрокомпьютеров тесно взаимосвязаны. С одной стороны, развитие нейроматематики способствует развитию теории нейронных сетей, которая, в свою очередь, направляет развитие технических разработок нейрокомпьютеров, с другой – уровень развития технических средств определяет диапазон возможностей для построения нейронных сетей и нейросетевых алгоритмов решения задач.
Кардинальным направлением развития нейрокомпьютеров в текущем тысячелетии являются нейрочипы как эффективное средство построения перспективных универсальных и специализированных вычислительных систем для решения сложных задач в нейросетевом логическом базисе.