Научная статья на тему 'Реализация параллельного алгоритма подбора структуры искусственной нейронной сети'

Реализация параллельного алгоритма подбора структуры искусственной нейронной сети Текст научной статьи по специальности «Математика»

CC BY
492
181
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИСКУССТВЕННЫЕ НЕЙРОННЫЕ СЕТИ / ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ / КЛАСТЕРНЫЕ СИСТЕМЫ / ПОДБОР СТРУКТУРЫ / АКТИВАЦИОННЫЕ ФУНКЦИИ НЕЙРОНОВ / ARTIFICIAL NEURAL NETWORKS / PARALLEL ALGORITHMS / COMPUTER CLUSTERS / STRUCTURE SELECTION / ACTIVATION FUNCTIONS OF NEURONS

Аннотация научной статьи по математике, автор научной работы — Крючин Олег Владимирович, Вязовова Елена Владимировна, Арзамасцев Александр Анатольевич

Описываются параллельные алгоритмы подбора активационных функций нейронов и структуры искусственной нейронной сети. Для оценки эффективности предложенных алгоритмов используется подсчет числа сделанных ими мультипликативных и аддитивных операций.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Крючин Олег Владимирович, Вязовова Елена Владимировна, Арзамасцев Александр Анатольевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

REALIZATION OF PARALLEL ALGORITHM OF ACTIVATION OF STRUCTURE OF ARTIFICIAL NEURAL NETWORKS

The parallel algorithms of training of activation functions and structure of artificial neural networks are described. For estimation of these algorithms efficiency it uses the count of multiplicative and additive operations which are done by serial and parallel algorithms.

Текст научной работы на тему «Реализация параллельного алгоритма подбора структуры искусственной нейронной сети»

УДК 519.95

РЕАЛИЗАЦИЯ ПАРАЛЛЕЛЬНОГО АЛГОРИТМА ПОДБОРА СТРУКТУРЫ ИСКУССТВЕННОЙ НЕЙРОННОЙ СЕТИ

© О.В. Крючин, Е.В. Вязовова, А.А. Арзамасцев

Ключевые слова: искусственные нейронные сети; параллельные алгоритмы; кластерные системы; подбор структуры; активационные функции нейронов.

Описываются параллельные алгоритмы подбора активационных функций нейронов и структуры искусственной нейронной сети. Для оценки эффективности предложенных алгоритмов используется подсчет числа сделанных ими мультипликативных и аддитивных операций.

ВВЕДЕНИЕ

ОБЩИИ АЛГОРИТМ

Известно, что задача обучения искусственных нейронных сетей (ИНС) сводится к минимизации значения невязки:

N-1 Р-1 N-1 Р-1

