Реализация формата конфигурации структуры искусственной нейронной сети и алгоритмов ее обучения в нейросетевом симуляторе

УДК 519.95

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

© О.В. Крючин

Ключевые слова: искусственные нейронные сети; формат конфигурации; нейросетевой симулятор. Рассматривается формат конфигурации нейросетевого симулятора и всех его базовых элементов - нейронов, структур и алгоритмов обучения. Приведены примеры формирования базовых элементов нейросетевого симулятора.

ВВЕДЕНИЕ

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

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

НЕЙРОН

Формальный нейрон (блок конфигурации определяется тегом neuron) - это узел искусственной нейронной сети, являющийся упрощенной моделью естественного нейрона. Математически его обычно представляют как некоторую нелинейную функцию от единственного аргумента - линейной комбинации всех входных сигналов. Данную функцию называют функцией активации или функцией срабатывания, передаточной функцией [3, 4].

Передаточная функция нейрона определяет зависимость сигнала на выходе от взвешенной суммы сигналов на его входах. В большинстве случаев она является монотонно возрастающей, для некоторых алгоритмов обучения необходимо, чтобы она была непрерывно дифференцируемой на всей числовой оси [5]. Искусственный нейрон полностью характеризуется своей передаточной функцией, и использование различных передаточных функций позволяет вносить нелинейность в

работу нейрона и в целом нейронной сети. Вид передаточной функции определяется атрибутом type, возможные варианты которого:

- линейная (у = x) - Linear - сигнал на выходе нейрона линейно связан с взвешенной суммой сигналов на его входе. В искусственных нейронных сетях со слоистой структурой нейроны с передаточными функциями такого типа, как правило, составляют входной слой [5];

- логистическая ( у =------) - Sigml - область

1 + x

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

- пороговая - Threshold - представляет собой перепад до тех пор, пока взвешенный сигнал на входе нейрона не достигает некоторого уровня - сигнал на выходе равен нулю. Как только сигнал на входе нейрона превышает указанный уровень, выходной сигнал скачкообразно изменяется на единицу. Самый первый представитель слоистых искусственных нейронных сетей - перцептрон состоял исключительно из нейронов такого типа [7]. Ввиду того, что данная функция не является дифференцируемой на всей оси абсцисс, ее нельзя использовать в сетях, обучающихся по алгоритму обратного распространения ошибки и другим алгоритмам, требующим дифференцируемости передаточной функции;

- сигмоида - Sigm2 ( y =

1

1+e

), Sigm3

1

) или Sigm4 ( y =

1

) - один из са-

1+e~x ' “ '' 1+Є^

мых часто используемых на данный момент типов пе-

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

- тригонометрическая - Sin( y = sin (х)), Cos( y = cos(x) X Tg{ y = tg(x) X Cfg( y = ctg(x));

2 3

- степенные - Square( y = х ), Cube( y = х ),

Four-power( y = x4 ).

Блок neuron содержит следующие теги:

- coeff - коэффициент активационной функции;

- impulse - импульс;

- threshold - порог;

- limits - пределы.

Пороговая функция, также известная как функция Хевисайда, - это кусочно-постоянная функция, равная нулю для отрицательных значений аргумента и единице - для положительных. В нуле эта функция не определена, однако ее обычно доопределяют в этой точке некоторым числом, чтобы область определения функции содержала все точки действительной оси. Чаще всего неважно, какое значение функция принимает в нуле, поэтому могут использоваться различные определения функции Хевисайда, удобные по тем или иным соображениям [8].

Блок limits определяет наличие верхнего и нижнего пределов. Он содержит два вложенных тега up и down, каждый из которых имеет атрибут existence, показывающий, имеется ли значение по умолчанию в случае, когда входное значение активационной функции оказывается снизу (для down) или сверху (для up) от порогового значения threshold. Если это значение существует, то атрибут existence равен TRUE и имеется вложенный атрибут value, в котором указано значение предела.

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

1) internal - определяет внутренний импульс;

2) external - определяет внутренний импульс. Имеет атрибут lock, принимающий 2 значения: TRUE -импульс заблокирован и не изменяется в процессе подбора весовых коэффициентов; FALSE - импульс не заблокирован и изменяется в процессе подбора весовых коэффициентов.

