Главная страница  |  Описание сайта  |  Контакты
УСТРОЙСТВО ДЛЯ МОДЕЛИРОВАНИЯ НЕЙРОННЫХ СЕТЕЙ
УСТРОЙСТВО ДЛЯ МОДЕЛИРОВАНИЯ НЕЙРОННЫХ СЕТЕЙ

УСТРОЙСТВО ДЛЯ МОДЕЛИРОВАНИЯ НЕЙРОННЫХ СЕТЕЙ

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

1. С помощью поисковых систем

   С помощью Google:    

   С помощью Яндекс:  

2. Экспресс-поиск по номеру патента


введите номер патента (7 цифр)

3. По номеру патента и году публикации

2000000 ... 2099999   (1994-1997 гг.)

2100000 ... 2199999   (1997-2003 гг.)
Номер патента: 2045778
Класс(ы) патента: G06G7/60
Номер заявки: 4854341/14
Дата подачи заявки: 11.06.1990
Дата публикации: 10.10.1995
Заявитель(и): Институт кибернетики им.В.М.Глушкова АН УССР (UA)
Автор(ы): Артыкуца Сергей Яковлевич[UA]; Безуглов Геннадий Иванович[RU]; Куссуль Эрнст Михайлович[UA]; Лукович Владимир Владимирович[UA]; Талаев Семен Алексеевич[UA]; Зайцев Вячеслав Кузьмич[RU]
Патентообладатель(и): Институт кибернетики им.В.М.Глушкова АН Украины (UA)
Описание изобретения: Изобретение относится к вычислительной технике и может быть использовано для моделирования нейронных сетей и для решения задач, относящихся к искусственному интеллекту.
Существуют различные типы устройств для моделирования нейронных сетей. Их можно разбить на несколько групп. К первой группе относятся устройства, в которых модели отдельных нейронов и межнейронных связей реализуются в виде электронных устройств, использующих аналоговую или цифровую элементную базу. Общим недостатком таких устройств является их аппаратурная сложность и высокая стоимость, в результате чего невозможно создавать модели больших нейронных сетей, обладающих качествами, которых не имеют нейронные сети малого объема, например возможность фоpмирования нейронных ансамблей сложной структуры. К второй группе можно отнести устройства, в которых модели нейронов или (и) модели межнейронных связей выполнены средствами функциональной электроники, например голографические, оптоэлектронные модели. Общим недостатком этих моделей является недостаточная гибкость, большая сложность перестройки структуры сети, сложность изменения функциональных характеристик нейронов и межнеройнных связей. Другим недостатком, свойственным большинству таких устройств, является неудовлетворительное состояние технологии производства элементов, необходимых для создания таких моделирующих устройств. К третьей группе можно отнести универсальные и специализированные программируемые вычислительные устройства, которые используются для моделирования нейронных сетей. При этом достигается гибкость изменения межнейронных связей и характеристик нейронов, можно моделировать большие нейронные сети. Основным недостатком таких устройств является низкое быстродействие. К этой группе можно отнести ЭВМ с дополнительным арифметическим сопроцессором, обладающим высоким быстродействием. Быстродействие моделирующего комплекса на базе ЭВМ и сопроцессора повышается по сравнению с обычной ЭВМ. Это позволяет использовать такой комплекс для исследовательских задач. Однако получаемое быстродействие недостаточно для решения прикладных задач с помощью моделей нейронных сетей. Недостатком комплекса является также большая стоимость.
Наиболее близкой к предлагаемому устройству является "интеллектуальная" память фирмы "Oxford Computers", предназначенная для моделирования нейронных сетей. Устройство этой памяти выбрано в качестве прототипа.
На фиг. 1 представлено устройство-прототип, состоящее из следующих блоков: блок 1 оперативное запоминающее устройство, включающее память матрицы бинарных весовых коэффициентов синаптических связей нейронов и память векторов, объем которой (32 х 256) бит; блок 2 логическое устройство; блок 3 сдвиговый регистр; блок 4 блок логики накопления; блок 5 блок управления.
На фиг. 2 представлена схема блока управления: блок 6 микропроцессор; блок 7 контроллер запоминающего устройства; блок 8 запоминающее устройство; блок 9 программируемый интерфейс 1; блок 10 программируемый интерфейс 2. Блоки 6, 7, 8, 9, 10 реализуются с помощью стандартных устройств.
Устройство-прототип работает на основе реализации умножения вектора на матрицу, т. е. операции, которая многократно используется при моделировании нейронных сетей и является наиболее трудоемкой. Названная операция служит для определения входных возбуждений нейронов на каждом такте работы сети.
Для реализации модели нейронной сети вектор активности нейронов подается в оперативное запоминающее устройство, где хранятся синаптические веса нейронов, причем в каждой строке матрицы размещаются входные синаптические веса одного нейрона (как синаптические веса, так и выходные сигналы могут принимать только одно из двух значений: 0 или 1) (блок 1). Определение входных возбуждений нейронов осуществляется последовательно-параллельной процедурой. Выходной вектор поразрядно умножается на первую строку матрицы в блоке 2. В блоке 3 осуществляется сдвиг полученного вектора и в блоке 4 осуществляется подсчет единиц в полученном векторе. На выходе блока 4 получаем суммарное входное возбуждение для первого нейрона. Проделав аналогичную процедуру для всех 256 строк матрицы получим входное возбуждение для всех 256 нейронов. Блок 5 хранит алгоритм работы нейронной сети и обеспечивает выдачу управляющих сигналов всем блокам и обмен с внешними устройствами.
Устройство прототип имеет следующие недостатки:
низкое быстродействие, поскольку для определения входного возбуждения необходимо выполнить столько операций, сколько строк в матрице, следовательно, столько, сколько нейронов в нейронной сети. При большом количестве активных нейронов это приводит к сравнительно низкому быстродействию;
низкую устойчивость работы, поскольку устройство-прототип не имеет аппаратурных средств регулирования активности нейронной сети.
Показано, что для существенного увеличения быстродействия сети необходимо применить "разреженное" кодирование, т.е. такие векторы возбуждения нейронов, у которых количество единичных элементов во много раз меньше общего количества нейронов. Показано также, что используя разреженное кодирование, можно увеличить не только быстродействие, но и улучшить устойчивость работы сети. Для этого при разреженном кодировании необходимо иметь регулятор активности и устройство, которые позволяют при умножении разреженного вектора на матрицу обращаться только к тем строкам матрицы, которые соответствуют единичным элементам умножаемого вектора. Устройство-прототип не имеет таких возможностей.
Существует устройство, в котором для определения входной активности нейронов используются двоичные счетчики, тактируемые устройством управления. Матрицы синaптических весов хранится в отдельных устройствах памяти и определение входной активности осуществляется считыванием тех строк матрицы, которые соответствуют единичным элементам входного вектора. Такое устройство увеличивает быстродействие, но в свою очередь имеет недостатки. Определение порогов срабатывания нейронов осуществляется за счет ввода дополнительных классифицирующих паттернов, что приводит к дополнительным затратам памяти основной составляющей всех аппаратных затрат. Кроме того, порог определяется заранее, без учета вычисленных значений входного возбуждения нейронов. Такой подход приводит к неустойчивой работе сети и к слишком жестким требованиям на распознавание классифицирующего паттерна.
Целью изобретения является увеличение быстродействия и расширения класса модeлируемых нейронных сетей.
Поставленная цель достигается за счет того, что вводится стековая память 16, первый и второй двоичные счетчики 14, 15, первый и второй блоки сравнения 13, 17 и формирователь адресов 12 оперативного запоминающего устройства, причем последовательный выход сдвигового регистра 3 соединен с последовательным входом этого же регистра 3 и с первым входом двоичного счетчика 15, выходы которого соединены с адресными входами стековой памяти 16 и первым входам первого блока сравнения 17, вторые входы блока сравнения 17 соединены с первыми выходами блока управления 5. Девятый выход блока управления 5 соединен с входами второго двоичного счетчика 14, выходы которого соединены с первыми входами блока сравнения 13 и входами данных стековой памяти 16, одиннадцатый выход блока управления 5 соединен с вторым входом блока сравнения 13, выход которого соединен с третьим входом блока управления 5, выходы данных стековой памяти 16 соединены с вторыми входами формирователя адресов 12, вторые выходы блока управления 5 соединены с первыми входами формирователя адресов 12, выходы которого соединены с младшими разрядами адресных входов оперативного запоминающего устройства 1. Высокое быстродействие предлагаемого устройства может быть получено только за счет совместного применения стековой памяти, счетчиков, формирователя адресов, соединенных предложенным образом. Ни одно из этих устройств в отдельности не дает возможности повысить быстродействие устройства. Регулирование активности предлагаемой нейронной сети может быть получено только за счет использования первого двоичного счетчика и первого блока сравнения, соединенных так, как предложено в заявляемом устройстве.
На фиг. 3 дана структурная схема предлагаемого устройства.
Схема содержит следующие блоки: оперативное запоминающее устройство 1, логическое устройство 2, мультиплексор каналов 18, сдвиговый регистр 3, блок двоичных счетчиков (блок 11), блок управления 5, формирователь адресов 12, второй блок сравнения 13, второй двоичный счетчик 14, первый двоичный счетчик 15, стековая память 16, первый блок сравнения 17.
Блоки соединены между собой следующим образом: выходы оперативного запоминающего устройства 1 подключены к первым входам логического устройства 2 однонаправленной шиной данных (количество разрядов равно количеству нейронов n). Выходы логического устройства 2 подключены к первым входам мультиплексора каналов 18. Выход мультиплексора каналов 18 подключен к входам занесения данных в сдвиговый регистр 3. Параллельные выходы сдвигового регистра 3 подключены к суммирующим входам (D) блока двоичных счетчиков (блок 11), к входам оперативного запоминающего устройства 1 и к вторым входам логического устройства 2. Последовательный выход сдвигового регистра 3 подключен к первому входу первого двоичного счетчика 15, к второму входу блока управления 5 и к последовательному входу этого же сдвигового регистра 3. Старшие разряды выходов набора двоичных счетчиков подключены к второму входу мультиплексора каналов 18. Выходы первого двоичного счетчика 15 подключены к адресным входам стековой памяти 16 и первым входам первого блока сравнения 17. Первые выходы блока управления 5 подключены к вторым входам первого блока сравнения 17, выход которого подключен к первому входу блока управления 5. Вторые выходы блока управления 5 подключены к первым входам формирователя адресов 12. Третий выход блока управления 5 подключен к первым синхронизирующим входам (С1) набора двоичных счетчиков. Четвертый выход блока управления 5 подключен к вторым синхронизирующим входам (С2) набора двоичных счетчиков. Пятые входы блока управления 5 подключены к управляющим входам оперативного запоминающего устройства 1. Шестые выходы блока управления 5 подключены к управляющим входам логического устройства 2. Седьмые выходы блока управления 5 подключены к управляющим входам мультиплексора каналов 18. Восьмые выходы блока управления 5 соединены с управляющими входами сдвигового регистра 3. Девятый выход блока управления 5 соединен с входом второго двоичного счетчика 14, выходы которого соединены с первыми входами второго блока сравнения 13 и входами данных стековой памяти 16, а выходы данных стековой памяти 16 соединены с вторыми входами формирователя адресов 12, выходы которого соединены с младшими разрядами адресных входов оперативного запоминающего устройства 1. Десятый выход блока управления 5 подключен к второму входу первого двоичного счетчика 15, выход которого подключен к первому входу стековой памяти 16 и первому входу первого блока сравнения 17. Одиннадцатый выход блока управления 5 подключен к второму входу второго блока сравнения 13, выход которого подключен к третьему входу блока управления 5. Блок управления 5 имеет двунаправленную шину В12 для связи с внешними устройствами. Внутренняя структура блока управления совпадает со структурой блока управления прототипа.
На фиг. 4 показан формирователь адресов. Он состоит из сумматора 19 и мультиплексора адреса 20. Сумматор предназначен для сложения базового адреса, поступающего от программного интерфейса, с номером активного нейрона, в результате чего получается адрес в матрице связей, а мультиплексор позволяет переключать адресацию ОЗУ на непосредственное управление от программируемого интерфейса для выполнения вспомогательных операций.
Назначение основных узлов устройства для моделирования нейронных сетей заключается в следующем:
оперативное запоминающее устройство 1 предназначено для хранения весовых коэффициентов синаптических связей нейронов, для хранения текущих значений возбуждения на входах и выходах нейронов, для хранения промежуточных величин, получаемых при вычислениях. Оперативное запоминающее устройство имеет структуру массива слов одинаковой разрядности, например 256 разрядов;
логическое устройство 2 предназначено для выполнения поразрядных логических операций над словами полной длины, например 256;
мультиплексор каналов 18 предназначен для подключения выходов блока двоичных счетчиков (блок 6) или выходов логического устройства 2 к входам сдвигового регистра 3. Он позволяет записать в сдвиговый регистр 3 либо результаты работы блока двоичных счетчиков либо результаты работы логического устройства 2;
сдвиговый регистр 3 предназначен для приема и хранения результатов операций логического устройства 2 и набора двоичных счетчиков (блок 6), для сдвига этих результатов и передачи их в первый двоичный счетчик 15;
блок двоичных счетчиков 11 предназначен для вычисления входного возбуждения нейронов. Количество двоичных счетчиков равно количеству нейронов и равно также количеству разрядов в слове оперативного запоминающего устройства 1 и логического устройства 2. Выходной сигнал из каждого разряда сдвигового регистра 3 подключен к счетному входу соответствующего двоичного счетчика. От блока управления 5 в двоичные счетчики поступают два сигнала синхронизации (общие для всех счетчиков). В качестве выхода каждого счетчика берется выход старшего разряда этого счетчика, например выход восьмого разряда, если счетчик восьмиразрядный;
блок управления 5 хранит алгоритм работы моделируемой нейронной сети и обеспечивает выдачу управляющих сигналов всем блокам и обмен данными с внешними устройствами;
стековая память 16 предназначена для формирования и хранения адресов тех строк в матрице синаптических связей, которые соответствуют возбужденным нейронам;
первый счетчик 15 предназначен для формирования текущего адреса стековой памяти 16 и для вычисления суммарного количества единиц, хранящихся в сдвиговом регистре 3;
второй счетчик 14 предназначен для определения номеров единичных разрядов в сдвиговом регистре 3 (номеров активных нейронов);
формирователь адресов 12 предназначен для формирования адресов слов в оперативном запоминающем устройстве 1;
первый блок сравнения 17 предназначен для сравнения общего количества единичных элементов в сдвиговом регистре 3 с требуемым количеством единичных элементов, которое устанавливает блок управления 5;
второй блок сравнения 13 предназначен для сравнения количества сдвигов во втором счетчике 14 с количеством разрядов n.
Предлагаемое устройство работает в различных режимах: режиме загрузки, режиме кодирования входной информации, режиме облучения, режиме ассоциативного воспроизведения и режиме декодирования.
В режиме загрузки из внешнего устройства, например из управляющей ЭВМ, по двунаправленной шине В12 в блок управления 5 загружается программа моделирования нейронной сети и исходные данные, необходимые для моделирования.
В режиме кодирования информации осуществляется перевод параметров, подаваемых на вход нейронной сети, в бинарный вектор разности n, в котором единичным элементам ставятся в соответствие возбужденные нейроны сети. При этом соблюдаются следующие условия кодирования: количество единичных элементов (m) в векторе-коде должно быть примерно постоянным и во много раз меньшим, чем количество нейронов в сети (m<< n); входные параметры кодируются подмножествами случайно выбранных единичных элементов, причем различным параметрам соответствуют различные статистически независимые подмножества (пересечения подмножеств допускаются); при подаче на вход одновременно нескольких входных параметров результирующий код определяется как поразрядная дизъюнкция исходных кодов, которая в дальнейшем подвергается нормированию (удалению избыточного количества единичных элементов). Кодирование осуществляется следующим образом: для каждого из входных параметров формируется с помощью датчика псевдослучайных чисел n-мерный вектор, содержащий m единичных элементов. Этот вектор записывается в определенное место оперативного запоминающего устройства 1 и хранится там в течение всей работы нейронной сети. Датчик псевдослучайных чисел реализуется программно с использованием массива исходных случайных чисел, хранящихся в оперативном запоминающем устройстве 1, логического устройства 2, мультиплексора каналов 18 и сдвигового устройства 3. При поступлении на вход нейронной сети некоторого набора параметров х1, хk, (где k количество параметров) коды этих параметров Х1, Хk поочередно извлекаются из оперативного запоминающего устройства 1 и дизъюнктивно объединяются в сдвиговом регистре 3. Полученный в результате код Y (X1U X2UUXk) записывается в рабочую ячейку оперативного запоминающего устройства 1. Код, хранящийся в сдвиговом регистре 3, циклически сдвигается на случайно выбранное количество разрядов, после чего выполняется операция Z Z& Y (где Z код, хранящийся в сдвиговом регистре 3; Y код, хранящийся в рабочей ячейке оперативного запоминающего устройства 1; знак конъюнкции отрицание). Описанная операция продолжается до тех пор, пока в коде Z количество единиц не станет меньше m. Это условие проверяется первым блоком сравнения 17. Результирующий вектор называется нормированным входным вектором нейронной сети. На этом заканчивается процесс кодирования входной информации.
Если нейронная сеть не была облучена прежде, то режим облучения начинается с обнуления участка памяти, отведенного для хранения матрицы весов межнейронных связей. После этого на вход нейронной сети подаются наборы таких параметров, которые должны быть ассоциативно связаны друг с другом. Каждый поданный на вход набор параметров кодируется и полученный в сдвиговом регистре 3 код набора запоминается в рабочей ячейке оперативного запоминающего устройства 1. Последующий процесс облучения осуществляется в два этапа. Первый этап начинается с обнуливания содержимого второго двоичного счетчика 14. Содержимое сдвигового 3 начинает сдвигаться так, что при каждом сдвиге добавляется единица во второй двоичный счетчик 14. Блок управления 5 анализирует содержимое разряда, выдвигаемого из сдвигового регистра 3 и, если содержимое равно единице, то в первый двоичный счетчик 15 добавляется единица и в стековую память 16 записывается содержимое второго двоичного счетчика по адресу, определяемому первым счетчиком. Поскольку во втором двоичном счетчике формируется номер выдвигаемого разряда исходного вектора Z, в стековой памяти 16 оказывается записанным номер той строки в матрице межнейронных связей, которая соответствует возбужденному нейрону. Эта процедура повторяется до тех пор, пока содержимое второго счетчика 14 не станет равным n. Это условие проверяется в втором блоке сравнения 13.
На втором этапе обучения из стековой памяти 16 последовательно извлекаются номера строк матрицы связей, соответствующие активным нейронам и эти номера преобразуются в адреса оперативного запоминающего устройства 1. Их формирование осуществляется формирователем адреса 12 путем прибавления к содержимому стека начального адреса матрицы связей, поступающего из блока управления 5. Каждая найденная строка матрицы связей Мi подвергается следующей операции:
Mi' Mi U (Z P), где Р вектор, формируемый с помощью датчика псевдослучайных чисел.
При работе датчика псевдослучайных чисел используются ОЗУ 1, логическое устройство, мультиплексор каналов, сдвиговый регистр SRG 4. Полученный вектор Мi' записывается в ОЗУ 1 по тому же адресу, где хранился вектор Мi. Процедура продолжается до тех пор, пока из стековой памяти 16 не будут выбраны все номера активных нейронов. Эксперименты с таким алгоритмом обучения показали, что в нейронных сетях формируются структуры, аналогичные структурам, которые получаются в аналоговых устройствах, моделирующих нейронные сети.
В режиме ассоциативного восстановления на вход подаются такие наборы входных параметров, в которых часть параметров совпадает с одним из наборов, для которых проводилось обучение, а другая часть выбирается случайно, в качестве шумовой составляющей. Задача нейронной сети заключается в восстановлении недостающих параметров из зашумленного набора и устранении шумовой составляющей. Кодирование входного набора параметров в этом режиме осуществляется точно так же, как и в режиме обучения. Сам процесс ассоциативного восстановления осуществляется в процессе циклической работы сети, причем в каждом цикле работа сети осуществляется в три этапа.
На первом этапе определяются и записываются в стековую память 16 номера активных нейронов. Этот этап выполняется точно так же, как и в режиме обучения. На втором этапе из матрицы связей последовательно прочитываются те строки, которые соответствуют активным нейронам. Эти строки без изменения передаются в сдвиговый регистp 3, после чего подаются на входы двоичных счетчиков 6. При подаче каждой строки на синхровходы С1 двоичных счетчиков из блока управления 5 поступает сигнал, разрешающий прибавить к содержимому каждого счетчика содержимое соответствующего разряда сдвигового регистра 3. В конце этапа в каждом двоичном счетчике 6 образуется сумма, равная входному возбуждению соответствующего нейрона. На третьем этапе осуществляется выбор порога срабатывания нейронов (общего для всех нейронов сети), обеспечивающего требуемое количество m активных нейронов. Этот этап выполняется следующим образом: через мультиплексор каналов 18 содержимое старших разрядов двоичных счетчиков передается в сдвиговый регистр 3, в котором полученный двоичный код сдвигается и в первом двоичном счетчике 15 определяется общее количество единичных элементов, которое равно количеству активных нейронов при условии, что порог считается равным 2k-1, где k количество разрядов счетчиков. Величина k выбирается такой, чтобы требуемый порог срабатывания нейронов был заведомо меньшим, чем 2k-1.
В этом случае после описанной процедуры количество единиц в первом двоичном счетчике 15 будет меньше m, о чем в блок управления 5 поступит соответствующий сигнал от первого блока сравнения 17. Для того чтобы определить действительный требуемый порог, блок управления 5 подает на вход счетчиков синхросигнал С2, в результате чего к содержимому всех счетчиков прибавляется по единице. После этого выходные сигналы двоичных счетчиков через мультиплексор каналов 18 подаются на сдвиговый регистр 3 и после сдвига полученного кода в первом двоичном счетчике 15 снова определяется количество единичных элементов (активных нейронов). Полученное количество снова сравнивается с величиной m, поступающей из блока управления 5 на входы первого блока сравнения 17. Эта процедура повторяется до тех пор, пока количество активных нейронов не превзойдет величину m за счет увеличения содержимого двоичных счетчиков. Нетрудно убедиться, что эта процедура эквивалентна нахождению порога О такого, при котором число активных нейронов оказывается ближайшим возможным числом, превышающим m, причем О2k-1 l, где l суммарное число импульсов, поданных блоком управления 5 на синхровходы двоичных счетчиков 11.
Циклическое повторение описанных трех этапов приводит к восстановлению недостающих элементов заученного кода и устранению шумовых составляющих.
В режиме декодирования нейронная сеть должна расшифровать, каким параметрам соответствуют возбужденные нейроны в полученном векторе. Декодирование осуществляется следующим образом. Полученный вектор поочередно сравнивается со всеми векторами-кодами индивидуальных параметров, хранящимися в оперативном запоминающем устройстве 1. После каждого сравнения, выполняемого логическим устройством 2, полученный в сдвиговом регистре 3 код сдвигается и первый двоичный счетчик определяет общее количество единичных элементов, совпадающих у выходного вектора с вектором-кодом очередного параметра. Если полученное количество совпадающих элементов превышает некоторый порог, устанавливаемый блоком управления 5 на входах первого блока сравнения 17, то считается, что код данного параметра присутствует в результирующем выходном векторе нейронной сети.
Предлагаемое устройство обладает следующими преимуществами:
расширение класса моделируемых сетей позволяет решать новые задачи, например задачи распознавания образов, в которых поверхность, разделяющая распознаваемые классы образов, существенно нелинейна;
предлагаемое устройство имеет быстродействие, превышающее в 10 раз быстродействие прототипа, поскольку прототип ориентирован на перебор всех нейронов на каждом такте моделирования нейронной сети, а предлагаемое устройство сконструировано так, что оперирует только с активными нейронами, доля которых в сетях с разреженным кодированием составляет несколько процентов или несколько десятых долей процента.
Формула изобретения: УСТРОЙСТВО ДЛЯ МОДЕЛИРОВАНИЯ НЕЙРОННЫХ СЕТЕЙ, содержащее блок управления, связанный с внешними устройствами двунаправленной шиной обмена, оперативное запоминающее устройство, логическое устройство, мультиплексор каналов, сдвиговый регистр, блок двоичных счетчиков, причем выходы оперативного запоминающего устройства соединены с первыми входами логического устройства, выходы которого соединены с первыми входами мультиплексора каналов, выходы которого соединены с параллельными входами занесения данных в сдвиговый регистр, выходы которого соединены с входами оперативного запоминающего устройства, суммирующими входами блока двоичных счетчиков и вторыми входами логического устройства, а выходы блока двоичных счетчиков соединены с вторыми входами мультиплексора каналов, пятые выходы блока управления соединены с управляющими входами оперативного запоминающего устройства, третий выход блока управления соединен с первыми синхронизирующими входами набора двоичных счетчиков, четвертый выход блока управления соединен с вторыми синхронизирующими входами блока двоичных счетчиков, отличающееся тем, что, с целью увеличения быстродействия и расширения класса моделируемых нейронных сетей, устройство содержит стековую память, первый и второй двоичные счетчики, первый и второй блоки сравнения и формирователь адресов, причем последовательный выход сдвигового регистра соединен с последовательным входом этого же регистра и с суммирующим входом первого двоичного счетчика, выходы которого соединены с адресными входами стековой памяти и первыми входами первого блока сравнения, вторые входы блока сравнения соединены с первыми выходами блока управления, девятый выход блок управления соединен с суммирующим входом второго двоичного счетчика, выходы которого соединены с первыми входами второго блока сравнения и входами данных стековой памяти, одиннадцатый выход блока управления соединен с вторым входом второго блока сравнения, выход которого соединен с третьим входом блока управления, выходы данных стековой памяти соединены с вторыми входами формирователя, вторые выходы блока управления соединены с первыми входами формирователя адресов, выходы которого соединены с адресными входами оперативного запоминающего устройства.