: Е Е - )=ЕЕ(р(хъ ^ і - ), (1)

Блок-схема общего алгоритма обучения ИНС изображена на рис. 1. Как можно видеть, алгоритм обучения состоит из трех уровней:

і=0 і=0

і=0 і=0

где ^ - выходные значения моделируемого объекта; у - выходные значения ИНС; N - количество строк в обучающей выборке; Р - количество выходов сети; X - входные значения; й - вектор коэффициентов синаптических связей (весов); Д - вектор активационных функций. Таким образом, ИНС представляет собой модель, входным значением которой является вектор X , выходным - у , а управляющими параметрами -

Д и й. Следовательно, для минимизации невязки необходимо подобрать значения Д и й. На сегодняшний день разработано множество алгоритмов подбора вектора весовых коэффициентов [1-3], но не существует эффективных методов подбора активационных функций нейронов, равно как и размерности этих векторов (определяемых структурой сети). Одна из причин заключается в том, что комбинирование алгоритмов подбора структуры сети, активационных функций нейронов и значений весовых коэффициентов требует значительных временных затрат.

Решением этой проблемы может стать использование кластерных систем - массивов однородных высокопроизводительных компьютеров, соединенных в вычислительную сеть. Целью данной работы является разработка алгоритмов подбора структуры ИНС (для сети типа Вольтерри, многослойного персептрона и сети каскадной корреляции Фальмана) и их реализация для кластерных систем.

Рис. 1. Блок-схема алгоритма обучения ИНС

к

- подбор структуры (определяются размерности векторов Д и й ) - как правило, вначале устанавливается минимально-возможное количество нейронов и затем в процессе обучения добавляются новые;

- подбор активационных функций нейронов (значений вектора Д) - как правило, полный перебор всех возможных вариантов;

- подбор значений весовых коэффициентов (значений вектора й).

КОМПОНЕНТЫ НЕЙРОНА

Универсальный математический нейрон состоит из двух частей - сумматора и активационной функции (рис. 2). Сумматор получает на вход произведения выходных сигналов других нейронов (на рис. 2 - у0 , у1 , у2 ) на значения весовых коэффициентов (на рис. 2 -, й2 ), а также величину импульса (добавочного весового коэффициента). В данном случае имеется два импульса, названных внутренним ( р: ) и внешним

(рЕ ), которые различаются тем, что только внешний импульс может подбираться наряду с весовыми коэффициентами. После того, как сумматор вычисляет значение, оно умножается на коэффициент и передается на вход активационной функции. Значение активационной функции является выходным значением нейрона (уі ). Таким образом, выходное значение і -го нейрона можно выразить следующей формулой:

У,= f (слхг )=fr

( -і

cfi V v

2 yjwp + Peí + Ріг j=0

(2)

где Wj г - значение весового коэффициента, соединяющего j -й и i -й нейроны; су - коэффициент активационной функции; f - активационная функция; Nx - количество входов нейрона [4].

Активационные функции обычно бывают следующих видов:

1) линейная (y = x);

2

2) квадратичная (y = x );

3

3) кубическая (y=x );

4) функция четвертой степени (y = х4 );

5) синусоида (y = sin (х));

6) косинусоида (y = cos(x) );

7) тангенсная (y = tg (x));

8) котангенсная ( y = ctg(x)); і і і

9) сигмоида (y =

і + x

1 + ex

і + е~

і

);

і + е^

10) пороговая функция.

Рис. 2. Модель математического нейрона