Ниже приведен пример конфигурации порогового нейрона с коэффициентом 0,5, выражающегося форму-

f

1, 0,5(х + 0,2) > 0;

0,5(х + 0,2), 0,5(х + 0,2) < 0.

<neuron type="Threshold">

<coeff>0.5</coeff>

<impulse>

<intemal>0. 1 </intemal>

<external lock="FALSE">0. 1 </external>

</impulse>

<limits>

<down existence="FALSE" />

<up existence="TRUE">

<value> 1 </value>

</up>

</limits>

<threshold>0</threshold>

</neuron>

КОНФИГУРАЦИЯ СТРУКТУРЫ СЕТИ

Блок structure, отвечающий за конфигурацию структуры, сети содержит атрибут type, определяющий тип ИНС. Возможные значения:

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

Архитектура сети каскадной корреляции представляет собой объединение нейронов взвешенными связями в виде развивающегося каскада. Каждый очередной добавляемый нейрон подключается к входным узлам и ко всем уже существующим скрытым нейронам сети. Выходы всех скрытых нейронов и входные узлы сети напрямую подключаются также и к выходным нейронам [10-13];

- Voltery - сеть Вольтерри - динамическая сеть для нелинейной обработки последовательности сигналов, задержанных относительно друг друга. Возбуждением для сети в момент i служит вектор х = (xi ,хг-1,хг-2 ,..,xl-L+1), где L-1 - количество единичных задержек, а L означает длину вектора. В соответствии с определением ряда Вольтерри выходной сигнал генерируется по формуле:

L L С L

y(l) = X k xi-‘i)+ X X Сwh н -"и xi-2 i=i i=i b=iv ,

L L

=1 ^=1

X-XI Whi2-,iKXi-i1

Xi-i Xi-i ...Xi-i к i1 2 1 lK

