Адаптивная параллельно-конвейерная нейронная сеть для коррекции ошибок
Иллюстрации
Показать всеИзобретение относится к вычислительной технике и может быть использовано для построения модулярных нейрокомпьютеров. Техническим результатом является уменьшение аппаратурной сложности, расширение функциональных возможностей и повышение скорости коррекции ошибок. Для этого в устройство введен блок обнаружения ошибок, блок реконфигурации и локализации ошибок, блок исправления ошибок, блок нейронной сети конечного кольца формирования цифр в представлении обобщенной позиционной системы. 1 ил.
Реферат
Изобретение относится к области вычислительной техники и может быть использовано для построения модулярных нейрокомпьютеров.
Известно устройство для контроля и исправления ошибок в избыточном модулярном коде (патент №2022472, RU 5 Н 03 М 13/00), содержащее блоки сравнения, блоки умножения, блоки элементов «ИЛИ», блоки элементов «И», блоки преобразователей и вычислителей.
Недостатками устройства являются сложность аппаратной реализации и низкое быстродействие.
Наиболее близким к данному изобретению является устройство для обнаружения ошибок в информации, представленной в системе остаточных классов (патент №2022471, RU 5 Н 03 М 13/00), которое содержит блок преобразования СОК-ОПС, блок вычисления индекса числа, блок вычисления дополнительного кода индекса, сумматора, блок вычисления антииндекса суммы, блок сравнения, блок умножения на константу, счетчик.
Однако это устройство используется только при одном основании, что резко снижает его работоспособность в случае появления одновременно ошибок по двум основаниям.
Цель данного изобретения - уменьшить аппаратурную сложность, расширить функциональные возможности и повысить скорость коррекции ошибок. Это достигается тем, что в устройство введен блок обнаружения ошибки, блок реконфигурации и локализации ошибки и блок исправления ошибки.
На чертеже представлена схема предложенного устройства, которое содержит блок нейронной сети конечного кольца (НСКК) формирования цифр в представлении ОПС - 23, блок обнаружения ошибок - 26, блок реконфигурации и локализации ошибки - 22, блок исправления ошибки - 25.
Стандартная система счисления избыточных чисел характеризуется рядом k-парных простых чисел {р1,р2...pn}, где (pi,pj)=1 для i≠j. Рассмотрим комплексно вопросы обнаружения, локализации и исправления ошибок в модулярных вычислительных структурах и их реализацию на основе использования нейронных сетей.
Известно, что система со смешанным основанием, иногда называется обобщенной позиционной системой счисления (ОПС), используется для реализации алгоритмов нахождения позиционных характеристик непозиционного представления чисел. Как будет показано ниже, коэффициенты системы счисления со смешанным основанием могут быть использованы для определения ошибки, ее локализации, а также для исправления ошибки. Проблема состоит только в том, что необходимо найти методы и алгоритмы быстрого нахождения коэффициентов этой системы.
Целое число А∈[0,Р-1], где Р=р1·р2·...pn может быть представлено в виде следующего выражения
где ai - коэффициенты ОПС; рi - основания системы счисления, для i=[1,n].
Как видно из выражения (1), система со смешанным основанием представляет собой позиционную систему счисления, поэтому коэффициенты в представлении со смешанными основаниями могут быть использованы для определения знака, сравнения абсолютных величин, определения переполнения и др., в то время как числа, представленные в остатках, являющиеся непозиционными, не могут этого делать. Известен итеративный алгоритм преобразования цифр из остаточного представления в представление со смешанным основанием, который может быть осуществлен в магистральном (потоковом) варианте. Основным недостатком этого алгоритма является большое время преобразования, которое определяется (n-1) циклами синхронизации. Для ускорения преобразования данных, представленных в СОК, в представлении обобщенной позиционной системы предлагается следующий способ.
Пусть α1, α2...αn представляет собой целые числа в системе остаточных классов по модулю рi, тогда:
где А≤Р-1; Ai≤Р-1 для i=1,2,...n.
Выражение (2) числа А представляет собой набор i-х ортогональных проекций числа А.
Представим Аi в обобщенной позиционной системе счисления
Ai=aijqi+aij+1qi+1+...+ainqn, где и q1=1.
Из выражений (2) и (3) видно, что оба представления числа Аi в остаточных цифрах и в обобщенной позиционной системе имеет (i-1) нулей перед первым значащим элементом (αi и αij). Этот факт имеет место по определению вследствие того, что αi по модулю рj равно нулю (для j<i). Поэтому любая цифра в представлении обобщенной позиционной системы счисления весомозначная по qk для k<i приведена к нулевому значению. На основании (2) и (3) число А может быть записано в виде суммы остаточных представлений Аi(i=1,2,...n) по модулю Р
Цифры суммы Ai могут быть получены из цифр ai в представлении обобщенной системы счисления
где аi<рi и , поскольку представление в обобщенной позиционной системе счисления числа в области [0,P-1] единственное. Отсюда следует, что аi является цифрой в представлении обобщенной позиционной системе счисления.
Из выражений (4) и (5) можно записать
где Вi - ортогональные базисы (i=1,2,...n);
- цифры СОК;
bij - ортогональные базисы, представленные в обобщенной позиционной системе, для i=1,2...n.
На основании (6) запишем выражение для
где аi - коэффициенты ОПС;
αi - разрядные цифры СОК;
bij - ортогональные базисы в ОПС.
Цифры аi в представлении ОПС получаются суммированием по модулю рi всех произведений αibij и переносом, генерируемым при формировании аi-1. Перенос генерируется как число раз, когда сумма цифр в ОПС переполняется по модулю рi. Этот процесс используется для формирования цифр аi+1. Последний перенос m, генерируемый при получении последней цифры числа в ОПС ai, представляет собой абсолютную величину m·p1p2...pn или mP, и поэтому он отбрасывается.
Рассмотренный метод может быть выполнен в параллельном режиме за два цикла синхронизации. Выигрыш в быстродействии данного метода с итеративным методом очевиден, поскольку уменьшает время преобразования с (n-1) циклов до двух циклов. Цифры αi могут принимать значения от 0 до рi-1, a bij являются константами, поэтому произведения αibij можно поместить в ПЗУ или в весовые коэффициенты связей между нейронами. Адресами произведений αibij являются остаточные цифры αi. Для иллюстрации этого алгоритма приведем пример 1.
Пусть рi={2,3,5,7}, P=2·3·5·7=210, B1=105, В2=70, В3=126, В4=120.
Тогда из выражения (1,7) определим bij:
b11=1, b12=1, b13=2, b14=3;
b21=0, b22=2, b23=1, b24=2;
b31=0, b32=0, b33=1, b34=4;
b41=0, b42=0, b43=0, b44=4.
Пусть А=3=(1,0,3,3) представлено в СОК, тогда в ПЗУ поместим следующие числа:
α1b11=1, α1b12=1, α1b13=2, α1b14=3;
α2b21=0, α2b22=0, α2b23=0, α2b24=0;
α3b31=0, α3b32=0, α3b33=3, α3b34=5;
α4b41=0, α4b42=0, α4b43=0, α4b44=5.
Применительно к нейронным сетям, эти произведения будут образованы путем умножения входных сигналов на весовые коэффициенты.
Преобразование числа показано ниже. Здесь показана реализация с использованием ПЗУ. При нейросетевой реализации данного алгоритма роль ПЗУ выполняют Синаптические веса нейронов.
Проверим результат оценки величины А с помощью метода ортогональных базисов и метода обобщенной позиционной системы счисления (1, 6):
А=α1В1+α2B2+...+αnBn(modP)=1·105+0·70+3·126+3·120(mod210)=
=105+0+378+360(mod210)=843mod210=3
A=a1+a2p1+a3p1p2+a4p1p2p3=a1+a22+a36+a430=1+2+0+0=3.
Из примера видно, что алгоритмы обоих методов дают одно и то же позиционное число, которое равно исходному числу А=3.
Рассмотренный метод может быть выполнен в параллельном режиме, что и позволяет провести высокоскоростное преобразование числа от остаточного представления к представлению со смешанным основанием.
Для определения ошибки или переполнения машинного диапазона чисел, а также для их устранения используются избыточные СОК, имеющие n рабочих и r контрольных оснований. Известно, что для практического применения достаточно иметь два избыточных основания, т.е. r=2, тогда система гарантировано обнаруживает появление одновременно двух ошибок и одну ошибку исправляет. Если в числе А=(а1,а2...аn,аn+1,аn+2) избыточные цифры аn+1=аn+2=0, тогда это число безошибочное. Аналогично определяем и переполнение диапазона представимых чисел. Если в примере 1, приведенном выше, принять в качестве рабочих оснований р1 и р2, а в качестве избыточных - р3 и р4, то видно, что в данном случае переполнения машинного диапазона и ошибок в числе нет, так как цифры избыточных оснований а3=а4=0.
Таким образом, для определения ошибки и переполнения необходимо сравнить избыточные цифры ОПС с нулем.
Теперь рассмотрим метод локализации ошибки.
Ошибка происходит в том случае, когда правильное число А, представленное n+r остаточными цифрами А=(α1,α2...αi...αn+r), меняется на другое число , если ошибка произошла в i-й остаточной цифре, то неправильное число переходит в запрещенный интервал. Задача состоит в определении модуля ИСОК, ошибка по которому привела к такой ситуации.
Для определения места ошибки используется метод проекций. Проекция рi обозначается как A=(α1,α2...αi-1,αi+1...αn+r), т.e. А представлено в сокращенной (усеченной) ИСОК при исключении i-й остаточной цифры. Поскольку ИСОК является невзвешенной системой, исходная информация сохраняется, когда эта избыточность изменяется. Каждая pi-проекция может рассматриваться как представление А в определенном пространстве первоначальной системы. Следовательно, если в ИСОК при r≥2 окажется такая ситуация, что для любого произвольного числа А одна из проекций числа Аi будет правильной для любого i=1,...,(n+r), тогда все другие проекции Хj при j≠1 являются неправильньми и остаточная цифра αi определяется как ошибочная. В этом состоит суть метода локализации ошибки.
Правильность проекции можно определить из соответствующих цифр числа в ОПС, равных нулю. Таким образом, локализация ошибки может быть решена путем вычисления цифр ОПС для (n+r) проекций и определения, которые из избыточных цифр ОПС нулевые.
Проекция в ОПС представляется выражением
где 0≤аi<рi; i=1,2...(n+r), а произведение считается равным 1.
Если ограничение k≠j передвигать при расчете Аn+r, тогда представление ОПС определяется на полное пространство ИСОК и первые коэффициенты Аn+r-1 определяют проекцию Аn+r. Это свойство характеризует математический принцип, который позволяет вычислять цифры со смешанным основанием для всех проекций, при этом если j-я остаточная цифра аj ошибочная, то проекция Аj не содержит ошибки, потому что аj отброшена. Определить ошибочную остаточную цифру и заменить ее на правильную цифру аj≡Ajmodpj возможно последовательным формированием элементов аj для каждой проекции и проверкой аj на равенство нулю. Таким образом, для исправления ошибок необходимо, прежде всего, определить номера оснований, которым соответствуют искаженные символы.
Рассмотрим принцип исправления ошибок.
После определения основания, по которому произошла ошибка, необходимо найти коэффициенты ОПС, а затем по найденным коэффициентам определить цифры ai, представленные в СОК по основаниям р1, р2...pn.
В ОПС число представляется выражением (1). Найдем его представление в СОК. Пусть известно представление числа А в ОПС.
A=[a1,a2...an]
Так как основания в СОК постоянны, то представление чисел Q1=1, Q2=p1, Q3=p1p2,...Qn=p1p2...pn можно заранее вычислить в ОПС:
Тогда из выражения (1) следует, что цифры α1, α2...αn можно найти из сравнений:
Если в системе (11) числа а1, а2...аn считать известными, то решение этой системы дает значения α1, α2...αn.
Пример 2. Перевести число А=[1,1,0,0], представленное в ОПС, в СОК по основаниям р1=2, р2=3, р3=5, р4=7.
Представим числа Q1, Q2...Qn в СОК:
Q1=1=(1,1,1,1);
Q2=2=(0,2,2,2);
Q3=6=(0,0,1,6);
Q4=30=(0,0,0,2);
На основании выражения (11) запишем
А=(1,1+1·2,1+1·2+0·1,1+1·2+0·6+0·2=(1,0,3,3).
Таким образом, число А=[1,1,0,0], представленное в ОПС, выглядит как число (1,0,3,3), представленное в СОК по основаниям р1=2, р2=3, р3=5, р4=7.
Конечный процесс обнаружения, локализации и исправления ошибки может быть представлен в виде обобщенного алгоритма:
1. Вычисление цифр ОПС. Если А правильное, тогда ошибки нет, если А
неправильное - есть ошибка и тогда перейдем к шагу 2.
2. Вычисление цифр ОПС проекций числа А, если проекция Аj, где j=1,2,...(n+r), неправильная, то в разряде j нет ошибки, если проекция правильная, то в данном разряде есть ошибка и тогда перейдем к шагу 3.
3. Вычисление чисел СОК αj согласно выражению (11) и переход к шагу 4.
4. В исходном числе А, представленном в СОК, заменяем цифру αj. На этом процесс корректирования ошибки заканчивается.
Приведенный алгоритм может быть реализован на основе применения нейронных сетей конечного кольца.
Числовая иллюстрация.
Принципы обнаружения, локализации и исправления ошибок в избыточной СОК могут быть продемонстрированы с помощью числового примера. Предположим, необходимо реализовать функциональный блок модулярного нейрокомпьютера для коррекции ошибок. Пусть набор модулей рi, на которых основаны каналы модулярного нейрокомпьютера такой же, как и в примере 1. Выберем модули р1=2, р2=3 рабочими, а p3=5, p4=7 - контрольными, тогда полный диапазон будет равен Р=210, а рабочий Р=2·3=6. Допустим, правильный результат равен а=(1,0,3,3), а искаженный . Для определения ошибки вычислим коэффициент ОПС аi.
Таким образом, число в ОПС равно [1,0,2,2]. Из выражения (1) видно, что вышло за пределы рабочего диапазона, так как 73>6. Для принятия решения о том, что число искаженное, необходимо проверить на равенство нулю коэффициенты а3 и а4. Итак, неравенства а3≠0 и а4≠0 устанавливают тот факт, что число - ошибочное. Вычислим проекции числа , полученные из последовательным зачеркиванием цифр αi по основанию рi.
По основанию p1=2.
Для системы с основаниями р2=3, р3=5, р4=7 вычислим ортогональные базисы в позиционной и обобщенной позиционной системах счисления :
и
Этот результат может быть проверен оценкой величины с помощью выражения (1) .
По основанию р2=3.
Для системы с основаниями p1=2, р3=5, p4=7 вычислим ортогональные базисы в позиционной и обобщенной позиционной системах счисления :
и
.
По основанию р3=5.
Для системы с основаниями р1=2, р2=3, р4=7 вычислим ортогональные базисы в позиционной и обобщенной позиционной системах счисления :
и
.
По основанию p4=7.
Для системы с основаниями p1=2, р2=3, р3=5 вычислим ортогональные базисы в позиционной и обобщенной позиционной системах счисления :
и
.
Итак, все проекции числа , кроме , неправильны. Следовательно, ошибочной цифрой является цифра α2=1 по основанию р2=3.
Проведем теперь исправление по формуле (7) для проекции
α2=(1+1·2)mod3=0mod3.
Правильная цифра по основанию р2=3 равна α2=0.
Этот пример был приведен для иллюстрации принципа реализации функционального блока коррекции ошибки в модулярном нейрокомпьютере. Эффективность вычислений модулярного нейрокомпьютера повышается, так как возможность такого режима обработки информации эквивалентна двойному просчету для обнаружения ошибки и тройному просчету для ее исправления. Модулярный нейрокомпьютер с двумя контрольными основаниями позволяет сохранить работоспособность нейрокомпьютера при отказах любых двух каналов, при этом он выполняет программу при некотором уменьшении точности или скорости вычислений, т.е. нейрокомпьютер, работающий в модулярной арифметике, является исключительно «живучим», приближаясь в этом смысле к биологическим системам.
Рассмотрим адаптивную параллельно-конвейерную нейронную сеть коррекции ошибок, которая представляет собой высокопроизводительное нейросетевое устройство и предназначено для параллельно-конвейерной коррекции ошибок. Схема приведена на чертеже. Рассмотрим основные функции структурных блоков адаптивной нейронной системы. Пунктиром обведены основные блоки, реализуемые в нейросетевом базисе.
Блок нейронных сетей конечного кольца (НСКК) 23 вычисляет разрядные цифры в представлении ОПС и состоит из (n-1) НСКК, нейроны 5 с переносами 6 и нейроны входного слоя 2. Из чертежа видно, что остаточные числа αi(i=1,2,...n) контролируемого числа A=(α1,α2,...,αn) 1 подаются параллельно через входной слой, нейроны 2, на входы всех НСКК, нейроны 5, которые имеют n(n+1)/2 синаптических весов. Подключения синаптических весов на чертеже показаны точками. Полученная треугольная матрица (12) суммируется согласно правилу сложения цифр в представлении ОПС, описанному выше, т.е. данные в i-м канале будут суммироваться с учетом переносов в (i-1) канале по модулю рi в представлении ОПС. Перенос представляет собой число раз, превышающее величину модуля pi, который поступает к (i+1) каналу. Поскольку в каждой строке имеется (i-1) нулей перед первым значащим элементом, а сумма чисел может переноситься (n-1) раз, то абсолютная величина каждого переноса ограничивается величиной (n-1)
где wij=bij.
Для обнаружения ошибки используется первоначальная конфигурация блока, т.е. такая конфигурация, когда работают все каналы. При формировании i проекций, когда происходит реконфигурация сети, возникают две задачи: первая задача связана с исключением i-канала, нейроны 5, а вторая - с коррекцией весовых коэффициентов wij сигналы w 21. Структура нейронной сети i-проекции зависит от номера исключаемого канала и адаптируется к нему посредством загрузки весовых коэффициентов wij 3. В то время, когда часть сети остается неактивной (исключается из системы), весовые коэффициенты между нейронами входного слоя и нейронами скрытого слоя НСКК не используются нейронной сетью и равны нулю. Весовые коэффициенты между нейронами скрытого слоя и нейронами выходного слоя НСКК не активированных нейронов также равны нулю, а нейроны выходного слоя не активированной части нейронной сети имеют высокое значение (преимущественно ∞), т.е. можно считать, что они исключаются из общей системы.
Посредством коммутации весовых коэффициентов нейронная сеть осуществляет реконфигурацию системы и ее настройку в соответствии с изменением констант СОК. Определенные активированные части нейронной сети активируют другие части, при этом весовые коэффициенты определены из новых констант СОК. В процессе реконфигурации активные нейроны целенаправленно активируют определенные части нейронной сети, просто и быстро приспосабливаясь к определенным внешним параметрам. Таким образом, в процессе вычисления проекции весовые коэффициенты активированной части нейронной сети адаптируются к требованиям внешних параметров. Исходя из этого, вычисление проекций нейронной сетью не содержит каких-либо сложных условий реконфигураций системы и вследствие этого происходит быстрое определение значений величины проекций.
Функционирование нейронной сети зависит от весовых коэффициентов между слоями 22, которые определяются заранее и хранятся в памяти блока реконфигурации и локализации ошибки.
Процесс вычисления проекций осуществляется активизацией определенных выходов НСКК, которые выбраны с помощью весовых коэффициентов. Таким образом, реконфигурация сети осуществляется весовыми коэффициентами нейронных связей на активированных выходах нейронной сети.
Весовые коэффициенты определяются заранее и помещаются в памяти блока реконфигурации, и в зависимости от поступающих сигналов выдаются необходимые весовые коэффициенты для i-проекции, соответственно, определяя структуру нейронной сети, в которой при определенных внешних параметрах достигается надежное и быстрое вычисление проекций числа.
Блок обнаружения ошибок 24 предназначен для сравнения значений избыточных разрядов всего числа или его проекций с нулем и состоит из четырех схем сравнений (СС1-СС4(10-13)), элементов «И» 15, «ИЛИ» 14 и двух демультиплексоров (ДМХ1 8, ДМХ2 9). Если какая-либо из избыточных цифр в представлении ОПС не равна нулю, то в исходном числе присутствует ошибка. Схемы сравнения СС2 11 и СС4 13 предназначены для сравнения избыточных цифр всего числа с нулем. Если аn-1 и аn равны нулю, то схемы сравнения выдают единичные сигналы, которые поступают на вход элемента «И» 15, на выходе которого формируется сигнал «ошибки нет». Выходной сигнал U6 элемента «И» 15 классифицируется как сигнал «ошибки нет» 26. Во всех остальных случаях сигналы сравнения СС2 11 и СС4 13 с помощью схемы И-НЕ 16 классифицируются как сигнал U4 «ошибка есть» 27, который поступает на вход S-триггера 18 блока реконфигурации и локализации ошибок 22. Необходимо отметить, что при вычислении проекций числа от 1 до (n-1), в качестве избыточной цифры используется коэффициент аn, а при вычислении n-й проекции - коэффициент an-1 . Это обстоятельство связано с тем фактом, что при определении проекции числа, когда одно основание исключается, избыточный код с двумя контрольными основаниями превращается в избыточный код с одним контрольным основанием, его корректирующая способность уменьшается, он из исправляющего кода превращается в обнаруживающий код, но этого достаточно для обнаружения неправильной проекции, хотя при этом исправляющие свойства кода теряются. В случае если в исходном числе есть ошибка, то на адресные входы демультиплексоров ДМХ1 8 и ДМХ2 9 поступают соответственно сигналы U1 29 и U2 30. Сигнал U1 29 блокирует выходы демультиплексора ДМХ1 8 при определении (n-1) проекций, а сигнал U2 30 коммутирует вход демультиплексора ДМХ2 9 на вход схемы сравнения ССЗ 12. Если при контроле проекции an=0, то схема сравнения ССЗ 12 формирует единичный сигнал правильной проекции, что соответствует ошибке по данному основанию, который поступает на вход элемента «ИЛИ» 14. Элемент «ИЛИ» 14 классифицирует сигнал U7 31 как «ошибочный разряд», который поступает на вход блока исправления ошибки 25. Процесс вычисления коэффициента an будет выполняться (n-1) раз. При определении n-й проекции формируются новые коды символов U1 и U2, которые блокируют выход демультиплексора ДМХ2 9, а выход демультиплексора ДМХ1 8 коммутируется на вход схемы сравнения СС1 10, при этом избыточный коэффициент аn-1 будет выполнять роль избыточного коэффициента аn. Если в данном случае аn-1=0, то схема СС1 10 выполняет роль схемы СС3 12 и процесс происходит аналогично тому, как и при an=0.
Блок исправления ошибок 25 служит для исправления ошибок по i-основанию и состоит из адаптируемой нейронной сети конечного кольца, нейроны 7, и ПЗУ весовых коэффициентов 17. Адаптируемая нейронная сеть конечного кольца имеет максимально необходимую конфигурацию, которая обеспечивает вычисление правильной разрядной цифры по любому основанию, используемому в выбранной СОК. Нейронная сеть реализует вычислительную модель (11). Структура адаптируемой нейронной сети зависит от одного внешнего параметра и адаптируется к нему посредством загрузки весовых коэффициентов wjk (где k=1,2...n) 4, которые определяются qi. Вычисление правильной цифры αi определяется изменением весовых коэффициентов между нейронами входного слоя и нейронами скрытого слоя и связями между нейронами скрытого слоя и нейронами выходного слоя. В зависимости от числа входов и их весовых коэффициентов изменяется модуль СОК реализуемой нейронной сети конечного кольца. Для управления конфигурацией нейронной сети используется ПЗУ весовых коэффициентов 17, которая управляется сигналами U7 31 «ошибочная цифра» и сигналом U3 - номер проекции 32, соответственно, поступающими от блока обнаружения 24 и блока реконфигурации и локализации ошибок 22. Объем ПЗУ в битах можно определить из выражения
Блок реконфигурации и локализации ошибки 22 предназначен для управления адресными входами демультиплексоров ДМХ1 8 и ДМХ2 9 соответственно, сигналы U1 29 и U2 30 управления конфигурацией блока НСКК 23 и коррекцией весовых коэффициентов деградированной нейронной сети 23, сигнал w 21, и формирования сигнала U3 номера проекции. Блок состоит из ПЗУ формирования проекции и коррекции весовых коэффициентов 20, счетчика проекций 19, триггера управления 18, обеспечивающего работу счетчика на время формирования всех проекций и элемента И-НЕ 16, формирующего сигнал U4 27 установки триггера в единичное состояние, в случае обнаружения ошибки в проверяемой кодовой комбинации. В случае, если один или оба разряда аn и an-1 не равны нулю, элемент И-НЕ 16 формирует сигнал U4 27 «ошибка есть», который поступает на вход S-триггера 18 и переводит его в состояние «1». Высокий потенциал - сигнал 33 на выходе триггера запускает счетчик проекций 18. В каждом такте синхронизации счетчик проекций активирует ПЗУ формирования проекций и коррекции весовых коэффициентов 20, которое формирует сигналы: формирования первой проекции и коррекции весовых коэффициентов, сигналы w 21; формирования адресной части демультиплексоров (ДМХ1 8 и ДМХ2 9), сигналы U1 29 и U2 30, и номера проекции, сигнал U3 32. Объем ПЗУ составляет , где bi - двоичное представление i-цифры СОК. По сигналу U1 29 блокируется ДМХ1 8, а по сигналу U2 30 выход ДМХ2 9 подключается к схеме сравнения ССЗ 12.
Формируемые ПЗУ 20 весовые коэффициенты w 21 осуществляют реконфигурацию нейронной сети и адаптируют каждую НСКК к новым входным параметрам. Сигналы адресной части 30 демультиплексора ДМХ2 9 коммутируют старший разряд аn ко входам схемы сравнения ССЗ 12, которая формирует сигнал U7 31 управления ПЗУ весовых коэффициентов блока исправления ошибки 17, если аn=0. На вход этого блока поступает и сигнал номера проекции U3 32. По этим сигналам w 21 адаптируемая НСКК 23, нейроны 5, настраивается на первую проекцию. После вычисления данных первой проекции, счетчик проекций 19 формирует сигналы второй проекции и процесс повторяется аналогичным образом до получения (n-1) проекций. Далее сигнал U2 30 блокирует выходы демультиплексора ДМХ2 9, а сигнал U1 29 коммутирует выход демультиплексора ДМХ2 9 на вход схемы сравнения СС1 10, которая, в случае an-1=0, формирует единичный сигнал, поступающий через элемент «ИЛИ» 14 на вход ПЗУ коэффициентов в качестве сигнала U7 31. После того как все проекции будут вычислены, счетчик проекции подает сигнал U5 34 на вход R-триггера, который переходит в нулевое состояние и выключает активацию счетчика, а также формирует сигналы установки в начальное состояние демультиплексоров и ПЗУ весовых коэффициентов блока исправления ошибок. После этого нейронная сеть коррекции ошибок переходит в исходное состояние и способна принимать следующую кодовую комбинацию для коррекции числа.
Итак, обнаружение, локализация и исправление ошибки могут быть выполнены в параллельно-конвейерном режиме, что и показано на рисунке 1 за (n+2) циклов синхронизации: 2 цикла - для обнаружения ошибки, (n-1) циклов - для локализации ошибки и 1 цикл - для исправления ошибки.
Принцип работы данного изобретения излагается ниже.
Изобретением является адаптивная нейронная сеть для коррекции ошибок в кодах данных 1. Данные поступают на вход нейронов 2, а исправленная цифра 28 появляется в выходном слое адаптивной нейронной сети 7 блока 25.
Из чертежа видно, что контролируемое число А=(α1,α2,...αn) подается параллельно на вход 1 блока НСКК 23 формирования цифр в представлении ОПС, на выходе которого в 1-м цикле синхронизации вычисляются разрядные цифры числа А=[a1 0,a2 0,...a0 n-1,an 0], представленные в ОПС, где индекс «0» соответствует коэффициентам ОПС исходного числа. Адаптивная НСКК 25 блока исправления ошибки в этот момент не активна. Избыточные цифры а0 n и а0 n-1 через демультиплексоры ДМХ2 9 и ДМХ1 8 поступают на вход схем сравнения СС2 11 и СС4 13 блока обнаружения ошибки 24. Если a0 n-1=a0 n=0, то элементом «И» 15 формируется сигнал отсутствия ошибки «ошибки нет» 26, на этом контроль числа заканчивается. Если же одна или обе из избыточных цифр а0 n и а0 n-1 не равны нулю, элемент И-НЕ 16 фиксирует сигнал U4 «ошибка есть» 27, который посредством триггера 18 и счетчика проекций 19 активизирует ПЗУ формирования проекции и коррекции весовых коэффициентов 20, которое в свою очередь активизирует блок НСКК 23 сигналы w 21 формирования цифр в представлении ОПС на вычисление проекций числа, переключения демультиплексора ДМХ2 9 (под действием сигнала U2 30) на вход схемы сравнения ССЗ 12, а также формирует сигнал номера первой проекции U3 32, который поступает на вход ПЗУ весовых коэффициентов 17 блока исправления ошибок 25.
Если аi n≠0, где i=1,2...,n - номер проекции, то данная проекция неправильная и поэтому ошибка по этому основанию отсутствует, и схема на эту ситуацию никак не реагирует. Если ai n=0, то данная проекция правильная, что свидетельствует о наличии ошибки по данному основанию рi. Сформированные схемами СС1 10 и ССЗ 12 сигналы через элемент «ИЛИ» 14 поступают на вход ПЗУ весовых коэффициентов 17 блока исправления ошибок 25. Под действием двух входных сигналов ПЗУ весовых коэффициентов 17 активируется, происходит адаптация НСКК 25, нейроны 7, по модулю рi и определяется правильная цифра 28 по основанию pi. После вычисления первой проекции счетчик проекций выдает сигнал на вычисление следующей проекции и процесс повторяется до тех пор, пока счетчик не выдаст сигнал на формирование (n-1)-проекции, при этом демультиплексор ДМХ2 9 блокируется, а выход демультиплексора ДМХ1 8 подключается к схеме сравнения СС 10 и процесс повторяется аналогично вышеописанному.
Счетчик имеет емкость, равную n. После вычисления n проекций счетчик проекций 19 формирует сигнал окончания контроля U5 34, который поступает на вход R-триггера 18, и переводит его в нулевое состояние, по которому система устанавливается в исходное положение.
Выигрыш в быстродействии параллельно-конвейерного обнаружения, локализации и исправления ошибок очевиден, поскольку он значительно уменьшает время по сравнению с известными реализациями. Это преимущество объясняется совершенно параллельным принципом обработки данных и соответствующей организацией нейронных сетей. Так, разработанная адаптивная НСКК позволяет исправить ошибку за (n+2) циклов синхронизации, в то время как известные реализации позволяют выполнить эту операцию как минимум за 3 n циклов синхронизации.
Разработанная адаптивная параллельно-конвейерная нейронная сеть может быть применена в модулярных нейрокомпьютерах для обнаружения, локализации и исправления ошибок, что открывает новые перспективы, которые ранее было очень сложно осуществить. Реализация разработанной системы может быть выполнена на ПЛИС Xilinx серии ХС4000ЕС, для которой время задержек на вентиле составляет не более одной наносекунды и ниже.
Адаптивная параллельно-конвейерная нейронная сеть для коррекции ошибок, содержащая блок нейронной сети конечного кольца формирования цифр в представлении обобщенной позиционной системы, отличающаяся тем, что в нее включены блок обнаружения ошибок, блок исправления ошибок и блок реконфигурации и локализации ошибок, при этом информационный вход адаптивной параллельно-конвейерной нейронной сети соединен с входом блока нейронной сети конечного кольца формирования цифр в представлении обобщенной позиционной системы, при этом блок исправления ошибок содержит первую адаптируемую нейронную сеть конечного ко