Универсальная пороговая функция состоит из пяти элементов: значения порога (к( ), верхнего и нижнего значений по умолчанию (у , у0 ), а также верхнего и нижнего флага, показывающих, следует ли заменять входное значение на значение по умолчанию (ЬС1 ,

ьсо )■

(3)

о о II x ¿ ht

x, о" II о о -с x ^ ht

я і II x>ht,

x, о" II о -с x>ht

Значение функции принимает входное значение в двух случаях: если входное значение меньше порога (х < к() и нижний флаг замещения равен нулю (Ъсо = 0 ) и если входное значение не меньше порога (х > к( ) и верхний флаг замещения равен нулю (Ъс1 = 0). В противном случае выходное значение принимает либо верхнее, либо нижнее значение по умолчанию (Уі или у0 ) (в зависимости от того, больше ли входное значение, чем пороговое) [5].

ПОДБОР КОМПОНЕНТОВ АКТИВАЦИОННЫХ ФУНКЦИЙ

Исходя из вышесказанного, нейрон, имеющий активационную функцию, отличную от пороговой (3), имеет 3 подбираемых элемента (коэффициент активационной функции Су , внутренний импульс р: и тип

активационной функции у), а при функции (3) - 8 (коэффициент активационной функции су , импульс р: , значение порога И( , а также верхнее и нижнее значения по умолчанию (у1 и у0 ) и флаги замены (Ъсо и Ъс1 )). Значения большинства этих элементов являются вещественными числами. Следовательно, могут быть заданы пределы (и хи ) и шаг () сканирования этих элементов, в результате чего значения могут быть выражены формулами (4)-(8):

x

с / = Ха (с/ )+>Х* (с/ ) 1= °Л,-,

Р1 = Х а (Р1 ) + 1Х * (Р1 }> = 0,1 ■ -

уо = Ха (у0) + гХ * (у0 )-г = °Л- -(6)

у1 = Ха (у1 )+1Х* Су1 \* = 0,1 -к= Ха (4 )+Х ^ ) 1 = 0,1 ■ ■ -

Хи (с/ )- Ха (с/ ) Х* (*/ ) _

Хи(Р1)~ Х а(Р1) Х * (Р1) .

Хи (-^’0)- Ха (у0) Х* (у0) _

Хи (у1)-Х а (у1)

. Х * (у1) .

Хи

(4 )-Ха (\ )

Х.1 (^)

+ 1; (4)

+1; (5)

+ 1;

+ 1; (7)

+ 1. (8)

Возможны случаи, когда в переборе участвуют не все элементы, а лишь некоторые, поэтому выразить количество состояний (вариантов активационных функций) нейрона затруднительно. Например, в случае, когда в переборе участвуют коэффициент и внутренний импульс, значения которых перебираются в пределах [-1;1] с шагом 0,5, нейрон имеет 25 состояний.

На рис. 3-4 изображена блок-схема алгоритма изменения активационной функции нейрона (под «стандартным значением» подразумевается значение по умолчанию). Ниже приводится краткое пояснение:

- ввод параметров подбора подразумевает ввод указаний, какие из элементов нейрона следует подбирать, и ввод для них параметров сканирования (Ха (с/ ), Хи (с/ ,1 Х*(с/ ) - для коэффициента акта-

вационной функции; Ха (Р1), Хи (Р1), Х* (Р1) - для

импульса; Ха (^), Хи &), Х* ) - д™ значения по-

рога и т. д.);

- условие проверки сканирования коэффициента активационной функции С/ выполняется в случае,

когда этот коэффициент необходимо сканировать и его значение меньше верхнего предела (С/ < Хи (с/ )). В

случае выполнения этого условия значение коэффициента увеличивается на величину шага (С/ = С/ +

+ Х * (с/ ));

- условие проверки сканирования импульса р1 выполняется в случае, когда значение импульса необходимо сканировать и оно меньше верхнего предела (Р1 < Хи (р1 )). В случае выполнения этого условия значение внутреннего импульса увеличивается на величину шага ( р1 = Р1 + Х* (р1 )), а значение коэффициента активационной функции (если его необходимо

Рис. 3. Блок-схема изменения одного из элементов нейрона (часть 1)

Рис. 4. Блок-схема изменения одного из элементов нейрона (часть 2)

сканировать) устанавливается нижним значением (с/ = Ха {с/ ));

- условие проверки, является ли тип функции / простым (непороговым). В этом случае осуществляется проверка, является ли тип функции последним из перечисляемых (в этом случае перебор завершается). Если текущий тип функции не последний, то устанавливается новый тип, а коэффициент и импульс (в случае перебора) устанавливаются нижними значениями

(с/ = Ха {с/ ), Р/ = Ха {Р1));

- условие проверки сканирования порогового значения к( выполняется в случае, когда значение порога необходимо сканировать и оно меньше верхнего предела (^ < хи Ь)). В случае выполнения этого условия значение порога увеличивается на величину шага (=Нг + Хх (Ь) ), а коэффициент активационной функции и импульс (в случае перебора) устанавливаются нижними значениями (= Ха {с/ ), Р1 = Ха {Р/ ))

- условие проверки флага нижнего стандартного значения ЬС0 выполняется в случае, когда этот флаг

участвует в сканировании и равен нулю (ЬС0 = 0). В этом случае он устанавливается в 1, а коэффициент активационной функции, значение порога и импульс (в случае перебора) устанавливаются нижними значениями (с/= Ха{с/) , К= Ха {К) , Р/ = Ха {Р/ ));

- условие проверки флага верхнего стандартного значения ЬС1 выполняется в случае, когда этот флаг

участвует в сканировании и равен нулю (ЬС1 = 0). В этом случае он устанавливается в 1, нижний флаг (в случае перебора) в 0 (ЬС1 = 1, ЬС0 = 0 ), а коэффициент активационной функции, значение порога и импульс (в случае перебора) устанавливаются нижними

значениями (с/= Ха {с/ ), К = Ха {К ), Р/ =

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

= Ха {Р/ ));

- условие проверки сканирования нижнего значения по умолчанию выполняется в случае, когда нижнее стандартное значение участвует в сканировании и меньше верхнего предела (у^ < Хи {уо )). В этом случае нижнее стандартное значение увеличивается на величину шага (у0 = у0 + Хх {у0 )), флаги стандартных значений (в случае перебора) устанавливаются в 0 (ЬС0 = 0 , ЬС1 = 0), а коэффициент активационной функции, значение порога и импульс (в случае перебора) устанавливаются нижними значениями

(с/= Ха{с/), Ь = Ха{^), Р/ = Ха {Р/ )X

- условие проверки сканирования верхнего значения по умолчанию выполняется в случае, если оно участвует в сканировании и меньше верхнего предела ( У1 < Хх (У)). В этом случае верхнее стандартное значение увеличивается на величину шага (у1 = у1 + + Хх {у1)), флаги стандартных значений (в случае перебора) устанавливаются в 0 ( ЬС0 = 0 , Ьс1 = 0), а нижнее стандартное значение, коэффициент активаци-

онной функции, значение порога и импульс (в случае перебора) устанавливаются нижними значениями

(уо = Ха {уо), с/= Ха{с/), К= Ха {К), Р/= = Х а {Р/)) ■

ПОДБОР СОСТОЯНИЙ ВСЕХ НЕЙРОНОВ

Для успешного обучения необходимо подобрать значения ^ и й таким образом, чтобы минимизировать невязку. Сделать это можно следующим образом: перебрать все комбинации активационных функций, подбирая для каждой из них весовые коэффициенты. При этом следует учитывать, что каждый нейрон может иметь уникальный набор активационных функций. Обозначим набор вариантов для 1 -го нейрона как Уг- , а размерность этого вектора, характеризующую количество комбинаций активационных функций нейрона, -

(У) . Таким образом, значения нейронов изменяются следующим образом:

М(о) - (°о.о. О0.1 .-. °1м -2.0 . °/„-1. о);

М(1) - (°0.0. О0.1 О 1);

М(2) - > .•••. °/м-2.0. °/м-1. 2);

- (Мм (^гп-1)) М М М - (° 0.0. О 0.1 .-. 4-2.1. V!.. о);

- N (^гМ-1)+1) М М М - (° 0.0. О 0.1 .-. °/м-2.1. °/м-1. 1);

М(Г-2) - (у0.^м (Оо )-1 -. °0.^М (О1)-1. - ".°1м-2.Мм(%-2)-] 1. °1м-1."м (О^м-1 )-2);

М(Ім-1) - (°0.^М (Оо)- 1.00. (О1>-1.- ". °1М-2. ММ (О'м-2 )- !. °1м-1.Мм(О^м-1 )-1

Здесь I - общее количество итераций, необходимых

для полного перебора всех вариантов. Следовательно, активационную функцию і -го нейрона на I -й итерации можно вычислить по формуле:

ГГ I 1 Л

ІІ_и(і) _ тоа Мм (Оі) )

М-Г) - Оі .о +

где и(і) вычисляется по формуле: 1,

(9)

о(і) -

і - 1М~1;

П N (V І ), і' < 1М-1

І-і+1

(10)

Для каждого набора активационных функций подбираются значения весовых коэффициентов, и вычисляется значение целевой функции е(р.г-, й), и, таким образом, после перебора всех вариантов получается набор значений погрешности. Минимальная из них соответствует наилучшему состоянию сети.

Общее количество итераций вычисляется по формуле:

М

ІМ-П (V,- )•

(11)

і-0

ОПРЕДЕЛЕНИЕ МИНИМАЛЬНОЙ СТРУКТУРЫ

Подбор количества нейронов во входном слое обусловлен размерностью входного вектора х . Подобная ситуация и с выходным слоем, в котором количества нейронов принимается равным размерности ожидаемого вектора а . Серьезной проблемой остается подбор количества скрытых слоев и числа нейронов в каждом из них. Теоретическое решение этой задачи в смысле условия достаточности было предложено математиками, занимающимися аппроксимацией функций нескольких переменных. Следует отметить, что ИНС выступает в роли универсального аппроксиматора обучающих данных (х, а), а в процессе обучения подбираются его функциональные коэффициенты. На этапе функционирования при зафиксированных значениях весов производится простой расчет значения аппроксимирующей функции при заданном входном векторе.

Определение минимального количества скрытых слоев сети основано на использовании свойств аппроксимирующих функций. Каждая заданная функция может быть выражена линейной комбинацией локальных импульсов, которые имеют ненулевое значение только в ближайшей окрестности текущего значения. Импульсная функция определенной структуры может быть сформирована как суперпозиция двух функций, сдвинутых относительно друг друга. Соответствующим подбором функциональных параметров можно добиться такого импульса, который будет возникать в необходимом месте, а также иметь требуемую ширину и крутизну нарастания.

Возможность обобщения приведенных рассуждений следует из теории Колмогорова. Если ограничиться непрерывной функцией, трансформирующей Ь -мерное множество входных данных х в Р -мерный

выходной вектор а , то можно доказать, что аппроксимация такого типа осуществима при использовании сети с одним скрытым слоем. При Ь входных нейронах будет достаточно использовать для реализации этой функции скрытый слой с (2Ь +1) нейронами [6].

Существуют некоторые рекомендации относительно необходимой топологии ИНС, позволяющие использовать их для решения задач моделирования. В основе этих рекомендаций лежит фундаментальная для теории ИНС теорема А.Н. Колмогорова и В.И. Арнольда о представлении непрерывных функций многих переменных в виде суперпозиции непрерывных функций одной переменной и сложения:

/{х1,х2,.., хЬ ) = Е 8к X {х, )

Л

(12)

где Як и Я ,к - некоторые функции одной переменной.

Таким образом, из объединенной теоремы Колмогорова-Арнольда следует, что для любого алгоритма существует ИНС, которая его реализует [7, 8].

ПОДБОР СТРУКТУРЫ МНОГОСЛОЙНОГО ПЕРСЕПТРОНА

На рис. 5 изображена блок-схема алгоритма наращивания многослойного персептрона. Как можно видеть, алгоритм следующий:

1) определение начальной структуры сети;