Здесь х обозначает входной сигнал, а веса ^ ^ { , ..., wiк и т. д., называемые ядрами Вольтерри, соответствуют реакциям высших порядков. Порядок этого полинома также называют степенью ряда Вольтер-ри. В случае адаптации реакции системы Вольтерри к заданной последовательности значений необходимо определить соответствующую целевую функцию и минимизировать ее значение с использованием универсальных способов оптимизации нейронных сетей, сводящихся к решению системы дифференциальных уравнений [13-15];

L

+

1

2

- Matrix - многослойный персептрон - полносвязная сеть прямого распространения, которая состоит из входного, выходного и нескольких скрытых слоев. Каждый нейрон предыдущего слоя связан с каждым нейроном последующего. Обычно для обучения сети используется алгоритм обратного распространения ошибки или градиентные алгоритмы [16, 17]. Многослойный персептрон представляет собой модификацию стандартного линейного персептрона [18].

Блок structure содержит следующие теги:

- condition - состояние сети, для некоторых случаев - подвид. Для сети Вольтери в случае, когда значение равно 0, принимается классический вариант структуры, если же значение равно 1, то вариант Осов-ского [13]. Для каскадной сети рекомендуется брать значение, равное нулю, для многослойного персептро-на - неважно;

- layers - положение нейронов;

- weights - положение весовых коэффициентов.

Тег layers определяет конфигурация нейронов. Содержит тег count, определяющий количество слоев, и теги layer, каждый из которых отвечает за определенный слой (они имеют атрибут index, указывающий номер слоя). В свою очередь, тег layer имеет вложенный тег count, описывающий количество нейронов на данном слое, и теги neuron, определяющие нейроны (каждый из них также имеет атрибут index, отвечающий за номер позиции).

Тег weights определяет конфигурацию весовых коэффициентов. В нем определены следующие теги:

- count - количество весовых коэффициентов структуры;

- weight - конкретный весовой коэффициент, имеет атрибут value, хранящий его значение и вложенные теги:

- input - нейрон, к которому идет вес, имеет

вложенные теги:

- layer - номер слоя нейрона;

- neuron - номер позиции нейрона;

- output - нейрон, испускающий вес, имеет

вложенные теги:

- layer - номер слоя нейрона,

- neuron - номер позиции нейрона.

Ниже приведен пример конфигурации для сети

Вольтерри:

<uns>

<structure type="Voltery">

<condition>0</condition>

<layers>

<count>3</count>

<layer index="0">

<count>4</count>

<neuron index="0" type="MacKalock-Pirs">

<coeff>0. 5 </ coeff>

<impulse>

<internal>0. 1 </internal>

<external lock="FALSE">0.01 </external> </impulse>

<function>

<threshold>0</threshold>

<limits>

<down existence="FALSE" />

<up existence="FALSE" />

</limits>

</function>

</neuron>

<neuron index="1" type="MacKalock-Pirs"> <coeff>0. 5 </ coeff>

<impulse>

<internal>0. 1 </internal>

<external lock="FALSE">0.02</external> </impulse>

<function>

<threshold>0</threshold>

<limits>

<down existence="FALSE" />

<up existence="FALSE" />

</limits>

</function>

</neuron>

<neuron index="2" type="MacKalock-Pirs"> <coeff>0. 5 </ coeff>

<impulse>

<internal>0. 1 </internal>

<external lock="FALSE">0.011</external> </impulse>

<function>

<threshold>0</threshold>

<limits>

<down existence="FALSE" />

<up existence="FALSE" />

</limits>

</function>

</neuron>

<neuron index="3" type="MacKalock-Pirs"> <coeff>0.5</coeff>

<impulse>

<internal>0. 1 </internal>

<external lock="FALSE">0.021</external> </impulse>

<function>

<threshold>0</threshold>

<limits>

<down existence="FALSE" />

<up existence="FALSE" />

</limits>

</function>

</neuron>

</layer>

<layer index=" 1 ">

<count>2</count>

<neuron index="0" type="MacKalock-Pirs"> <coeff>0. 5 </ coeff>

<impulse>

<internal>0. 1 </internal>

<external lock="TRUE">0.03</external> </impulse>

<function>

<threshold>0</threshold>

<limits>

<down existence="FALSE" />

<up existence="FALSE" />

</limits>

</function>

</neuron>

<neuron index="1" type="MacKalock-Pirs"> <coeff>0. 5 </ coeff>

<impulse>

<internal>0. 1 </internal>

<external lock="TRUE">0.031 </external> </impulse>

<function>

<threshold>0</threshold>

<limits>

<down existence="FALSE" />

<up existence="FALSE" />

</limits>

</function>

</neuron>

</layer>

<layer index="2">

<count> 1 </count>

<neuron index="0" type="MacKalock-Pirs"> <coeff>0. 5 </ coeff>

<impulse>

<internal>0. 1 </internal>

<external lock="FALSE">0.04</external> </impulse>

<function>

<threshold>0</threshold>

<limits>

<down existence="FALSE" />

<up existence="FALSE" />

</limits>

</function>

</neuron>

</layer>

</layers>

<weights>

<count>6</count>

<weight value="0.1">

<input>

<layer>1</layer>

<neuron>0</neuron>

</input>

<output>

<layer>0</layer>

<neuron>0</neuron>

</output>

</weight>

<weight value="0.2">

<input>

<layer> 1 </layer>

<neuron>0</neuron>

</input>

<output>

<layer>0</layer>

<neuron> 1 </neuron>

</output>

</weight>

<weight value="0.3">

<input>

<layer> 1 </layer>

<neuron> 1 </neuron>

</input>

<output>

<layer>0</layer>

<neuron>2</neuron>

</output>

</weight>

<weight value="0.4">

<input>

<layer> 1 </layer>

<neuron> 1 </neuron>

</input>

<output>

<layer>0</layer>

<neuron>3 </neuron>

</output>

</weight>

<weight value="0.5">

<input>

<layer>2</layer>

<neuron>0</neuron>

</input>

<output>

<layer> 1 </layer>

<neuron>0</neuron>

</output>

</weight>

<weight value="0.6">

<input>

<layer>2</layer>

<neuron>0</neuron>

</input>

<output>

<layer> 1 </layer>

<neuron> 1 </neuron>

</output>

</weight>

</weights>

</structure>

</uns>

ОСТАНОВКА ОБУЧЕНИЯ

Блок stopping предназначен для конфигурации метода остановки обучения и содержит атрибут type, принимающий следующие значения:

- Iterative - остановка по достижению заданного количества итераций, значение тега определяет это количество;

- AbsoluteInaccuracy - остановка по достижению заданного значения погрешности, значение тега определяет это значение;

- RelativeInaccuracy - остановка по достижению заданной разницы между начальной и текущей погрешностями, значение тега определяет величину коэффициента погрешности се , и после того, как выполнится условие се£ < £0 , обучение завершится;

- IdenticalInaccuracyQuantity - остановка по достижению заданного количества одинаковых погрешностей, значение тега определяет это количество;

- Time - остановка по достижению заданного времени обучения, значение тега определяет количество секунд.

Ниже приводится пример остановки обучения по достижению 128 равных значений невязки:

<stopping type="IdenticalInaccuracyQuantity">128</stopping>

СОХРАНЕНИЕ ПРОМЕЖУТОЧНОЙ ИНФОРМАЦИИ ОБУЧЕНИЯ

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

1) object - информация об объекте сохранения, имеет атрибут type, принимающий значения:

- output-data - выходные данные ИНС, вычисляемые при ее обучении; данные сохраняются в формате:

y0 ,0 T d 0 ,0 T £a, 0,0 T £r,0,0 C y0,1 T d0,1 T £a,0,1 T er, 0,1 C

.... C y0, p-1 T d0,p-1 T £a,0,p-1 T £r,0,p-1 R y1,0 T d1,0 T ea, 1, 0 T

8r, 1,0 C y1,1 T d1,1 T £a,1, 1 T £r,1, 1 ...

... C yN-1,p-1 T dN-1,p-1 T £a,N-1,p-1 T £r,N-1,p-b

где ^  - выходные значения объекта (данные из обучающей выборки), стоящее на / -й строке в ] -м столбце; у  - выходные значения, вычисленные нейронной

- абсолютная разница, вычисленная:

-a,i,j = \di,j - yi,j \ ;

относительная разница, вычисленная:

er,i,j

'a,i,j

- inccuracy - погрешность, абсолютная и относительная, сохраняется в формате еа < ТАВ > ег

< ТАВ > е - < ТАВ > £р , где

N-1 Р-1

i=0 j=0

tl — Г—\

ЬГ = XX er,i

i=0 j=0

N

E Г £; = -

N

где N - число строк в обучающей выборке; P - число выходов ИНС;

- weights - значения весовых коэффициентов.

В случае, когда атрибут type принимает значение

weights, имеется вложенный тег best, который принимает значение TRUE, говорящее о том, что сохранять следует наилучшие значения весовых коэффициентов, или FALSE, - в этом случае сохраняются текущие (это актуально лишь для некоторых алгоритмов обучения). Если атрибут type принимает значения inccuracy или output-data, то имеется вложенный тег teaching. Если его значение TRUE, то сохраняются обучающие данные, в противном случае - проверочные;

2) reciver - информация о получателе данных;

3) lock - наличие блокировки в момент сохранения. Варианты: TRUE - есть блокировка; FALSE - нет блокировки;

4) level - уровень сохранения. Варианты:

- 0 - уровень вычисления значения целевой функции;

- 1 - уровень изменения одного весового коэффициента;

- 2 - уровень одной итерации изменения весовых коэффициентов;

- 3 - уровень одной итерации изменения нейрона;

- 4 - уровень одной итерации изменения структуры сети.

Тег receiver содержит конфигурацию получателя и имеет атрибут type, принимающий значение file или socket. В первом случае идет сохранение в файл, а во втором - в сокет. Значение этого тега определяет имя файла или сокета (ip-адрес и порт, разделенные символом ':').

Ниже приводится пример конфигурации сохранения промежуточной информации. В данном случае сохраняется погрешность в файл /tmp/result, и весовые коэффициенты посылаются на локальный сервер, прослушивающий порт 3425.

<preservations>

<preservation>

<level>2</level>

<lock>TRUE</lock>

