В табл. 3 приводятся не масштабированные суммы устойчивых значений, полученные на тестовой выборки данных.
Выводы
1. В нейронной сети прямого распространения возможна реализация точечных отображений входных значений на активационных функциях её нейронов.
2. Модель сети, основанной на точечных отображениях, позволяет рассчитывать коэффициенты наклона а и смещения в для нейронов сети и число нейронов в различных слоях сети. Веса синапсов являются значениями весовой функ-
ции Щ£), рассчитанными для определённых значений её аргумента. Вид Ж(£) определяется желаемыми характеристиками низкочастотной фильтрации входного сигнала и задает форму окна фильтрации в частотной области.
3. Наличие точечных отображений позволяет использовать сеть в качестве классификатора, определяющего принадлежность входного сигнала к одному из заранее известных классов.
4. Нейронная сеть, рассчитанная для определения принадлежности объектов к одному заранее известных классов, позволила в экспериментальной проверке достичь точности классификации свыше 96 %.
СПИСОК ЛИТЕРАТУРЫ
1. Хайкин С. Нейронные сети: полный курс. Пер. с англ. - М.: Издательский дом «Вильямс», 2006. - 1104 с.
2. Лоскутов А.Ю., Михайлов А.С. Введение в синергетику. - М.: Наука, 1990. - 270 с.
3. Миронов С. Ирисы Фишера [Электронный ресурс]. - режим доступа: http://www.delphikingdom.com/asp/viewitem.asp7cata-к^=400. - 21.10.2008.
Поступила 27.10.2008 г.
УДК 681.3.06:681.323
ОТОБРАЖЕНИЕ НЕЙРОСЕТЕВЫХ АЛГОРИТМОВ АНАЛИЗА ИЗОБРАЖЕНИЙ НА РЕГУЛЯРНЫЕ СТРУКТУРЫ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
М.С. Тарков
Институт физики полупроводников СО РАН, г. Новосибирск E-mail: [email protected]
Предложены алгоритмы отображения матрицы весов первого (скрытого) слоя нейронной сети на распределенные вычислительные системы с тороидальной структурой при параллельном решении задач анализа изображений. Показано, что выбор способа отображения зависит от отношения числа нейронов в слое к числу весовых коэффициентов нейрона (пикселей изображения). В частности, для сети Хопфилда распределение по процессорам строк матрицы весов дает более высокую эффективность распараллеливания вычислений, чем распределение столбцов.
Ключевые слова:
Анализ изображений, нейронные сети, распределенные вычислительные системы, отображение алгоритмов.
Введение
В настоящее время наблюдается устойчивая тенденция роста объема перерабатываемой визуальной информации в современных информационных системах. Вместе с этим возрастают и требования к производительности таких систем. Одним из наиболее перспективных направлений в решении этой проблемы является использование нейрокомпью-терных технологий обработки изображений [1, 2]. В качестве преимущества такого рода технологий можно выделить возможность в рамках единого ме-тодико-алгоритмического базиса решать самые различные задачи обработки изображений. Кроме того, следует отметить, что большинство задач обра-
ботки изображений допускают естественный параллелизм вычислений в реализации соответствующих вычислительных процедур в силу специфики представления самого цифрового изображения (как двумерного или многомерного массива чисел).
Элемент нейронной сети (нейрон) реализует преобразование вида у=Му>х)), где (м,х) - скалярное произведение вектора входных сигналов х на вектор весовых коэффициентов нейрона, / - нелинейная функция. Каждый весовой коэффициент соответствует одному входу (синапсу) нейрона. Множество нейронов, обрабатывающих один и тот же вектор входных сигналов х, образует слой нейронов. Функционирование слоя описывается формулой
у = / т),
(1)
где Ж- матрица, строки которой являются весовыми векторами нейронов слоя, У - вектор выходных сигналов слоя. Основную часть вычислений в нейронной сети [1] образуют операции умножения матрицы весовых коэффициентов слоя нейронов на вектор, элементы которого однозначно соответствуют пикселям обрабатываемого изображения, что приводит к большому объему вычислений и необходимости использования высокопараллельных вычислительных систем [3, 4]. Максимально достижимая степень параллелизма вычислений равна числу пикселей изображения.
Распределенная вычислительная система (ВС) представляет собой совокупность элементарных машин (ЭМ), соединенных между собой сетью линий связи, управляемой из этих машин. Структура распределенной ВС описывается графом, вершины которого соответствуют ЭМ, а ребра - межмашинным соединениям. В современных суперкомпьютерах с распределенной памятью в качестве графа межмашинных соединений наиболее часто используется трехмерный тор [3, 4] (Е3 - граф). Класс Ек - графов вычислительных систем составляют к-мерные евклидовы решетки с замкнутыми границами (тороидальные решетки). Группа автоморфизмов Ек такой структуры есть прямое произведение циклических подгрупп Сл: Ек=®к=1Сй, где р1 -порядок подгруппы Ср,, ® - сим вол прямог о произведения. Размер решетки определяется набором образующих р , ,= 1,...,к, по каждому из к измерений. В структурах этого класса каждый узел соединен с 2к другими узлами при значениях образующих р,>2.
Предварительным этапом обработки изображения является фильтрация [5], которая зачастую описывается сверткой изображения с множеством весовых коэффициентов фильтра. Фильтрация обычно предшествует другим преобразованиям, например, преобразованию вида (1). В этом случае результат фильтрации (изображение) представлен в преобразовании (1) вектором х. Для вычисления свертки обычно используется квадратное окно размером (2М+1)х(2М+1), М<<шт(ЛТ1,Лг2), где N и N - размеры изображения. Вычисление значения в точке изображения связано с обработкой малой окрестности этой точки, т.е. алгоритмы фильтрации являются локальными. Из локальности свертки следует, что: 1) соседство процессоров в системе должно соответствовать соседству пикселей изображения; 2) отображение фрагментов данных, обрабатываемых алгоритмами свертки, на процессоры должно сохранять соседство фрагментов; 3) в качестве графа системы параллельных процессов, реализующих фильтрацию изображения, целесообразно использовать евклидову решетку, которая естественным образом вкладывается в тороидальную структуру ВС.
Далее всюду полагаем, что компоненты изобра-
жения равномерно распределены по машинам системы так, что соседние пиксели всегда располагаются либо в одной ЭМ, либо в соседних машинах решетки.
Способ организации межмашинных обменов при параллельном выполнении операции (1) будет определяться распределением по машинам коэффициентов матрицы весов Ж. В настоящее время разработано много методов отображения нейронных сетей на параллельные вычислительные системы [6, 7], но эти методы не учитывают специфики вышеописанного геометрического параллелизма алгоритмов предварительной обработки изображений. Решение этой проблемы является целью данной работы, в которой рассматривается два способа вложения слоя нейронов в структуру распределенной ВС: 1) размещение строк матрицы весовых коэффициентов по машинам системы (параллелизм нейронов); 2) размещение столбцов матрицы весов по машинам системы (параллелизм синапсов).
1. Вложение слоя нейронной сети путем размещении
строк матрицы весов по машинам
Рассмотрим организацию межмашинных обменов при распределении строк матрицы весов Жпо машинам. Так как каждая строка матрицы весов соответствует одному нейрону сети, то распределение строк матрицы весов описывает размещение нейронов сети по машинам. Чтобы выполнить вычисления для всех нейронов по формуле (1), необходимо собрать в каждой машине компоненты изображения х, т. е. выполнить трансляционно-ци-клический обмен («все со всеми») компонентами вектора х. В результате умножение строк матрицы весов на этот вектор можно выполнить во всех машинах параллельно (количество одновременно выполняемых умножений пар векторов равно числу машин).
Трансляционо-циклический обмен в к?мерном торе сводится к выполнению трансляционно-ци-клических обменов в кольцах тора, т. е. структурах, описываемых циклическими подгруппами. В каждом кольце обмены выполняются следующим образом. Каждая машина М, у=1,...,р, передает свой массив пикселей машине М0-1)ШоЛр., у=1,...,р,, а затем получает массив от машины Му+1)Шоар, у=1,...,р;. Предполагается, что линии связи кольца могут работать одновременно. Описанные действия продолжаются до тех пор, пока каждая машина кольца не получит всех пикселей, распределенных по его машинам. Обмены выполняются параллельно для всех колец -измерения и последовательно по всем ,= 1,2,...,к измерениям. Для двумерного тора (рис. 1) обмены, например, могут быть выполнены параллельно в горизонтальных кольцах, а затем параллельно во всех вертикальных кольцах.
т.(!) = -
]=1
I
(2)
При /=к, преобразуя формулу (2), получаем Утверждение 1. Время Tex=Te(k) трансляционно-циклического обмена данными не зависит от размерности тора k и равно
Т = п\ 1- — IГ Р,
(3)
2тп ( 1
Тг + Тх =-гв + п\ 1--11
Р Р \ Р,
Из (4) и (5) следует
(5)
Утверждение 2. При распределении строк матрицы Жпо процессорам (параллелизм нейронов) коэффициент ускорения не зависит от числа пикселей изображения и равен
1
Т,
■= Р-
1 +
( р - 1к
2т /
(6)
Рис. 1. Пример 2-мерного тора
Пусть п - число пикселей изображения, m - число нейронов в слое, p - число машин в системе, ¡0 -время выполнения одной арифметической операции, 4 - время передачи одного элемента данных, p¡ - порядок г-й образующей тора. Тогда по завершении 1-го шага обмена, /е 1,2,...к, каждая машина со-
п А
держит — П Р< элементов данных, и соответствен-
р 1=1
к
но после к шагов - п элементов, т. к. П Р< = Р-
1=1
При этом время выполнения / шагов обмена равно
(рх -1)(р -1)П р
С учетом того, что число пикселей изображения п>>1, получаем время последовательного выполнения операции умножения Жх в слое
Т и 2тп/ . (4)
о V 1 /
Пусть число нейронов т=кр и число пикселей п=кр, где к>1 и кп>1 - целые числа. При равномерном распределении нейронов по машинам для тора из р машин, получаем время параллельной реализации вычислений в слое (в силу п>>1 временем вычисления нелинейной функции / пренебрегаем)
2. Вложение слоя нейронной сети при размещении столбцов матрицы весов по машинам
При размещении столбцов матрицы весов Жпо машинам системы параллельное вычисление произведения Жх можно организовать следующим образом:
1. Параллельно выполнить поэлементное умножение коэффициентов матрицы Ж на соответствующие компоненты вектора х и для каждого нейрона выполнить суммирование получившихся произведений. При п=2'=кр в р машинах системы параллельно вычисляются частичные суммы.
2. Для вычисления полных сумм для каждого нейрона необходимо произвести обмены, используя двоичное дерево межмашинных соединений, вложенное в граф вычислительной системы. Количество вычисляемых таким образом сумм равно числу нейронов т, которое может быть произвольным и, в частности, кратным числу машин.
Чтобы максимально загрузить машины системы, необходимо обеспечить одновременность выполнения максимального числа операций суммирования. Этому требованию удовлетворяет схема суммирования, называемая «бабочкой», которая позволяет на каждом этапе одновременно вычислять несколько сумм и, если слагаемых достаточно, то число одновременно выполняемых операций сложения равно числу машин системы. На рис. 2 представлен пример бабочки при р=8. Здесь хг, г=0,1,...,7 - массивы частичных сумм, вычисленных на шаге 1.
Так как не все процессы бабочки работают одновременно, то следует объединить операции тех процессов, которые не могут выполняться параллельно. На рис. 2 объединяемые процессы (операции) лежат на одной вертикальной линии. В результате слияния процессов бабочки образуется гиперкуб (рис. 3). Здесь числа в скобках показывают номер шага взаимодействий между вершинами гиперкуба.
Двунаправленные стрелки на рис. 3 показывают, что линии связи между вершинами гиперкуба являются дуплексными, т. е. позволяют выполнять передачу сообщений в обоих направлениях. Благодаря этому свойству, можно на каждом этапе «бабочки» (на рис. 2 - этапы (1)-(3)) выполнять независимое суммирование компонент для двух разных массивов.
D =
X 3 • 2d
- k
d
-> 1.
= т (f -1'^ •
(7)
T = T + T =
c ps cs
2n
log 2 P
= m1 ~J ~ 1j +(Dtw + to) XX max [1 2
m
(9)
Рис. 2. Бабочка при d=3
Полученный слиянием процессов бабочки гиперкуб может быть вложен в тор [8, 9]. При этом неизбежны растяжения ребер гиперкуба. Показано [8], что ¿-мерный гиперкуб может быть вложен в тор Ек(241,...,24к), где ¿4=4, со средним растяжением
Время перемножения соответствующих компонент вектора весов и изображения равно T = mn t
¡mult o '
P
Время суммирования получившихся произведений
Tadd = ml --11 to •
Тогда время вычисления всех частных сумм в работающих параллельно машинах равно
тп (п .
Тр. = Тти1, + ТаМ =-К + т\--1 I =
Р \ Р
Рис. 3. Гиперкуб, полученный слиянием процессов бабочки
При т=кр, где к>1 - целое число, и и>>1 с учетом (4) из (7)-(9) получаем
Утверждение 3. При распределении столбцов матрицы Ж по процессорам (параллелизм синапсов) коэффициент ускорения не зависит от числа т нейронов в слое и равен
Т..» 1
■ = Р-
S„ =
seq
Т
1 +
(P -1)Dtw 2nt
(10)
Далее для каждого из т нейронов вычисляются полные суммы на вложенном в тор гиперкубе из р процессоров за 1о§2р этапов. На каждом из этих этапов могут выполняться операции суммирования не более чем для двух нейронов. Поскольку при переходе от этапа к этапу количество слагаемых уменьшается вдвое и минимально возможное число сумм, вычисляемых на каждом этапе, равно 1, то время вычисления всех полных сумм для т нейронов равно
^Р ( т Л та = ФК + 0) £шах (8)
Полное время параллельной реализации
Из (6) и (10) следует
Утверждение 4. Если m>n/D, то S>SC, иначе S<S„ то есть, если число нейронов больше, чем отношение числа синапсов нейрона (пикселей изображения) к среднему растяжению D ребер гиперкуба на торе, то распределение по машинам строк матрицы весов W (параллелизм нейронов) является более эффективным, чем распределение ее столбцов (параллелизм синапсов), и наоборот.
Для получения численных значений ускорения используем параметры суперкомпьютера Cray T3E [2]: производительность процессора (1200 мега-флопс) и пропускную способность канала связи (480 Мб/с). Предположим, что размер элемента данных равен 4 байтам. Тогда
1 .....- 4
to =-
1,2 -109
¡0,83 •Ю-99 си tw =-
480-10б
¡8,3 •10-
Полагая р=1024, получаем по вышеприведенным формулам коэффициенты ускорения 8Г и 8„ приведенные в таблице.
Таблица. Пример зависимости коэффициента ускорения от числа нейронов
m 1024 2048 4096 8192 16384 32768 65536
Sr 171 293 455 630 780 885 949
Sc 753 753 753 753 753 753 753
Из таблицы следует, что при большом числе нейронов в слое (т=16384,32768,65536) выгоднее производить распараллеливание по нейронам, а при значениях т<8192 целесообразно производить распараллеливание по синапсам.
3. Вложение сети Хопфилда
Нейронная сеть Хопфилда представляет собой однослойную сеть с обратной связью. Ее функционирование описывается рекуррентной формулой
хк+1 = / (Шхк).
Соответствующая матрица весовых коэффициентов Ж в данном случае является квадратной, т. е. число нейронов т равно числу синапсов (числу пикселей изображения) п. С учетом этого из (6) получаем
= Р (Р ^ • (11)
1 +
(Р - 1)tw 2nt
Из сравнения (10) и (11) следует
Утверждение 5. При Б>1 и любых значениях параметров изображения и вычислительной системы для отображения сети Хопфилда распараллелива-
ние по нейронам является более эффективным, чем распараллеливание по синапсам, т. е. 8>8.
Заключение
Рассмотрены методы отображения слоя нейронов на распределенные вычислительные системы с тороидальной структурой при обработке изображений:
• распределение строк матрицы весовых коэффициентов по машинам (параллелизм нейронов);
• распределение столбцов матрицы весов (параллелизм синапсов).
Показано, что выбор способа отображения зависит от отношения числа нейронов в слое и числа весовых коэффициентов нейрона (числа пикселей изображения): если число нейронов относительно мало, то более эффективным является метод распределения по столбцам, иначе более эффективным является распределение по строкам. В частности, для сети Хопфилда, для которой характерно равенство числа нейронов и числа весовых коэффициентов нейрона, лучший результат дает распределение по строкам при любом числе машин в системе.
Предложенные методы отображения дают равномерное распределение по машинам тороидальной ВС результатов преобразования (1). Следовательно, отображение матрицы весов второго слоя нейронов может быть реализовано аналогично отображению первого слоя. При этом способ отображения (по строкам или по столбцам) также определяется отношением числа нейронов второго слоя к числу его входных сигналов.
СПИСОК ЛИТЕРАТУРЫ
1. Нейрокомпьютеры в прикладных задачах обработки изображений. Кн. 8 / Под ред. А.Н. Балухто, А.И. Галушкина. - М.: Радиотехника, 2003. - 224 с.
2. Ghennam S., Benmahammed K. Image Restoration Using Neural Networks // Lecture Notes in Computer Sciences. - Springer-Verlag, 2001. - V. 2085. - P. 227-234.
3. Cray T3E [Электронный ресурс]. - режим доступа: http://www.cray.com/products/systems/crayt3e/1200e.html.
4. Yu H., Chung I-Hsin, Moreira J. Topology Mapping for Blue Gene/L Supercomputer // Proc. of the ACM/IEEE SC2006 Conf. on High Performance Networking and Computing. - November 11-17, 2006, Tampa, FL, USA. - ACM Press, 2006. - P. 52-64.
5. Прэтт У. Цифровая обработка изображений. - М.: Мир, 1982. - Кн. 1. - 312 с.
6. Sundararajan N., Saratchandran P. Parallel Architectures for Artificial Neural Networks. Paradigms and Implementations. - IEEE Computer Society, 1988. - 380 p.
7. Ayoubi R.A., Bayoumi M.A. Efficient Mapping Algorithm of Multilayer Neural Network on Torus Architecture // IEEE Trans. on Parallel and Distributed Systems. - 2003. - V. 14. - № 9. - P. 932-943.
8. Gonzalez A., Valero-Garcia M., Diaz de Cerio L. Executing Algorithms with Hypercube Topology on Torus Multicomputers // IEEE Trans. on Parallel and Distributed Systems. - 1995. - V. 6. - № 8. - P. 803-814.
9. Tarkov M.S., Mun Y., Choi J., Choi H.-I. Mapping Adaptive Fuzzy Kohonen Clustering Network onto Distributed Image Processing System // Parallel Computing. - 2002. - V. 28. - № 9. - P. 1239-1256.
Поступила 14.07.2008 г.