2) подбор весовых коэффициентов;

3) проверка критерия остановки обучения. Если критерий выполняется, то завершение. В качестве критерия могут выступать временные затраты, требуемая точность и т. п.;

4) проверка возможности добавления нового нейрона на последний скрытый слой. В качестве критерия может использоваться максимально допустимое количество нейронов на слое, минимально допустимая разница между текущим и предыдущим значениями невязки и т. п. Если нейроны добавлять можно, то добавляется новый и переход к пункту 2;

5) проверка возможности добавления нового слоя. Если добавить новый слой возможно, то он добавляется. Переход к пункту 2.

Рис. 5. Блок-схема алгоритма наращивания структуры многослойного персептрона

к=11 ,=1

У

ПОДБОР СТРУКТУРЫ СЕТИ КАСКАДНОЙ КОРРЕЛЯЦИИ ФАЛЬМАНА И СЕТИ ВОЛЬТЕРРИ

В отличие от многослойного персептрона, где каждый скрытый слой может иметь произвольное количество нейронов, в каскадной сети и сети Вольтерри количество нейронов на каждом из слоев определяется однозначно. В случае каскадной сети каждый скрытый слой содержит только один нейрон, а в структуре Вольтерри количество нейронов на i -м слое выражается следующей формулой:

N = LNl ~i-1, (13)