<object type="inaccuracy">

<teaching>TRUE</teaching>

</object>

<reciver type="file">/tmp/result</reciver>

</preservation>

<preservation>

<level>1</level>

<lock>FALSE</lock>

<object type="weights">

<best>TRUE</best>

</object>

<reciver type="socket">127.0.0.1:3425</reciver> </preservation>

</preservations>

ОБУЧАЮЩАЯ ВЫБОРКА

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

Блок pattern определяет конфигурацию выборки данных, содержит три тега:

1) teaching - конфигурация обучающей выборки;

2) checking - конфигурация проверочной выборки;

3) norming - нормирование.

Первый и второй из приведенных выше тегов содержат следующие вложенные теги:

1) place - конфигурация местонахождения файлов, содержащих выборку, содержит 2 вложенных тега:

a. input - имя файла с входными данными;

b. output - имя файла с выходными данными;

2) size - конфигурация размерности выборки. Содержит три вложенных тега:

a. rows - количество строк;

a,i,j

ь

b. input - количество столбцов входных данных;

c. output - количество столбцов выходных данных;

3) values - конфигурация значений выборки.

Выборка может как содержаться в конфигурации (внутренняя), так и находиться вне нее (внешняя). В первом случае имеет место тег place, а во втором - size и values.

Тег values определяет конфигурацию значений выборки. Содержит теги row, отвечающие за конкретную строку данных и имеющие атрибут index, хранящий номер этой строки. Тег row содержит два вложенных тега - input и output, отвечающих за входные и выходные данные. Эти теги, в свою очередь, содержат теги col, отвечающие за значение, стоящее на определенной позиции. Номер позиции хранит атрибут index.

Конфигурация нормирования определяется тегом norming. Содержит тег limits, отвечающий за пределы нормирования. Этот тег содержит два вложенных -down и up, хранящие значение нижнего и верхнего, соответственно. Если тег limits содержит атрибут col, то значение этого атрибута определяет столбец, к которому применяется нормирование. Если такой атрибут отсутствует, то нормирование применяется ко всем столбцам. Если имеются как теги limits с атрибутом col, так и тег без атрибута, то пределы, содержащиеся в последнем, применяются ко всем столбцам за исключением тех, которые указаны в атрибутах col.

Ниже приводится пример конфигурации обучающей выборки. В данном случае обучающая выборка (3 строки) содержится в конфигурации, а проверочная находится в файлах /data/projects/uns/prog/uns_v08/ debug/src/input и /data/projects/uns/prog/uns_v08/debug/ src/input.

<pattern>

<teaching>

<size>

<rows>3 </rows>

<input>2</input>

<output> 1 </output>

</size>

<values>

<row index="0">

<input>

<col index="0">1</col>

<col index="1">1</col>

</input>

<output>

<col index="0">2</col>

</output>

</row>

<row index="1">

<input>

<col index="0">1</col>

<col index=" 1 ">2</col>

</input>

<output>

<col index="0">3</col>

</output>

</row>

<row index="2">

<input>

<col index="0">3</col>

<col index="1">1</col>

</input>

<output>

<col index="0">4</col>

</output>

</row>

</values>

</teaching>

<checking>

<place>

<input>/data/projects/uns/prog/uns_v08/debug/src/in-put

</in-put>

<output>/data/projects/uns/prog/uns_v08/debug/src/ou-tput

</output>

</place>

</checking>

<norming>

<limits>

<down>0</down>

<up> 1</up>

</limits>

</norming>

</pattern>

ПОДБОР ВЕСОВЫХ КОЭФФИЦИЕНТОВ

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

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

w = (V0,.,Vg ) ;

w = (l0,10,..,l0l0 + s) ;

w = (l0,10,.., /0/0 + 2s) ;

w = (/0,/0,..,/0,/1) ;

w = (/0,/0,..,/0 + s,/0) ;

iW = (/0,/0,..,/0 + s,/0 + s);

w = (/0 /0 ..,/0 + s, /0 + 2s) ;

w = (/1,/1,..,/1,/1) ,

где /0 , /1 - нижний и верхний пределы значений весовых коэффициентов; s - шаг [21].

