В настоящее время математическая модель ортогональных преобразований сигналов, реализуемых в полях Галуа, нашла широкое применение. Это связано с тем, что использование полиномиальной системы классов вычетов (ПСКВ) позволяет обеспечить максимальную точность обработки сигналов в реальном масштабе времени. Повысить производительность спецпроцессоров (СП) цифровой обработки сигналов (ЦОС), которые функционируют в ПСКВ, возможно за счет использования нейросетевого базиса. Поэтому разработка многовходового нейросетевого сумматора по модулю два, обладающего минимальными временными затратами, является актуальной задачей.
Применение ПСКВ при построении спецпроцессоров цифровой обработки сигналов показано в работах [1–3]. Использование многомерной обработки сигналов позволяет не только повысить производительность спецпроцессора ЦОС, но и достичь минимальных схемных затрат. Это связано с тем, что обработка сигналов с помощью модулярных непозиционных кодов осуществляется с операндами, которые имеют меньшую разрядную сетку. Очевидно, что использование изоморфизма, порожденного китайской теоремой об остатках, способствует созданию СП ЦОС, способных реализовать ортогональные преобразования сигналов в реальном масштабе времени.
Известно [4-7], что полиномиальная система классов вычетов поддерживает три модульных операции. Так как сравнения по одному и тому же модулю можно почленно складывать, то для суммы двух полиномов А(z) и B(z), имеющих соответственно коды (α1(z),α2(z),…,αn(z)) и (β1(z),β2(z),…,βn(z)) справедливы соотношения:
, (1)
где – операция суммирования по модулю р.
Аналогично получаем для операции вычитания в ПСКВ
, (2)
где – операция вычитания (обратная операции суммирования) по модулю р.
Операции умножения операндов над кольцом выполняются согласно
. (3)
Таким образом, операции сложения, вычитания и умножения сводятся к сложению, вычитанию и умножению соответствующих остатков по основаниям ПСКВ.
Наряду с модульными операциями при реализации СП ЦОС, функционирующих в ПСКВ, требуется выполнение немодульных операций. В работах [5–7] приведены алгоритмы выполнения немодульных процедур, которые были сведены к множеству модульных операций. Это позволяет обеспечить единую элементную базу, на которой реализуется СП ЦОС.
Качественным скачком в обеспечении реального масштаба времени при реализации параллельных вычислений является использование нейросетевого логического базиса (НЛБ). В работах [8–10] представлены алгоритмы ЦОС, которые были реализованы с использованием нейронных сетей прямого распространения. Повышенный интерес данного логическому базису вызван тем, что он, как и полиномиальная система классов, позволяет обрабатывать данные параллельно.
Базовой операцией, которая широко используется в алгоритмах ЦОС, реализуемых в полях Галуа, является суммирование по модулю два. При этом от структуры многовходового сумматора по модулю два во многом будут зависеть временные параметры цифровой обработки сигналов.
В работе [8] показана возможность использования классической нейронной сети, которая используется для построения многовходового сумматора по модулю. Однако, при реализации n-разрядного сумматора по модулю два потребуется подсетей, каждая из которых будет реализовать модель нейросетевого сумматора по модулю два, представленную в [8].
С целью повысить эффективность работы многовходовых сумматоров по модулю два в работе [9] предлагалось использовать функцию активации «Tribas». Применение данной функции активации позволил сократить схемные затраты, которые необходимы для выполнения базовой операции ЦОС – суммирования по модулю два.
В работе [10] показана целесообразность использования нейросетевого логического базиса для реализации математической модели цифровой обработки сигналов в кольце полиномов. Рассмотрен генетический алгоритм, применение которого позволяет улучшить структуру модулярного нейросетевого специализированного процессора цифровой обработки сигналов.
Что бы достичь снижения временных затрат на реализацию многовходового сумматора по модулю два, необходимо использование новой функции активации в скрытом слое, применение синаптических весов ωij, равных единице, что позволит исключить из структуры формального нейрона умножители синатических весов, а также исключение из структуры нейрона выходного слоя блока реализующего вычисления функции активации.
В этом случае многовходовый сумматор по модулю два будет представлять собой трехслойную нейронную сеть, являющуюся многослойным персептроном. Входной слой содержит n нейронов, где n – количество входов, которые в вычислениях не участвуют, а предназначены для распределения входного вектора на нейроны скрытого слоя. Скрытый слой содержит нейронов. Выходы нейронов скрытого слоя соединены с входами нейрона выходного слоя. Выход данного нейрона является выходом многовходового сумматора по модулю два. Таким образом, нейронная сеть имеет структуру
На рисунке приведена структура нейросетевого 8-входового сумматора по модулю два. Данный сумматор содержит восемь нейронов входного слоя 1–8, по которым поступает входной вектор, представленный в двоичном коде. Скрытый слой содержит четыре нейрона 9.1–9.4, каждый из которых содержит сумматор 10.i и блок вычисления функции активации 11.i, где i = 1,2,3,4. Выход блока вычисления функции активации является выходом нейрона скрытого слоя. Выходы нейронов 9.1–9.4 скрытого слоя подключены по входу сумматора 12 нейрона выходного слоя. Выход сумматора 12 является выходом восьмивходового сумматора по модулю два.
Каждый сумматор 10.i, где i = 1, 2, 3, 4, нейрона 9.i скрытого слоя имеет n + 1 входов, где n = 8. Первые n входов используются для принятия двоичного кода входного вектора X = [x1, x2, x3, x4, x5, x6, x7, x8,]. На n + 1 вход подается сигнал, который является смещением. Входы сумматоров 10.i, где i = 1, 2, 3, 4, входящих в состав нейрона 9.i скрытого слоя, подключены к выходам нейронов 1–8 входного слоя. Выход сумматора 10.i подсоединен к входу блока вычисления функции активации 11.i, выход которого является выходом нейрона 9.i скрытого слоя. Выходы нейронов 9.1–9.4 скрытого слоя подсоединены к входам сумматора 12 нейрона выходного слоя, выход которого является выходом многовходового сумматора по модулю два.
Входы сумматоров 10.i, где i = 1, 2, 3, 4, входящих в состав нейрона 9.i скрытого слоя, подключены к выходам нейронов 1–8 входного слоя. Выход сумматора 10.i подсоединен к входу блока вычисления функции активации 11.i, выход которого является выходом нейрона 9.i скрытого слоя. Выходы нейронов 9.1–9.4 скрытого слоя подсоединены к входам сумматора 12 нейрона выходного слоя, выход которого является выходом многовходового сумматора по модулю два.
При этом выходы нейронов 1–8 входного слоя подключены к входам сумматоров 10.1–10.14 нейронов 9.1–9.4 скрытого слоя, которые реализуют операцию
, (4)
где ωji = 1 – синаптические веса i-го нейрона скрытого слоя; xj – значение, поступающее на вход j-го нейрона входного слоя; ω0i – смещение i-го нейрона скрытого слоя.
Для первого нейрона 9.1 скрытого слоя, значение ω01 = – 1. Для второго нейрона 9.2 скрытого слоя ω02 = – 3. Для третьего нейрона 9.3 скрытого слоя ω03 = – 5. Для четвертого нейрона 9.4 скрытого слоя ω04 = – 7.
Результат свертки net10.i, реализованный согласно (1) поступает на вход блока вычисления функции активации 11.i, где i = 1, 2, 3, 4.
Рассмотрим работу многовходового сумматора по модулю два. Пусть на вход поступает вектор X = [1,1,0,0,0,0,0,0], который содержит четное число единиц. Данный вектор подается с выхода нейронов 1–8 входного слоя на входы нейронов 9.1–9.4 скрытого слоя. Сумматоры этих нейронов производят вычисления
,
,
,
.
Вычисляемые ненулевые результаты net10.i, где i = 1, 2, 3, 4, поступают на входы блоков вычисления функции активации 9.i. Следовательно, с выходов последних будет сниматься нулевой результат, который поступает на входы сумматора 12. На выходе заданного сумматора будет получен сигнал
. (5)
Следовательно, результат сложения двух единичных сигналов по модулю два равен нулю, т.е. .
Пусть на вход многовходового сумматора поступает вектор X = [1,1,0,0,0,0,0,1], который содержит нечетное количество единиц. Данный вектор подается с выходов нейронов 1–8 входного слоя на входы нейронов 9.1–9.4 скрытого слоя. Сумматоры этих нейронов производят вычисления
Нейросетевой многовходовой сумматор по модулю два
Нулевая кодовая комбинация с выхода сумматора 10.2 поступает на вход блока вычисления функции активации 9.2, который реализует функцию «стрелка Пирса». В результате этого на выходе нейрона 9.2 будет единичный сигнал. При этом на выходах всех оставшихся нейронов 9.1, 9.3, 9.4 скрытого слоя будет нулевой сигнал. Тогда на выходе сумматора 12 будет получен сигнал
. (6)
Следовательно, полученный результат равен .
Проанализировав полученные результаты можно сделать вывод, что для достижения минимизации схемных задач многовходовой сумматор по модулю два, требуется трехслойная нейронная сеть, в которой входной слой содержит 8 нейронов, предназначенных для распределения входного вектора на входы нейронов скрытого слоя, скрытый слой – 4 нейрона, выходной слой – один нейрон, при этом нейрон скрытого слоя содержит сумматор, и блок вычисления функции активации, реализующий функцию «стрелка Пирса», при этом каждый из сумматоров имеет n + 1, где n = 8, входов, первые n входов подключены к выходам нейронов входного слоя соответственно, а на n + 1 вход подается сигнал смещения, величина которого для первого скрытого нейрона равна – 1, для второго равна – 3, для третьего равна – 5, для четвертого равна – 7, выход i-го сумматора, где i = 1, 2, 3, 4, подключен ко входу i-го блока вычисления функции активации, выход которого является выходом i-го нейрона скрытого слоя, входы сумматора нейрона выходного слоя подключены соответственно к выходам всех нейронов скрытого слоя, а выход сумматора является выходом многовходового сумматора по модулю два.
Выводы
В работе рассмотрены вопросы минимизации временных затрат на реализацию многовходового сумматора по модулю два. Проведенные исследования показали, что результат достигается за счет использования новой функции активации в скрытом слое, применения синаптических весов ωij, равных единице, что позволяют исключить из структуры формального нейрона умножители синатических весов, а также исключения из структуры нейрона выходного слоя блока реализующего вычисления функции активации.