где NL - количество слоев; L - количество входов. Следовательно, упростив описанный выше алгоритм (убрав из него подбор числа нейронов в каждом из скрытых слоев) его можно применить для этих типов структур.

ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ ПОДБОРА АКТИВАЦИОННЫХ ФУНКЦИЙ

При использовании параллельных алгоритмов и n процессоров каждый процессор может выполнить часть итераций подбора активационных функций. Таким образом, ведущий процессор будет воспроизводить J^ итераций, а неведущий - J ( J и J^ вычисляются по формулам (14)-(15)):

- отправка на ведущий процессор значений активационных функций и погрешности.

Количество мультипликативных операций, которые производит последовательный алгоритм подбора активационных функций можно записать следующим образом:

= 2й/ц + 2с/ц , (16)

где с - коэффициент, равный отношению времени, затрачиваемого на одну аддитивную операцию, к времени, затрачиваемому на одну мультипликативную;

^ - количество мультипликативных операций, необходимых для подбора весовых коэффициентов.

Для вычисления количества мультипликативных операций, производимых параллельным алгоритмом, необходимо рассмотреть этапы, из которых он состоит:

1) инициализация;

2) передача данных с ведущего процессора на прочие;

3) перебор значений весовых коэффициентов, принадлежащих данному процессору;