- MonteKarlo - метод Монте-Карло, в котором значения весовых коэффициентов изменяются [22] согласно формуле:

wi=sirnd

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

. de(w,), dw,-

= 0: L

- QuickProp - эвристический метод, предложенный Фальманом, в котором изменение / -го весового коэффициента на I -й итерации производится согласно правилу:

ДwИ) = -5

где ск - коэффициент минимизации значений весовых

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

весовых коэффициентов ^с^і ^ и фактора момента

ції Ы7^ . Коэффициент минимизации с№ обтічно принимает значение 10-4 и служит для ослабления весовых связей (вплоть до полного разрыва), а фактор момента необходим для адаптации алгоритма к текущим результатам обучения. Коэффициент ці уникален для каждого весового коэффициента и вычисляется в два этапа. На первом определяется величина:

q,

Ve

Ve(w(I-l) j- Ve(w(I)) ’

а на втором коэффициент момента принимает минимальное значение из qi и qmax . В качестве значения qmax Фальманом предложено 1,75 [24];

- RPROP - эвристический метод, суть которого заключается в игнорировании значения градиента, т. е. при вычислении новых значений весовых коэффициентов учитывается исключительно знак. В работах [25, 26] изменение весового коэффициента вычисляется по формулам:

Дї

'(I ^-(I )0s;

;

(qaSiI 1),qmox} Vs(w(I)),-Ve(w(11)),- >0; iqbsi/-1),qmm). Ve^w(I)),-Ve(w(I-1)),- < 0;

Ve(w(I)) Ve(w(I-1)). = 0;

Ve

Ve(w(I-1) ) =0;

Vs(w(I-1) ) < o.

В работе С. Осовского предложены следующие значения qt =1,2, qb = 0,5, qmm = 10-6, qmax = 50 [13];

- BackPropagation - метод обратного раснро-странения ошибки, основная идея состоит в распространении сигналов ошибки от выходов сети к ее входам в направлении, обратном прямому распространению сигналов в обычном режиме работы. С.И. Барцев и В.А. Охонин предложили сразу общий метод («принцип двойственности»), приложимый к более широкому классу систем, включая системы с запаздыванием, распределенные системні и т. н. [23]. Для возможности применения метода обратного распространения ошибки передаточная функция нейронов должна быть дифференцируема. Метод является модификацией классического метода градиентного спуска [22, 23].

Данный блок содержит следующие теги:

1) init - конфигурация инициализации весовых коэффициентов. Содержит атрибут type - тип инициализации, возможные значения которого:

- no - отсутствие инициализации (значения весовых коэффициентов берутся из структуры сети);

- rnd - инициализация случайными числами в заданном диапазоне;

- value - инициализация заданным значением.

В случае, когда type равен value, значение тега

содержит значение инициализации, а в случае инициализации случайными числами имеются два вложенных тега - down и up, отвечающие за нижний и верхний пределы;

2) coeff - конфигурация коэффициента обучения, содержит два вложенных тега:

a. value - начальное значение;

b. coeff - коэффициент изменения, изменяющий коэффициент обучения следующим образом:

где С - коэффициент изменения коэффициента обучения;

3) penal - конфигурация штрафной функции. Повышает эффективность, если штрафная функция естественно вытекает из технического смысла задачи, хорошо подходит для приближенной оценки в сложной допустимой области [27-29], содержит теги:

a. period - период (число иттераций);

b. step - значение шага на итерации;

4) limits - конфигурация контроля за пределами значений весовых коэффициентов, имеет вложенные теги:

a. down - нижний предел;

b. up - верхний предел.

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

0

w

S

CsS

S

CsS

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

<weights type="FullScan">

<init type="value">0</init>

<coeff>

<value>0. 5 </value>

<coeff>1</coeff>

</coeff>

<penal>

<period> 100</period>

<step>0.1</step>

</penal>

<limits>

<down>0</down>

<up> 1 </up>

</limits>

<stopping type="Iterative">100</stopping>

</weights>

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

Подбор активационных функций нейронов определяется тегом neurons, в котором имеются следующие секции:

