Рассмотренные выше классы параллельных вычислительных систем ориентированы на решение хорошо формализованных задач, сводящиеся к расчетам по формулам для заданных исходных данных. Однако существуют широкий класс практически важных, но плохо формализованных задач, например, таких как
Нейросетевые вычислительные машины предназначены для решения именно таких задач.
Искусственный нейрон.
Нейрон (см. Рис.1) задается вектором входов нейрона вектором весов входов нейрона , функцией состояния нейрона (), функцией активации нейрона и выходом нейрона .
Рис. 1.  Условное изображение искусственного нейрона.
Функция состояния нейрона определяет состояние нейрона в зависимости от его входов, весов входов и, возможно, предыдущих состояний нейрона. Чаще всего используют следующие функции состояния нейрона, не зависящие от предыдущего состояния.
  1. Скалярное произведение векторов ,:
     (1)

  2. Расстояние между векторами , измеренное в некоторой метрике. Например,
     (2)

Нейрон с функцией состояния (1) называется персептроном, с функцией состояния (2) – нейроном с радиальными базисными функциями.
Функция активации нейрона определяет выход нейрона как функцию его входа - . Наиболее распространенными являются следующие функции активации:
Рис. 2.  Ступенчатая пороговая функция активации.
Рис. 3.  Линейная пороговая функция активации.
Рис. 4.  Сигмоидальная функция активации.
Рис. 5.  Функция активации - гауссиан.
Нейронные сети.
Нейронная сеть образуется путем объединения выходов нейронов с входами нейронов. В зависимости от вида графа межнейронных соединений нейронные сети делятся на следующие два класса сетей:
Рис. 6.  Пример ациклической нейронной сети.
Рис. 7.  Пример циклической нейронной сети.
Нейронная сеть, построенная на основе персептронов, называется персептронной нейронной сетью. Нейронная сеть, построенная на основе нейронов с радиальными базисными функциями, называется нейронной сетью с радиальными базисными функциями.
Нейронные сети делятся на конструируемые и обучаемые сети.
В конструируемых нейронных сетях число нейронов, их тип, граф межнейронных связей и веса входов нейронов определяются при создании сети, исходя из задачи, которую должна решать сеть. Конструируемые нейронные сети используются, например, в качестве ассоциативной памяти (памяти, адресуемой по содержанию).
В обучаемых нейронных сетях их графы межнейронных связей и веса входов нейронов изменяются в процессе обучения нейронной сети.
Обучение обучаемых нейронных сетей
Различают наблюдаемое обучение нейронных сетей, ненаблюдаемое обучение и смешанное обучение:
Введем в рассмотрение пространство входов нейронной сети . Оси координат этого пространства соответствуют входам нейронной сети . В пространстве определим множество допустимых входов нейронной сети (см. рис. 8).

Рис. 8.  Пространство входов нейронной сети X и множество допустимых входов нейронной сети DX. n=2.
В задачах, которые эффективно решаются нейронными сетями, точки множества образуют связные области, все точки каждой из которых обладают одним и тем же свойством, например, принадлежат одному и тому же кластеру.
Задача конструирования или обучения нейронной сети в этих терминах состоит в том, чтобы при принадлежности входного вектора нейронной сети разным областям формировались различные выходные сигналы нейронной сети. Можно сказать, что в результате обучения нейронной сети она запоминает расположение этих областей во множестве .
Запоминание расположения областей по разному реализуется в персептронных нейронных сетях и в нейронных сетях с радиальными базисными функциями.
В персептронных нейронных сетях запоминание областей реализуется с помощью гиперплоскостей (см. рис. 9). Каждый нейрон такой сети весами своих входов задает гиперплоскость