4) передача данных со всех процессоров на ведущий;

5) выбор ведущим процессором оптимальной конфигурации.

Если обозначить количество элементов 1 -го нейрона как N.. (ц), то по формуле (17) можно выразить общее количество элементов в сети:

J

n -1

I,, mod n = 0;

г1

I,, mod n Ф 0;

г1

С14)

J * =(J

I., mod n = 0;

г1

С15)

к*- J*[n -1) I* modn ф Q.

Таким образом, на управляющем процессоре алгоритм следующий:

- формирование п -1 структур для неуправляющих процессоров;

- рассылка структур на процессоры;

- перебор всех возможных вариантов из имеющихся на данном процессоре и выбор оптимального набора активационных функций и связанной с ним погрешности;

- получение с процессоров наилучшего вектора активационных функций и соответствующего ему значения невязки;

- выбор наименьшего значения невязки.

Для неуправляющего процессора алгоритм другой:

- получение структуры;

- перебор всех возможных вариантов и выбор оптимальных значений активационных функций и связанной с ними погрешности;

Î * = S Ns [*i )+lw

С17)

где /й - количество весов в ИНС.

На первом этапе на ведущем процессоре происходит 2/ц аддитивных операции (/ ц для организации

цикла и / ц для присвоения), на втором - / ц (п — 1) мультипликативных и 2/^ (п — 1) аддитивных. На неведущих на втором этапе происходит /ц мультипликативных и 2/ц аддитивных операций, но начаться они

могут лишь после того, как ведущий процессор отправит данные, поэтому на неведущем процессоре происходит С^^ мультипликативных операций:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

С2) = к/ц + 2кс/ц + Т(/ц, ^+ ^ + 2с/ц =

= 1ц {к + 2кС + 2С + 1) + У{/ц , У).

С18)

Количество операций на третьем этапе аналогично количеству операций, выполняемых последовательной версией алгоритма.

На четвертом этапе ведущему процессору необходимо получить лучшие весовые коэффициенты и соответствующее им значение невязки с каждого процессора,

I

n

i= Q

I

И

Таблица 1

Количество мультипликативных операций на различных этапах параллельного подбора активационных функций

Этап Ведущий процессор Неведущий (к -й) процессор

1 2о1ц

2 1ц (п -1)(1+ 2о) 1ц (к + 2ко + 2о +1) + + Y (1ц, v)

3 z wJ ц + 2oJ ц zwJ ц + 2oJ ц

4 n (lw + 1X1+ 2о) + + Y i + 1) i + 1\1+ 2о)

5 Ion

