ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
«НАУКА. ИННОВАЦИИ. ТЕХНОЛОГИИ», № 3, 2014
УДК 681.3 Червяков Н. И. [Chervyakov N. I.], Ляхов П. А. [Lyakhov P. A.], Шульженко К. С. [Shulzhenko K. S.]
методы решения задачи распознавания образов с использованием системы остаточных классов*
Methods of solving the pattern recognition problem using residue number system
В статье исследуется возможность реализации алгоритмов решения задачи распознавания образов в системе остаточных классов. Рассмотрены наиболее современные алгоритмы обработки информации в системе остаточных классов и проведен их анализ. Выполнено сравнение методов выполнения немодульных операций на основе функции ядра и полиадической системы счисления. Показано, что использование полиадической системы счисления не приводит к существенному увеличению временной сложности алгоритма при выполнении немодульных операций сравнения и масштабирования. Применение немодульных операций на основе функции ядра накладывает ограничение на выбор модулей системы остаточных классов, однако позволяет повысить параллелизм выполнения операций по каждому модулю. Даются рекомендации по использованию алгоритмов модулярной арифметики, в зависимости от поставленной задачи распознавания.
Ключевые слова: система остаточных классов, распознавание образов, модулярная арифметика, функция ядра, алгоритм.
The paper proposes a possibility of implementing algorithms of solving the pattern recognition problem in the Residue Number System. Considered the most advanced information processing algorithms in the Residue Number System and performed their comparative analysis. The comparison methods of performing non-modular operations based on Core Function and Mixed Radix Conversion. There is show that using Mixed Radix Conversion does not lead to a significant increase in the time complexity of the algorithm when performing such non-modular operations as comparison and scaling. Application of non-modular operations, based on the Core Function imposes a limitation on the choice of Residue Number System moduli set, but allows to increase the parallelism of operations for each moduli. There are provide recommendations for using the modular arithmetic algorithms, depending of formulated pattern recognition problem.
Key words: Residue Number System, Pattern Recognition, Modular Arithmetic, Core Function, Algorithm.
Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований, грант 14-07-31004-мол-а.
Введение
В различных областях человеческой деятельности (экономике, финансах, медицине, бизнесе, геологии, химии, и др.) повседневно возникает необходимость решения задач анализа, прогноза и диагностики, выявления скрытых зависимостей и поддержки принятия оптимальных решений. Вследствие бурного роста объема информации, развития технологий ее сбора, хранения и организации в базах и хранилищах данных (в том числе интернет-технологий), точные методы анализа информации и моделирования исследуемых объектов зачастую отстают от потребностей реальной жизни. Здесь требуются универсальные и надежные подходы, пригодные для обработки информации из различных областей, в том числе для решения проблем, которые могут возникнуть в ближайшем будущем. В качестве подобного базиса могут быть использованы технологии и подходы математической теории распознавания и классификации [1, 2].
В данной статье рассматривается возможность реализации алгоритмов решения задачи распознавания образов в системе остаточных классов (СОК). Арифметика СОК, именуемая иначе модулярной, обладает широкими возможностями для увеличения производительности вычислительных устройств и систем цифровой обработки сигналов (ЦОС) [3-7]. Рассмотрены наиболее современные алгоритмы обработки информации в СОК, произведен их сравнительный анализ. В заключении даются рекомендации по использованию алгоритмов СОК, в зависимости от поставленной задачи распознавания.
Задача распознавания образов
Задача распознавания и классификации объектов состоит в указании принадлежности входного образа, представленного вектором признаков, одному или нескольким предварительно определённым классам. Под объектом при этом понимают различные предметы, явления, процессы, сигналы, ситуации. Каждый объект описывается совокупностью признаков (свойств, характеристик, параметров): А = {а1,а2, ..., а,...,ап}, где А - вектор образа; а, - признак; г - номер признака. Если признаки представлены действительными числами, то можно образы векторов рассматривать как точки #-мер-ного пространства [8].
Пусть в априорном словаре признаков содержится упорядоченный набор объектов или явлений хь ... , хп, где хг можно рассматривать как составляющие вектора ха = {х1, ... , хы }, описывающего априорное пространство признаков систем распознавания (априорное признаковое пространство) размерности N. Конкретные точки этого пространства представляют собой распознаваемые объекты. Далее требуется построить разделяющие функции FI = {х1, ... , xN}, I = 1, ... , т, обладающие следующим свойством: если объект, имеющий признаки х0, ... , х0 , относится к классу то величина Fi {х1,..., х^ должна быть наибольшей. Такой же она должна быть и для всех других значений признаков объектов, относящихся к классу Если через xg обозначить вектор признаков объекта, принадлежащего к ^-му классу, то для всех значений вектора должно быть выполнено соотношение:
х
(х8 )> ^ (х8 ), £ = 1 к. т. 0)
Таким образом, в признаковом пространстве системы распознавания граница разбиений, называемая решающей границей между областями Di , соответствующих классам выражается уравнением:
XgFg (х) - Fg (х) = 0. (2)
Алгоритмы распознавания основываются на сравнении той или другой меры близости или меры сходства распознаваемого объекта с каждым классом [1]. При этом, если выбранная мера близости L данного объекта а с каким-либо классом £ = 1,...т превышает меру его близости с другими классами, то принимается решение о принадлежности этого объекта классу т. е. ю е Данный этап процесса распознавания является одним из самых важных и вычислительно затратных, поэтому весьма актуальной представляется задача увеличения производительности систем распознавания.
Введение в систему остаточных классов
СОК обладает большим потенциалом ускорения арифметических операций, достигающегося оперированием с ма-
лыми вычетами, а также параллельностью вычислений. Для определения СОК выбирается набор взаимно-простых (обычно простых) чисел {m1,m2,...,mn}, называемых модулями. Произведение модулей
п
М = Y\mt называется диапазоном СОК. Арифметика в СОК является
г=1
точной до тех пор, пока результаты операций с числами (в том числе и промежуточные) не превышают диапазона СОК. Взаимно однозначное соответствие между X е ZM = {0,1,...,М -1} и представлением числа в СОК X <-» {Xlf...,XL}, где Xi = Xmodmt, устанавливается Китайской теоремой об остатках (КТО) [3]. Арифметические операции сложения, вычитания и умножения в СОК задаются по формулам
Z = X±Y^\xml±Yjml,...,\XmL±YmL\J,
где IQi IQ\mj означает Q mod my.
Можно выделить два основных преимущества модулярной арифметики [9]:
1. Арифметические операции сложения, вычитания и умножения выполняются без переносов, в отличие от позиционного представления чисел.
2. Для каждого значения модуля mi арифметические операции выполняются с парой соответствующих вычетов параллельно, при этом вычеты имеют гораздо меньшую разрядность, чем исходные операнды X и Y.
Существуют, однако, и недостатки арифметики в СОК. Основной проблемой является сложность выполнения операции деления и сравнения двух чисел.
Как было указано выше, одним из важнейших этапов решения задачи распознавания образов является определение меры близости распознаваемого объекта и каждого из классов О,. Для выполнения этого этапа в СОК требуется эффективное выполнение операций срав-
нения и масштабирования. От того, насколько эффективно можно реализовать работу данного этапа в СОК, зависит возможность применения модулярной арифметики для решения задачи распознавания.
Использование функции ядра для реализации немодульных операций в СОК
В работе [10] предложен метод масштабирования чисел в СОК при помощи функции ядра. Для целого числа п, функция ядра определяется по формуле:
т,
=£(»-*)•- (4) т
где n = n mod mt и w, некоторые коэффициенты называе-
мые весовыми. Полагая n = M в (4) получим
= (5)
т
С(М) ^
откуда —^—- = У_,— (6) М ¡т{
Из этого следует, что некоторые из wi должны быть отрицательными, чтобы получить небольшое значение С(М). Подставляя (6) в (4) получим:
(7)
М ! т1
Последнее уравнение позволяет рассмотреть представление функции ядра С(п) как сумму линейной части п ■сС(М) и неко-
^ wi М
торой «шумовой» составляющей ^ п •—- [11].
Весовые коэффициенты wi находятся по формуле
™,=\с{м)-М*-1\ , (8)
где
м
. Из формулы (8) видно, что значения весовых коэффициентов wi зависят только от выбора С(М). Алгоритм, предложенный в работе [10] основан на выборе с(м)=» 4м.
Алгоритм 1.
Масштабирование числа х с использованием функций ядра.
1. В СОК с заданным набором модулей (ть т2,..., тп}
найти
. м
М * = м и м М
ГП: 1 1
м
для всех 1 < , < п.
2. Найти базисы СОК Вг = М*М*-11.
3. Множество модулей mi разбить на два подмножества , и К так, чтобы произведения модулей внутри каждого подмножества удовлетворяли соотношениям MJ МК = М и м, «1.
МК
4. Положить С,(М) = М, и СК(М) = МК. Найти ДС (М) = CJ (М) - СК (М). По формуле (8) найти значения весовых коэффициентов для С, (М) и СК (М).
5. Найти значения функций ядра от базисов СОК
-!--и сМ=— ~
т,
/и,-
Найти ДС (В, ) = С, {В,) - Ск (В,)
6. Для заданного числа х найти значения
№ (х) п
№к (х),
Iх, • С, (В,)
для т е ,, и
I х, • Ск (В,) для т е К
7. Найти четность ранга R(х) по формуле
№ I
IX, ■ М*-1
- х
т
т
т
т
2
8. Найти разность между значениями функций ядра по формуле
АС(х) =
-Аф,)-|л(х)2 • АС(м)
2ДС(М) .
9. Прибавить ДС(х) к Ск (х). Полученный результат будет приближением числа х с точностью «
Приведенный выше алгоритм накладывает ограничение на выбор СОК. Для корректной работы алгоритма все модули mi должны быть нечетными. Основным достоинством рассмотренного алгоритма является параллельность выполнения операций по каждому из модулей mi.
Пример 1.
Пусть СОК задана набором модулей {ть т2, т3, т4} = {5, 7, 11, 13}. М= 5 • 7 • 11 • 13 = 5005, М*-1 = {1001, 715, 455, 385}, М ;-1 ={1,1,3,5}. Базисы СОК равны В = {1001, 715, 1365, 1925}. Положим MJ = 7 • 11 = 77, Мк = 5 • 13 = 65, ДС(М) = 77 - 65 = 12. Найдем значения весовых коэффициентов для С/(М) и СК(М) по формуле (8):
Для С/ (М):
= |С,(м)-1|5 =|77|5 =2 или -3, И>2=|СЛМ)-1|7=|77|7=о, ^=|С/(М)-3|11=|231|11=0,
=|С7(М)-5|13 =|385|13 =8 или -5.
Для Ск (М):
"1=Мм)-1|5=|65|5=0,
Ч^О^)'1!? = |6517 = 2 или -5, м>3 =\СК{М)-З\п =|195|п =8, или -3, *4=|Сг(м).5|13=|325|13=0.
№3 , 2014
47
Рисунок 1. Графики функций ядра для M = 5005:
а) С(М) = 77,
б) С(М) =65.
Для того чтобы минимизировать нелинейную составляющую в формуле (7), выберем значения весовых коэффициентов наименьшими по модулю. Для С,(М) = 77, ^ = {2,0,0, - 5}. Для СК (М) = 65, = (0,2-3,0}. На рисунке 1 изображены графики функций С, (М) и Ск (М).
Найдем значения С (В,), СК (В,) и ДС (В,):
сАв^-^-и Сф3) = ^ = 21, САВ^1^-30; С^Ь^из, Сф2) = ^ = 9,
= = Ц Сф4) = ^°=25;
Дф,)= {2,2,3,5}.
Пусть, далее, задано число х = 3287 (2,4,9,11}.
|С,(х)|7 =|2-15 + 4-11 + 9-21 + 11-30|7 =5,
=|2-15 + 4-11 + 9-21 + 11-30|п =10,
|С^(л:|5 =|2-13 + 4-9 + 9-18 + 11-25|5 =4, |С^(л:|13 =|2-13 + 4-9 + 9-18 + 11-25|13 =5.
Найдем четность ранга числа х: |Д(*)|2 =|2-1 + 4-1 + 9-3 + 11-5-1|2 =1.
Далее находим
(Аф^ =|2-2 + 4-2 + 9-3 + 11-5-1-12|24 =10.
Наконец, находим значения модулей после масштабирования числа п:
м4=14+1015=4, м4=5,
|С/(Х)13=|5 + 10|13=2.
Масштабированное значение числа х = 3287 = {2,4,9,11} равно {4,5,10,2}. Полученный результат можно проверить при помощи перевода в позиционную систему счисления на основе КТО:
= 4 ■ 1001 +5 ■ 715+10 ■ 1365+2 ■ 1925,= 54 < 65.
м 1 15005
Реализация немодульных операций в СОК при помощи перевода в полиадическую систему счисления
Другим весьма перспективным из способов реализации таких немодульных операций, как сравнение и масштабирование, в СОК является использование полиадической системы счисления [3]. Зададим полиадическую систему счисления тем же набором модулей, что и СОК, выполнив при этом условие упорядоченности модулей по возрастанию:
тх < т2 < ... < тп . (9)
Число Х в полиадической системе счисления имеет вид
X = хп т1т2...тп-1 + хп-1т1т2...тп-2 + х3 т1т2 + х2 т1 + х1, (10)
где 0 < хк < тк - цифры числа в полиадической системе
счисления.
Диапазоны чисел, однозначно представимых в СОК и построенной полиадической системы счисления совпадают, поэтому между двумя этими системами счисления можно установить взаимнооднозначное соответствие.
Для перевода числа из СОК в полиадическую систему счисления нужно построить матрицу перевода || Ту ||, элементы которой определяются из сравнений
Tijmi = 1(mod mj), (1 < i < j < n). (11)
Процесс преобразования числа X из СОК X = (хь X2,...,х„) в полиадическую систему счисления X = (xb x2,..., xn} осуществляется по алгоритму:
Xi = Xi (mod mi),
X2 = (X2 - Xi) • T12 (mod m2), (12)
Хз = ((Хз - X1) • T13 - X2 ) • T23 (mod тз),
Хз = ((...(Xn- X1) • Tm - X2 ) • T2n- ... - Xn-2) • T„_1,„ (mod m„).
Представление числа в полиадической системе счисления обладает позиционными характеристиками, в отличие от СОК, что позволяет производить непосредственное сравнение чисел, а также сразу масштабировать исходное число по наибольшему из модулей системы счисления.
Пример 2.
Пусть СОК задается теми же модулями, что и в примере 1, {ть т2, т3, т4} = {5, 7, 11, 13}. Очевидно, что условие упорядоченности модулей (9) выполнено. Матрица || т- || для заданной СОК равна:
II тТ1 =
(0 3 9 8^ 0 0 8 2 0 0 0 6
ч0 0 0 0,
Переведем число X= 3287 = {2, 4, 9, 11} в полиадическую систему счисления.
Xj = 2 (mod5),
X2 = (4 - 2) • 3 = 6 (mod7),
X3 = ((9 - 2) • 9 - 6) • 8 = 5 (mod 1),
Таблица 1. СРАВНЕНИЕ АЛГОРИТМОВ ВЫПОЛНЕНИЯ НЕМОДУЛЬНЫХ ОПЕРАЦИЙ
В СОК
используемый метод функция ядра Полиадическая система счисления
Параллельность Да Нет
Вычисления по модулю, не входящему в исходную СОК Да Нет
Интервал масштабирования = V(M max{m,}
Возможность непосредственного сравнения чисел Нет Да
Временная сложность алгоритма
x4 = (((11 - 2) • 8 - 6) • 2 - 5) • 6 = 8 (mod 13).
Таким образом, число X = (2, 6, 5, 8) в полиадической системе счисления с основаниями {m1, m2, m3, m4} = {5,7,11,13}. Последняя цифра числа x4 = 8 означает, что число X попадает в 8-й из 13-ти интервалов, на которые разбивает диапазон M наибольший модуль m4 = 13.
Сравнительный анализ алгоритмов выполнения немодульных операций
В таблице 1 приведено сравнение алгоритмов обработки информации в СОК для задачи распознавания образов. Из таблицы видно, что алгоритм, построенный с использованием функции ядра, обладает меньшей временной сложностью. Это происходит за
счет параллельной обработки данных. Тот факт, что непосредственное сравнение чисел невозможно при использовании данного алгоритма, может быть компенсирован в задачах с большим числом характеристик распознаваемого объекта, путем внесения дополнительной вероятностной величины, что позволит заменить непосредственное сравнение масштабированием.
Метод, основанный на использовании полиадической системы счисления, имеет свои достоинства. Так, для использования этого метода не требуется введения дополнительных каналов обработки информации по модулям, не входящим в СОК. Кроме того, при использовании СОК с небольшим числом модулей, увеличение временной сложности алгоритма не является значимым, что позволяет широко использовать основное достоинство алгоритма - возможность непосредственного сравнения чисел.
Заключение
Современные достижения модульной арифметики таковы, что наиболее часто используются 5-ти, 6-ти и 7-ми модульные СОК. Для решения задачи распознавания образов в таких СОК весьма перспективным представляется использование алгоритма сравнения чисел при помощи перевода в полиадическую систему счисления. Однако с увеличением числа модулей систем ЦОС, а также количества параметров распознаваемого объекта, более выгодным может оказаться использование алгоритмов на основе функции ядра.
Оба рассмотренных алгоритма могут быть использованы для построения систем ЦОС с использованием нейросетевых технологий, в частности нейронных сетей конечного кольца. Однако этот вопрос требует дальнейшего изучения и практической проверки.
библиографический список
1. Вапник В.Н., Червоненкис А.Я. Теория распознавания образов (статистические проблемы обучения). М.: Наука, 1974. 415 с.
2. Хайкин С. Нейронные сети: полный курс, 2-е издание // Пер. с англ. М.: Издательский дом «Вильямс», 2006. 1104 с.
3. Модулярные параллельные вычислительные структуры нейропроцессорных систем / Н. И. Червяков, П. А. Сахнюк, А. В. Шапошников, С. А. Ряднов; под ред. Н. И. Червякова. М.: ФИЗМАТЛИТ, 2003. 288 с.
4. Червяков Н.И. Реализация высокоэффективной модулярной цифровой обработки сигналов на основе программируемых логических интегральных схем // Нейрокомпьютеры: разработка, применение. № 10, 2006. С. 24-36.
5. Chervyakov N.I., Lyakhov P.A., Babenko M.G., Digital filtering of images in a residue number system using finite-field wavelets, Automatic Control and Computer Sciences 48 (3), 2014, pp. 180189.
6. Chervyakov N.I., Lyakhov P.A., Shulzhenko K.S. FIR Filters in Two-Stage Residue Number System // International Conference «Engineering & Telecommunication En&T 2014». Moskow; Dolgo-prudny: MIPT, 2014. P. 145-148.
7. Червяков Н.И., Ляхов П.А., Шульженко К.С. Цифровые фильтры в двухступенчатой системе остаточных классов с модулями специального вида // Наука. Инновации. Технологии. 2014. № 1. С. 41-55.
8. Горелик А.Л., Скрипкин В.А. Методы распознавания. М.: Высшая школа, 2004.
9. Стемпковский А. Л., Корнилов А. И., Семенов М. Ю. Особенности реализации устройств цифровой обработки сигналов в интегральном исполнении с применением модулярной арифметики // Информационные технологии. № 2, 2004. C. 2-9.
10. N. Burgess, "Scaling an RNS Number Using the Core Function", 16th IEEE Symp. Computer Arithmetic, Santiago de Compostella, Jun. 2003, pp. 262-271.
11. A. Omondi, B. Premkumar, Residue Number Systems: Theory and Implementation, Imperial College Press 2007. P. 296.
ОБ АВТОРАХ
Червяков Николай Иванович, доктор технических наук, профессор, заведующий кафедрой прикладной математики и математического моделирования Северо-Кавказского федерального университета. Телефон (8652) 95-68-00, (доб. 49-32). E-mail: k-fmf-primath@stavsu.ru
Ляхов Павел Алексеевич, кандидат физико-математических наук, доцент кафедры прикладной математики и математического моделирования Северо-Кавказского федерального университета. E-mail: ljahov@mail.ru.
Шульженко Кирилл Сергеевич, студент специальности «Прикладная математика и информатика», Северо-Кавказский федеральный университет. E-mail: kirill-joker@mail.ru.
Chervyakov Nikolay Ivanovich, Doctor of Technical Sciences, Professor, Head of Department of the Applied Mathematics and Mathematical Modeling North Caucasus Federal University. Phone: (8652) 95-68-00. E-mail: k-fmf-primath@stavsu.ru.
Lyakhov Pavel Alekseyevich, Ph. D., Assistant Professor, Department of the Applied Mathematics and Mathematical Modeling North Caucasus Federal University. E-mail: ljahov@mail.ru.
Shulzhenko Kirill Sergeyevich, Student of Department of the Applied Mathematics and Mathematical Modeling North Caucasus Federal University. E-mail: kirill-joker@mail.ru.