нейронная сеть для обнаружения, локализации и исправления ошибок в системе остаточных классов
Классы МПК: | G06F11/08 обнаружение и исправление ошибок с помощью избыточности в представлении данных, например с помощью корректирующих кодов G06N3/06 материальная реализация, те техническое выполнение нейтронных сетей, нейронов или частей нейронов |
Автор(ы): | Червяков Николай Иванович (RU), Лавриненко Ирина Николаевна (RU), Сивоплясов Дмитрий Владимирович (RU), Дьяченко Игорь Васильевич (RU), Иванов Антон Владимирович (RU), Головко Александр Николаевич (RU) |
Патентообладатель(и): | Червяков Николай Иванович (RU), Лавриненко Ирина Николаевна (RU), Сивоплясов Дмитрий Владимирович (RU), Дьяченко Игорь Васильевич (RU), Иванов Антон Владимирович (RU), Головко Александр Николаевич (RU) |
Приоритеты: |
подача заявки:
2005-05-04 публикация патента:
20.06.2007 |
Нейронная сеть для обнаружения, локализации и исправления ошибок в системе остаточных классов относится к вычислительной технике и может быть использована в модулярных нейрокомпьютерных системах. Техническим результатом является повышение скорости коррекции ошибок, сокращение оборудования, а также расширение функциональных возможностей. Для этого нейронная сеть содержит входной слой, нейронные сети конечного кольца для определения синдрома ошибок, блок памяти для хранения констант, нейронные сети для вычисления правильного результата и элемент ИЛИ для определения наличия ошибки. 1 ил., 3 табл.
Формула изобретения
Нейронная сеть для обнаружения, локализации и исправления ошибок в системе остаточных классов (СОК), содержащая входной слой нейронов, на входы которых подается контролируемое число А=( 1, 2, ..., n, n+1, n+2), где i=Amod pii=1, 2, ..., n+2, р1, ... рn - рабочие основания СОК, рn+1, р n+2 - контрольные основания СОК, блок памяти, элемент ИЛИ, n выходных нейронных сетей конечного кольца, отличающаяся тем, что, ней выходы нейронов входного слоя по рабочим основаниям разветвлены соответственно на первые входы выходных нейронных сетей конечного кольца, предназначенных для получения исправленного числа путем суммирования неправильного числа с константой ошибки, и на входы нейронной сети, предназначенной для вычисления остатков 'n+1 и 'n+2 по контрольным основаниям, выходы которой соединены с входами нейронной сети формирования отрицательных значений остатков по контрольным основаниям, выходы которой подключены соответственно к первым входам нейронных сетей конечного кольца определения синдрома ошибки 1=| n+1-(- 'n+1)|p+1 и 2=| n+2-(- 'n+2)|p+2 , выходы нейронов входного слоя по контрольным основаниям подключены соответственно на вторые входы нейронных сетей конечного кольца определения синдрома ошибки, выходы которых соединены с адресными входами блока памяти, в котором хранятся константы, определяемые синдромами ошибок 1 и 2, выходы блока памяти подключены к шинам определения основания по которому произошла ошибка и к элементу ИЛИ, формирующему сигнал «есть ошибка», а также соответственно к вторым входам n выходных нейронных сетей конечного кольца, выходы которых являются выходами нейронной сети обнаружения, локализации и исправления ошибок в СОК.
Описание изобретения к патенту
Изобретение относится к вычислительной технике и может быть использовано в модулярных нейрокомпьютерных системах.
Известно устройство для контроля и исправления ошибок в избыточном модулярном коде (патент №2022472, кл. Н03М 13/00, RU, 1999), состоящее из входного преобразователя кода, выходного преобразователя, блока группы элементов сравнения, блока группы элементов ИЛИ, блока элементов И.
Однако данное устройство обладает следующими недостатками:
низкое быстродействие, большие аппаратные затраты и малые функциональные возможности, так как в устройстве используется один избыточный модуль, коррекция ошибки осуществляется по большому модулю, равному диапазону контрольных чисел.
Наиболее близким по технической сущности к заявленному устройству является устройство для обнаружения и исправления ошибок в системе остаточных классов (А.С. №714399, G06F 11/08, 1980), содержащее два блока модульной свертки, причем первый выход регистра соединен со входом первого и второго блоков модульной свертки и с первым входом третьего сумматора, выходы первого и второго блоков модульной свертки соединены соответственно с первыми входами первого и второго сумматоров, второй и третий выходы регистра соединены соответственно со вторыми входами первого и второго сумматоров и со вторым и третьим входами третьего сумматора, выход блока памяти соединен с четвертым входом третьего сумматора, выход которого является выходом устройства.
Недостатком известного устройства является сложность, которая объясняется наличием двух блоков модульной свертки, низким быстродействием, которое пропорционально количеству модулей системы остаточных классов и малыми функциональными возможностями.
Целью настоящего изобретения является упрощение устройства, повышение быстродействия и расширение функциональных возможностей.
Поставленная цель достигается тем, что устройство содержит нейронную сеть 8, состоящую из нейронных сетей конечного кольца 4, 5 и 6 и нейронных сетей конечного кольца 27, 28, которые формируют остатки по контрольным модулям системы остаточных классов, выходы 9 которых соединены с первыми входами нейронных сетей конечного кольца 10, 11 вычисления синдрома ошибки, вторые входы которых соединены с выходами нейронов 23 избыточных модулей n+1 и n+2, выходы нейронных сетей конечного кольца 10, 11, шины 12 и 13 связаны со входами блока памяти 14 для выбора из нее констант ошибок, выходы 15, которые поступают на шины 16, 17 и 18, определяющие номер неисправного модуля (канала), и на вход элемента ИЛИ 19, выход 20 которого определяет наличие ошибки, кроме того, выходы блока памяти 14 поступают на первые входы нейронных сетей конечного кольца 21, а на вторые входы которых поступают остатки неправильного числа 1, 2,..., n. Исправленное число с выходов нейронных сетей конечного кольца 21 поступает на выходы 22 устройства.
Рассмотрим метод коррекции ошибок.
Пусть дано контролируемое число А=( 1, 2,..., n, n+1, n+2), где
i=Amodpi i=1, 2,..., n+2, р1,р 2,...,рn,рn+1 ,рn+2 - основания СОК с двумя избыточными основаниями рn+1, рn+2 .
Принцип обнаружения, локализации и исправления ошибки основан на функциональном объединении всех трех операций в одну операцию. Данный метод основан на определении цифр по избыточным основаниям на основании цифр по рабочим основаниям и сравнении их с изначально известными цифрами по избыточным основаниям. Если вычисленные цифры 'n+1 и 'n+2 по контрольным разрядам равны исходным цифрам n+1 и n+2 этих разрядов, то ошибки нет, если они не равны, то необходимо определить синдром ошибки, равный разности этих цифр 1=( n+1- 'n+1)mod pn+1 и 2=( n+2- 'n+2)mod pn+2 , по значениям которых определяется константа ошибки. Далее суммируя константу ошибки с неправильным числом, которая подобрана таким образом, что неявное место ошибки в числе устраняется. Для локализации ошибки необходимо поразрядно сравнить откорректированное число с ошибочным, и в случае, если i- i' 0, определяется ошибочный разряд. Изложенный метод позволяет обнаружить, локализовать и исправить ошибку по одному из информационных каналов.
Вычисление 'n+1 и 'n+2 проведем на основе метода расширения системы оснований, который базируется на использовании китайской теоремы об остатках и обобщенной позиционной системе счисления. Рассмотрим вначале расширение на одно основание, а затем обобщим расширение на два основания.
Пусть задана система оснований р1, р 2,..., рn с диапазоном Р=р 1·p2·...·р n, ортогональными базисами В1, В 2,...,Вn, веса которых m 1, m2,..., mn и определяются из сравнения Расширим систему оснований, добавляя основание р n+1, тогда диапазон системы станет Pn+1 =pn+1·P, ортогональные базисы системы их веса причем Задача состоит в определении цифры n+1 числа А по основанию р n+1.
Тогда число А в системе оснований р 1, р2,..., рn , рn+1 будет иметь вид
где - диапазон расширенной системы оснований;
- ортогональные базисы расширенной системы оснований.
Представим ортогональные базисы в обобщенной позиционной системе счисления, тогда
где - коэффициенты ОПСС;
i, j=1,2,...,n.
На основании (2) запишем выражение (1) в виде
Из выражения (3) можно определить коэффициенты i числа А, тогда
где i - вычеты числа А по mod p i;
- ортогональные базисы, представленные в ОПСС.
Цифры i в представлении ОПСС получаются суммированием по модулю pi всех произведений и переносом, генерируемым при формировании i-1. Перенос генерируется как число раз, когда сумма цифр в ОПСС переполняется по модулю p i. Этот перенос используется для формирования цифр i+1. Последний перенос, генерируемый при получении последней цифры числа в ОПСС, отбрасывается. Предлагаемый метод выполняется в параллельном режиме. Выигрыш в быстродействии данного метода с итеративным методом очевиден, поскольку он уменьшает время преобразования с 2(n+1) циклов синхронизации до трех циклов.
Цифры i, принимают значения от 0 до pi-1, причем являются константами, поэтому произведение i можно поместить в ПЗУ или в весовые коэффициенты связей между нейронами. Адресами произведений i являются вычеты i числа А по модулю p i.
Пример 1. Пусть р1=2, р 2=3, р3=5, p4 =7, Pn+1=2·3·5·7=210, B 1=105, B2=70, B3 =126, В4=120.
Тогда на основании (2) определим :
Рассмотрим перевод числа из СОК в ОПСС.
Пусть А=11=(1, 2, 1, 4). Тогда в ПЗУ поместим значения i, :
Преобразование числа A из СОК в ОПСС имеет вид
При сложении цифр по каждому модулю с учетом переноса получим число А, представленное в ОПС как А=[1,2,1,0].
Рассмотрим метод определения вычета по расширенному основанию. Пусть СОК состоит из оснований р1, р 2,...,pn. Объем диапазона этой системы будет Добавим к числу оснований СОК новое основание p n+1. Объем диапазона этой системы Тогда любое число А из диапазона [0, Р n+1] в обобщенной позиционной системе счисления можно представить в виде
Если число А будет лежать в первоначальном диапазоне [0; Р], то в ОПСС цифра n+1=0. Если n+1 0, тогда значение числа А выходит за пределы динамического диапазона. Факт n+1=0 используется для получения остатка (вычета) от деления числа А на новое основание СОКр n+1.
Пусть число А имело представление ( 1, 2,..., n) по основаниям р 1, p2,..., рn. Добавляем новое основание pn+1, тогда число в системе оснований p1, р 2,..., рn, pn+1 , где - остаток от деления числа А на рn+1 , т.е. искомая цифра по новому основанию.
Для определения этой цифры используем метод перевода числа из СОК в ОПСС, включая неизвестную цифру в проводимые операции. При этом мы параллельно получим цифры ОПСС 1, 2,..., n и выражение для цифры n+1. Но так как по условию число А [0;P], то цифра n+1=0.
Из полученного соотношения и определяем искомую цифру
Пример 2. Пусть задана система модулей р 1=2, р2=3, p3 =5, тогда P=2·3·5=30. И пусть задано число А=11=(1, 2, 1). Расширим систему оснований, добавляя р 4=7. Тогда А=11=(1, 2, 1, |А|7) в системе оснований p1=2, р 2=3, р3=5, р4 =7.
Набор констант bij приведен в (5) и задается матрицей
Процесс решения задачи приведен в таблице 1.
Таблица 1 | ||||
Вычеты числа А по модулю pi | Модули | |||
p1 =2 | p2=3 | p3=5 | p 4=7 | |
1 | 1 | 1 | 2 | 3 |
2 | 0 | 4 | 2 | 4 |
1 | 0 | 0 | 1 | 4 |
|A|7 | 0 | 0 | 0 | 4·|х|7 |
Коэффициенты ОПСС числа A | 1 | 2 | 1 | 5+4·|х|7 |
После сложения цифр по модулю pi получим А=[1, 2, 1, 5+4|A|7], но так как 4=|5+4·|А|7 |7, но по условию 4=0, т.е. 4·|А| 7=-5 или . Мультипликативная обратная величина , и так как число 5 отрицательное, возьмем его дополнение по модулю 7. Итак, вычет числа А по модулю 7 определяется выражением |А|7=2·(7-5)=4.
Тогда расширенное представление числа будет A=11=(1, 2, 1, 4). Так как результат образования цифры в СОК по новому основанию р n+1 зависит только от информационных разрядов, то операцию расширения вычетов можно проводить сразу по нескольким дополнительно введенным основаниям.
Пример 3. Пусть задана система оснований (модулей) СОК р1=2, р2 =3, р3=5. Расширим систему оснований, добавляя р4=7, р5=11. Тогда в выражение (5) добавляется еще один столбец и одна строка, а именно
Пусть задано число А=17=(l,2,2,|A| 7, |А|11), необходимо найти остатки по основаниям р4=7, р5 =11.
Процесс решения приведен в таблице 2.
Таблица 2 | |||||
Вычеты числа А по модулю рi | Модули | ||||
p1 =2 | p2=3 | p3=5 | р 4=7 | p5=11 | |
1 | 1 | 1 | 2 | 3 | 5 |
2 | 0 | 4 | 2 | 4 | 14 |
3 | 0 | 0 | 2 | 8 | 4 |
0 | 0 | 0 | 4|A|7 | - | |
0 | 0 | 0 | - | 7|A| 11 | |
Коэффициенты ОПСС числа A | 1=1 | 2=2 | 3=2 | 4=2+4|A|7 | 5=2+7|A|11 |
После сложения цифр по модулю p i получим
А=[1,2,2,2+4|А|7,2+7|А| 11],
но так как 4=2+4|A|7,а 5=2+7|A|11, и по условию 4=0 и 5=0, тогда
Мультипликативные величины
Так как |А|7=-4, а |А| 11=-5 возьмем их дополнения, т.е. |A|7 =7-4=3, а |A|11=11-5=6.
Тогда расширенное представление числа будет равно информационному числу, т.е. А=(1,2,2,3,6) 11, и это говорит о том, что число А безошибочное.
Преимущества предложенного метода расширения системы вычетов состоит в том, что:
- все вычисления выполняются в параллельных каналах по отдельным модулям, причем каждый модуль отождествляется с отдельным каналом;
- не требуется вычисления большого количества дополнительных величин, необходимо только наличие констант и мультипликативных величин по расширенным основаниям;
- возможно получение расширенного представления вычетов числа сразу по нескольким дополнительным основаниям, что не влияет на быстродействие всей операции расширения.
Применим этот метод для обнаружения, локализации и исправления ошибки.
Коррекция ошибок в СОК основана на представлении числа в расширенной системе. В качестве расширенных оснований возьмем избыточные (контрольные) основания. Допустим, в процессе обработки и хранения данных в вычислительной системе остатки чисел по избыточным основаниям, с одной стороны, абсолютно верны, а с другой стороны, они вычисляются на основе остатков по неизбыточным (информационным) основаниям, непосредственно перед контролем данных. Если вычисленные избыточные остатки равны исходным, то ошибки в информационных основаниях не произошло, в противном случае - произошла ошибка по информационным основаниям. На основании этой информации устраняется ошибка и определяется неисправный модуль.
Введенное ограничение на абсолютную верность избыточных оснований обеспечивается абсолютной надежностью каналов по избыточным модулям, которую можно обеспечить известными структурными технологиями (например, использованием обычных корректирующих кодов или мажоритарной схемы).
Пример 4. Исходные данные такие же, как и в примере 3.
Допустим, произошла ошибка по третьему информационному основанию, тогда ошибочное число будет иметь вид =(1,2,3,3,6).
Избыточные разряды по четвертому и пятому основаниям равны соответственно 3 и 6, и они абсолютно верны.
На основании информационных остатков определим синдром ошибки .
Метод обнаружения, исправления и локализации ошибок в СОК представляется следующим образом.
Контролируемое число 1, 2,..., n, n+1, n+2 делится на две части: информационную, в которую входят остатки по информационным основаниям 1, 2,..., n, и контрольную часть, в которую входят остатки по избыточным (контрольным) основаниям n+1, n+2.
Далее по остаткам информационных каналов определяем остатки по избыточным основаниям. Воспользуемся таблицей 2, тогда третья строка будет иметь вид не [0, 0, 2, 8, 4], а [0, 0, 3, 12, 6].
При выполнении операции согласно таблице 2 получим
Отсюда
Используя найденные остатки, определяем синдром ошибки:
По величинам 1, 2 формируются константы ошибок таким образом, что при их сложении с информационными разрядами контролируемого числа А имевшая место ошибка в числе устраняется. Заметим, что если контролируемое число не будет содержать ошибки, то величины 1 и 2 равны нулю.
Для локализации ошибки необходимо провести сравнение разрядов исходного числа с исправленным числом и по тому разряду, где сравнение не выполняется, определяется ошибочный разряд.
Определим константы ошибок для данного примера и сведем их в таблицу 3.
Таблица 3 Константы ошибок для СОК с основаниями р1=2, р 2=3, р3=5, p4 =7, p5=11 | |||||
Ошибка по основанию р1 | 1, 2 | Ошибка по основанию р2 | 1, 2 | Ошибка по основанию p3 | 1, 2 |
0,0,0 | 0,0 | 0,0,0 | 0,0 | 0,0,0 | 0,0 |
1,0,0 | 6,7 1,4 | 0,1,0 | 1,2 3,10 | 0,0,1 | 4,9 6,6 |
0,0,2 | 3,4 5,1 | ||||
0,2,0 | 4,1 6,9 | 0,0,3 | 4,7 2,10 | ||
0,0,4 | 1,5 3,2 |
В соответствии с 1=1, 2=5 таблицы 2 определяется величина ошибки (0,0,4), которая складывается с контролируемым числом
По величине ошибки (0,0,4) локализуется ошибочный разряд, им будет разряд по modp3. Использование синдрома ошибки позволяет все процедуры по обнаружению, локализации и исправлению ошибок объединить в одну процедуру, что позволяет уменьшить время коррекции ошибок и повысить эффективность.
На чертеже приведена нейронная сеть для обнаружения, локализации и исправления ошибок в системе остаточных классов. Нейронная сеть состоит из входного слоя нейронов 2, 23, входного слоя 24, предназначенного для хранения остатков числа по рабочим и контрольным основаниям в течение времени обнаружения ошибки, вход которой соединен со входами 1( 1, 2,..., n) и входами 25( n+1, n+2) нейронной сети; нейронной сети 8, предназначенной для вычисления остатков чисел по контрольным основаниям, входы которой соединены с выходами нейронов 2, хранящими остатки по рабочим основаниям; нейронных сетей конечного кольца 10, 11, предназначенных для вычисления синдромов ошибки по контрольным основаниям, первые входы которых соединены соответственно с выходами нейронной сети вычисления остатков по контрольным основаниям, а вторые - соответственно с выходами нейронов 23, хранящие остатки по контрольным основаниям, входы которых подключены к шине 25; блок памяти 14, предназначенный для хранения констант, вход которого соединен с выходами нейронных сетей конечного кольца 10, 11; нейронных сетей конечного кольца 21, предназначенных для получения исправленного числа путем суммирования неправильного числа с константой ошибки, первые входы которых соединены соответственно с выходами блока памяти, шины 15, которые являются выходными шинами 16, 17 и 18, формирующие номера неисправных модулей и входом элемента ИЛИ 19, выход 20 которого формирует сигнал "есть ошибка", а вторые - с выходами нейронов 2, а выходные сигналы 22 нейронных сетей конечного кольца 21 являются выходами нейронной сети исправления ошибок.
Работа нейронной сети для обнаружения, локализации и исправления ошибок в системе остаточных классов осуществляется следующим образом.
На входы 1, 25 нейронов 2 и 23 нейронной сети для обнаружения, локализации и исправления ошибки в системе остаточных классов подается контролируемое число А=( 1, 2,..., n, n+1, n+2). С выходов нейронов 2 остатки по рабочим основаниям с весовыми коэффициентами w ij 3 поступают на вход нейронной сети 8 вычисления остатков по контрольным модулям. Нейронная сеть 8 состоит из совокупности нейронных сетей конечного кольца 4, 5, 6. Весовые коэффициенты wij 3 и wjk 7 нейронов нейронных сетей конечного кольца, выполняющие роль распределенной памяти, определяются соответственно и wjk=1. Нейронные сети конечного кольца 4, 5 и 6 реализуют вычислительную модель, представленную в таблице 2.
Выходные сигналы НСКК 5 и 6 последней строки поступают на вход НСКК 27 и 26, с весовыми коэффициентами w kl 29, равные где l - количество расширяемых модулей и принимает значение 1,2,....
Выходные сигналы 9 НСКК 27 и 28 будут отрицательными значениями: - 'n+1 и - 'n+2, которые поступают соответственно на входы 9 НСКК 10 и 11, а на вторые входы поступают значения n+1 и n+2 по шинам соответственно 30 и 31. НСКК 10 и 11 реализуют вычислительную модель:
1= n+1-(- 'n+1);
2= n+2-(- 'n+2).
Выходные значения НСКК 10 и 11 по шинам 12 и 13, соответствующим синдромам ошибки, поступают на входы блока памяти 14 и выбирают оттуда соответствующую константу согласно таблице 3. Эти константы с выхода блока памяти 14 по шинам 15 поступают на соответствующую шину 16, 17 и 18, которые показывают номер неисправного модуля, а также на вход элемента ИЛИ 19, выход 20 которого показывает наличие ошибки. На входы НСКК 21 поступает сигнал с выхода блока памяти, а на вторые входы поступают соответственно выходные сигналы рабочих каналов, нейроны 3, выходная шина 26, где суммируются с константами ошибок, подобранными таким образом, что при ее сложении с контролируемым числом А имевшая место ошибка в числе устраняется. На выходе НСКК 21 выходная шина 22 формирует исправленное число.
Класс G06F11/08 обнаружение и исправление ошибок с помощью избыточности в представлении данных, например с помощью корректирующих кодов
Класс G06N3/06 материальная реализация, те техническое выполнение нейтронных сетей, нейронов или частей нейронов