Изменение весов входов, числа нейронов и графа межнейронных связей меняет набор и расположение разделяющих гиперплоскостей.
В нейронных сетях с радиальными базисными функциям каждый нейрон задет значениями весов своих входов координаты центра гипершара, а коэффициентом, связывающим и – радиус этого гипершара (см. рис. 10).
Рис. 9.  К запоминанию областей в персептронных нейронных сетях. N=2.
Рис. 10.  К запоминанию областей в нейронных сетях с радиальными базисными функциям. N=2.
Большинство алгоритмов обучения нейронных сетей используют эвристические алгоритмы формирования графов межнейронных сетей и весов входов нейронов.
Обучение персептронной нейронной сети производится по следующей схеме.
  1. Выбор начальной межнейронной сети. Число входов и выходов сети определяется постановкой задачи. Граф межнейронных связей обычно выбирается эвристически. Например, по одной из эвристик в качестве начальной рекомендуется взять трех-слойную нейронную сеть с числом нейронов внутреннего слоя, равным полусумме числа входов и выходов нейронной сети. При этом каждый нейрон внутреннего слоя должен быть связан с выходами всех входных нейронов сети, а каждый выходной нейрон должен быть связан с выходами всех нейронов внутреннего слоя.
  2. Подбор весов входов нейронов так, чтобы нейронная сеть решала поставленную задачу. Известным алгоритмом определения весов нейронов для персептронных нейронных сетей является алгоритм обратного распространения (см. ниже), для которого доказана его сходимость. Широко используются для подбора весов нейронов различные алгоритмы случайного поиска, например, генетические алгоритмы.
  3. Изменение графа межнейронных связей (если подбор весов не удался) и переход к п. 2. Для этого используют различные эвристики, например, эвристики на основе генетических алгоритмов.
Алгоритм обратного распространения.
Рассмотрим простейшую нейронную сеть - обучаемый нейрон с пороговой функцией активации.
Пусть имеется обучающий набор примеров
Здесь - входные значения -го примера, - правильное выходное значение -го примера.
Считается, что нейрон правильно обучен, если

 (3)

- выход нейрона в j-ом примере, – заданная допустимая величина ошибки.
Алгоритм обратного распространения состоит из следующих основных шагов:
  1. Присвоить весам входов нейрона и порогу функции активации случайные малые значения;
  2. Начиная с первого примера, подать на входы нейрона очередной пример и определить значение выхода нейрона ;
  3. Изменить веса по правилу

  4. Производить шаги 2 – 4 до тех пор, пока не выполнится условие (3).
В алгоритме обратного распространения для многоуровневых нейронных сетей изменяется шаг 3 приведенного выше алгоритма (значительно усложняется).
Интерпретация нейронных сетей.
Алгоритм, который реализует данная нейронная сеть, может быть интерпретирован универсальной ЭВМ или некоторым специализированным устройством.
Интерпретация нейронной сети на универсальной ЭВМ выполняется с помощью специальных программ для однопроцессорных и многопроцессорных ЭВМ. Широко известны программные эмуляторы фирм Brain Maker, Neural Works.
Интерпретация нейронной сети специализированными устройствами. Известны цифровые, аналоговые и гибридные нейрочипы для интерпретации нейронных сетей. Базисной операцией нейрочипов для персептронных нейронных сетей является операция скалярного произведения векторов, для нейронных сетей с радиальными базисными функциям – операция вычисления расстояния между векторами (в некоторой метрике).
Чаще всего используются цифровые нейрочипы. Одним из первых коммерчески доступных нейрочипов был 16-ти разрядный нейрочип Micro Devices MD 1220, который интерпретировал 8 нейронов (разрядность нейрочипа относится к разрядности весов входов и разрядности операций сложения и умножения).
Современные цифровые нейрочипы интерпретируют сотни нейронов.
На основе нейрочипов выпускаются нейросетевые платы и нейрокомпьютеры.
Принято производительность нейрокомпьютерных устройств измерять в количестве соединений в секунду – CPS (connections per second). Под соединением понимается умножение вектора входа нейрона на вектор весов и сложение результата с накопленной функцией. Для измерения производительность нейрокомпьютерных устройств используется также величина «число изменений весов в секунду» - CUPS (connections update per second), которая позволяет оценить скорость обучения нейронной сети.
Современные нейрочипы имеют производительность порядка нескольких сотен MCPS. Производительность нейросетевых плат достигает десятков GCPS.