поэтому он делает (п —+1) мультипликативных и 2(п —1)(/[1 +1) аддитивных операций, а неведущий -

/ м +1 мультипликативных и 2/^ + 2 аддитивных.

Кроме того, ведущий процессор должен ожидать отправку.

На пятом ведущий процессор делает 2п аддитивных операций. Если привести аддитивные операции к мультипликативным, то можно получить выражения, приведенные в табл. 1.

До начала получения ведущим процессором весовых коэффициентов и значений невязки он осуществляет 3 этапа (обозначим общее количество операций

Со ), а прочие - 4 (обозначим общее количество опе-

рац™ Сцк ).

Таким образом, параллельный подбор активационных функций требует ^ операций:

^= *=7.“ i (maXc^ + к (/ + 1)20+^ Сц* + y(/+1. v)))+ (19)

+ (/ц + 1)1 + 2o)+ 2on.

где Сц0 , C^k вычисляются по формулам (20)—(21):

Сц0 = 2о1ц +1(n -l)(l + 2о) + zwJ ц + 2J ц ; (20)

Cvk=K (к + 2ко + о +l) + y(v . v)+ zwJ¡

+ 2oJ + (v +l)(l + 2o)

(21)

ÁZ ) =

z z I + 2oI

ц _ w ц ^ ц

nZ„

nZ„

(22)

ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ САМООРГАНИЗАЦИИ СТРУКТУРЫ

При реализации параллельной версии алгоритма самоорганизации структуры ведущий процессор формирует п структур и посылает на остальные. Получив структуру ИНС, процессоры начинают подбор весовых коэффициентов (и при необходимости активационных функций). После того, как какой-либо процессор заканчивает обучение, он посылает обученную структуру ведущему, который проверяет необходимость продолжать обучение. Если такая необходимость остается, он формирует новую структуру и вновь посылает ее свободному ненулевому процессору. Такой процесс продолжается до тех пор, пока не будет подобрана структура, которая удовлетворяет необходимым условиям.

Обозначим количество элементов исходной структуры ИНС как £(о), тогда после добавления одного скрытого нейрона количество элементов становится равным £(1), после добавления второго - £(2) и т. д. Значения £ зависят от типа структуры сети. Таким образом, в случае, когда для подбора структуры сети необходимо перебрать I£ вариантов, количество операций может быть выражено формулой (23):

Is -1/ / ч

zs = L Z i?1' >)

i=0

+ zh

(?(i 1ц')+ X ?'),

(23)

где £дг (£(),Mi) - количество операций, которое необходимо для добавления нейрона ц { в / -ю структуру; £(г)) - количество операций, необходимых для

подбора активационных функций (и весовых коэффициентов) сети в / -й структуре; - количество операций, необходимых для проверки критерия остановки обучения при / -й структуре.

В случае параллельного подбора структуры каждый процессор подбирает активационные функции (и весовые коэффициенты) самостоятельно. В этом случае к -й процессор для обучения одной структуры затрачивает

*, £(к—1|)

операций, а поскольку он тратит операции

на получение и отправку этой структуры, а также ожидание формирования, то общее количество операций вычисляется по формуле (24):

С10) = (* +1)?(*-1) + 2 (к + 1)о?(к-1) + ^ (?(к-1))+

к-1

,(s»-1),v)+ L Zn S'> , Mi).

(24)

i=0

Таким образом, эффективность параллельного алгоритма можно выразить формулой (22):

Таким образом, ведущий процессор при первом проходе осуществляет С(о) операций:

а

+

CsO % max (c(0) + T(s(k—l),v) + S^l + 20) + Xsk—l).(25)

k=l. n-1 ' ' 1 1

Поскольку значение І5 обтічно превосходит количество процессоров п , то к -й процессор последовательно обучает структуры с номерами (к — і),

(п+к — 2), (2п — 3 + к), •••, (іп — І — і + к), •••, (і5к ). Номер последней структуры, обучаемой к -м процессором, 15к вычисляется по формуле (26), а количество структур М8(ї8к) - по формуле (27):