- types - перебираемые типы. Содержит теги, определяющие, какие именно типы участвуют в переборе;

- functions - перебираемые активационные функции. Содержит теги, определяющие, какие именно активационные функции участвуют в переборе;

- coeff - коэффициент активационной функции;

- impulse - импульс активационной функции. Содержит подсекции internal и external, отвечающие за внутренний и внешний импульсы;

- threshold - значение порога в случае функции МакКалок-Питса;

- limits - значения верхнего и нижнего предела в случае функции МакКалок-Питса. Содержит подсекции up и down, отвечающие за верхний и нижний пределы.

Секции coeff, threshold, internal, external, down и

up содержат теги up и down, отвечающие за нижнее и верхнее значения, и тег step, отвечающий за шаг.

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

<neurons>

<types>

<type>Simple</type>

</types>

<functions>

<function>Linear</function>

<function>Square</function>

<function>Sigm 1 </function> <function>Sigm2</function>

</functions>

<coeff>

<internal>

<down>0</down>

<up> 1</up>

<step>1</step>

</internal>

</impulse>

</neurons>

ПОДБОР СТРУКТУРЫ

Блок structure предназначен для подбора структуры сети методом наращивания. Он содержит тег neuron, определяющий добавляемый нейрон, и в зависимости от используемой структуры один или два тега stopping. Ниже приводится пример конфигурации многослойного персептрона. При наращивании будет добавляться линейный нейрон.

<structure>

<neuron index="0" type="Linear">

<coeff>1</coeff>

<impulse>

<internal> 1 </internal>

<external lock="TRUE">1</external>

</impulse>

</neuron>

<stopping type="Iterative">5</stopping>

<stopping type="Iterative">5</stopping>

</structure>

ЗАКЛЮЧЕНИЕ

Таким образом, в рамках данной работы разработан формат, описывающий все базовые элементы нейросе-тевого симулятора, такие как нейрон, структура сети, алгоритм подбора весов, алгоритм подбора структуры и активационных функций, методы сохранения выборки. Данный формат реализован в нейросетевом симуляторе.

ЛИТЕРАТУРА

1. Крючин О.В., КозадаевA.C. Обзор нейроэмуляторов персональных компьютеров для моделирования экономических и других систем // Информационные технологии в экономике, бизнесе, управлении: материалы Всероссийской научно-практической конференции (2 ноября 2011 г.). Тамбов: Изд-во ТРООО «Бизнес-Наука-Общест-во», 2011.

2. Крючин О.В., Козадаев A.C., Aразамасцев A.A. Обзор существующих нейросимуляторов для персональных компьютеров и кластерных систем // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2012. Т. 17. Вып. 1. С. 168172.

3. Комарцова Л.Г., Максимов A.B. Нейрокомпьютеры. М.: Изд-во МГТУ им. Н.Э. Баумана, 2004.

4. Миркес Е.М. Нейрокомпьютер. Проект стандарта. Новосибирск: Наука, 1999. 337 с.

5. Терехов B.A., Ефимов Д.В., Тюкин И.Ю. Нейросетевые системы управления. М.: Высш. шк., 2002.

6. Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. М.: Горячая линия - Телеком, 2001. С. 382.

7. Ясницкий Л.Н. Введение в искусственный интеллект. М.: Издат. центр «Академия», 2005. С. 176.

8. Волков И.К., Канатников A.H. Интегральные преобразования и операционное исчисление: учеб. для вузов / под ред. B.C. Зарубина, А.П. Крищенко. 2-е изд. М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. 228 с.

Kryuchin O.V., Arzamastsev A.A., Troitzsch K.G. (2011): A parallel algorithm for selecting activation functions of an artificial network. Ar-beitsberichte aus dem Fachbereich Informatik. 12/2011. Universitat Koblenz-Landau. URL: http://www.uni-koblenz.de/~fb4reports/2011

/2011_12_Arbeitsberichte.pdf. Загл. с экрана.

<down>0</down> 9.

<up> 1 </up>

<step>1</step>

</coeff>

<impulse>

10. Fahlman S.E., Lebiere C. The cascade-correlation learning architecture: tech. rep. CMU-CS-90-100. School of Computer Science. Carnegie Mellon University. August 1991. 18 p.