ISk = [і S — 1 + k — (іs mod(n — l)), (ls mod n — l)^ [l;k]

IS — n + k — (іs mod (n — l)), (/s mod n — і)є [l; k]

(іs mod n — l)e [l;k ]■

Ns (Isk )

I,

n—l

Is

+ l,

(26)

(27)

n—l

(lS mod n — l)e [l, k].

Таким образом, количество операций, осуществляемых к -м процессором (включая пустые), можно вычислить по формуле (28):

%(1£кИ . . . . . . . (28)

С::к= +80Я « +^ £ «)+ 2у£ 1')»)+1„ £(>) ,)+ X ь) )+Сг (к )

¡=1

j = An

(n — l) + k — l,

где

С (к) = с£° + у£(к—1),»)+ £(к—1 + 2о£(к—1 + X£к—!.

Соответственно, общее количество операций 2£ вычисляется по формуле (29), а коэффициент эффективности - по формуле (30):

ZS = Tx /+ Vs

k=l..n—l

(29)

тивационных функций нейронов и архитектуры сети. Поскольку данный алгоритм подразумевает невысокую нагрузку на интерконект, то в качестве кластерной системы может быть использована обычная локальная сеть.

ЛИТЕРАТУРА

1. Крючин О.В., Арзамасцев А.А., Королев А.Н., Горбачев С.И., Семенов Н.О. Универсальный симулятор, базирующийся на технологии искуственных нейронных сетей, способный работать на параллельных машинах // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2008. Т. 13. Вып. 5. С. 372-375.

2. Крючин О.В. Параллельные алгоритмы обучения искусственных нейронных сетей с использованием градиентных методов // Актуальные вопросы современной науки, техники и технологий: материалы 2 Всерос. науч.-практ. (заочной) конф. М.: Издат.-полиграф. комплекс НИИРРР, 2010. С. 81-86.

3. Крючин О.В. Разработка алгоритмов обучения искусственных нейронных сетей, использующих параллельное вычисление целевой функции // Известия Смоленского государственного университета. Смоленск, 2010. № 2 (10). С. 126-134.

4. Крючин О.В., Арзамасцев А.А. Сравнение эффективности последовательных и параллельных алгоритмов обучения искусственных нейронных сете на кластерных вычислительных системах // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2010. Т. 15. Вып. 6. С. 372-375.

5. Крючин О.В. Нейросетевой симулятор с автоматическим подбором активационных функций // Информационные технологии. М., 2010. № 7. С. 47-52.

6. Осовский С. Нейронные сети для обработки информации. М.: Финансы и статистика, 2002. 344 с.

7. Арзамасцев А.А., Крючин О.В., Азарова П.А., Зенкова Н.А. Универсальный программный комплекс для компьютерного моделирования на основе искусственной нейронной сети с самоорганизацией структуры // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2006. Т. 11. Вып. 4. С. 564570.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

8. Арзамасцев А.А., Зусман Ю.А., Зенкова Н.А., Слетков Д.В., Шку-та Н.О., Крючин О.В., Банников С.С., Королев А.Н., Шкато-ва Л.С., Шохина Т.Б. Реализация проекта Tempus Tacis «System Modernisation of University Management» в Тамбовском государственном университете им. Г.Р. Державина // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2006. Т. 11. Вып. 5. С. 619-645.

Поступила в редакцию 8 апреля 2013 г.

где Vs - задержки, возникающие из-за асинхронности процесса;

Xz )=

nZa

(30)

ВЫВОДЫ

Таким образом, разработан параллельный алгоритм обучения ИНС, включающий в себя подбор ак-

Kryuchin O.V., Vyazovova E.V., Arzamastsev A.A. REALIZATION OF PARALLEL ALGORITHM OF ACTIVATION OF STRUCTURE OF ARTIFICIAL NEURAL NETWORKS

The parallel algorithms of training of activation functions and structure of artificial neural networks are described. For estimation of these algorithms efficiency it uses the count of multiplicative and additive operations which are done by serial and parallel algorithms.

Key words: artificial neural networks; parallel algorithms; computer clusters; structure selection; activation functions of neurons.

z

s

a

i Надоели баннеры? Вы всегда можете отключить рекламу.