11. Fahlman S.E. The recurrent cascade-correlation architecture: tech. rep. CMU-CS-91-100. School of Computer Science. Carnegie Mellon University. 1991. 16 p.

12. Hoefeld M., Fahlman S.E. Learning with limited numerical precision using the cascade-correlation algorithm: tech. rep. CMU-CS-91-130. School of Computer Science. Carnegie Mellon University. 1991.

13. Осовский С. Нейронные сети для обработки информации / пер. с пол. И.Д. Рудинского. М.: Финансы и статистика, 2002. 344 с.

14. Osowsky S., Siwek K. Study of generality ability of neural networks // Sieci Neuronowe i ich zastosowania: 3 Konferencja. Kule, 1997. 19 p.

15. Rugh W. Nonlinear System Theory: The Volterra / Wiener Approach. N. Y.: J. Hopkins Press, 1981. 344 p.

16. Rosenblatt F. Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms. Washington DC: Spartan Books, 1961.

17. Rumelhart D.E., Geoffrey E.H., Williams R.J. Learning Internal Representations by Error Propagation // Parallel distributed processing: Explorations in the microstructure of cognition. V. 1. Foundations. MIT Press, 1986.

18. Cybenko G. Approximation by superpositions of a sigmoidal function //

Mathematics of Control, Signals, and Systems (MCSS). № 2 (4). P. 303-314. URL: http://www.springerlink.com/content/

n873j15736072427. Загл. с экрана.

19. Розенблатт Ф. Принципы нейродинамики: Перцептроны и теория механизмов мозга. М.: Мир, 1965. 480 с.

20. Уоссермен Ф. Нейрокомпьютерная техника: теория и практика. М.: Мир, 1992. 240 с.

21. Крючин О.В., Арзамасцев А.А. Параллельный алгоритм полного сканирования минимизации функций // Информационные технологии, системный анализ и управление: 7 Всероссийская научная конференция молодых ученых, аспирантов и студентов. Таганрог: Таганрогский технологический институт ЮФУ, 2009. С. 270-272.

22. Крючин О.В., Арзамасцев А.А. Параллельный подбор весовых коэффициентов искусственной нейронной сети методом Монте-Карло // Научный потенциал молодежи - будущее России: 2 Все-

российские научные Зворыкинские чтения: сборник тезисов докладов 2 Всероссийской межвузовской научной конференции (Муром, 23 апреля 2010 г.). Муром: Издат.-полиграф. центр МИ ВлГУ, 2010. С. 865-866.

23. Барцев С.И., Гилев С.Е., Охонин В.А. Принцип двойственности в организации адаптивных сетей обработки информации // Динамика химических и биологических систем. Новосибирск: Наука, 1989. С. 6-55.

24. Riedmiller M. Untersuchungen zu konvergenz und generalisierungsver-halten uberwachter lernverfahren mit dem SNNS // Proceedings of the SNNS. 1993.

25. Riedmiller M., Brawn H. RPROP - a fast adaptive learning algorithms: technical report. Karlsruhe: University Karlsruhe, 1992.

26. Zadeh L.A. The concept of linguistic variable and its application to approximate reasoning. P. 1 -3 // Information Sciences. 1975. P. 199249.

27. Галушкин А.И. Синтез многослойных систем распознавания образов. М.: Энергия, 1974.

28. Werbos P.J. Beyond regression: New tools for prediction and analysis in the behavioral sciences: Ph.D. thesis. Harvard University; Cambridge, MA, 1974.

29. Жилинискас А., Шатлянис В. Поиск оптимума: компьютер расширяет возможности. М.: Наука, 1989.

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

Kryuchin O.V. REALIZATION OF CONFIGURATION FORMAT OF NEURON NETWORK STRUCTURE AND ALGORITHMS OF ITS STUDY IN NEURO-NETWORK SIMULATOR

The format configuration of neuron network simulator and all its base elements which are neurons, structures and training algorithms, are described. The examples showing the forming of neural network simulator base elements are presented.

Key words: artificial neuron networks; configuration format; neuron network simulator.