Автоматизация построения нейронной сети в рамках объектно-ориентированного подхода

Автоматизация построения нейронной сети в рамках объектно-ориентированного подхода

Евдокимов И.А., Солодовников В.И.

Федеральное государственное бюджетное учреждение науки Центр информационных технологий в проектировании (ЦИТ11) РАН

info(a)4itc. ras, ru

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

Ключевые слова: нейронная сеть, дерево решений, объектно-ориентированный подход.

1 Введение

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

6 Иерархия классов описания модели нейронной сети

С точки зрения объектно-ориентированного подхода нейросеть представляет собой иерархию классов: сеть, слой, нейрон и т.д. Более подробно иерархия классов представлена на рисунке 1.

Рис. 4. Иерархия классов для описания нейросети

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

Класс ПЧГешх^гий задает архитектуру сети: количество входов, слоев и выходов.

Класс ТРгесопсШоп определяет алгоритм предобработки входных значений.

Класс ТРо81Ргосе88и^ позволяет провести дополнительную обработку результата, полученного на выходе Т№иго81тис1;.

Класс Т№иго 81та1шп является описанием слоев нейронной сети и содержит информацию о количестве нейронов в слое и др.

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

РРо1епйа1 задает правила вычисления потенциала нейрона и использует его вектор входных величин и вектор весовых коэффициентов.

БАсЙуайоп определяет вид функции активации.

Класс задает весовой коэффициент, определяющий

существование связи текущего нейрона с указанным слоем и нейроном.

7 Алгоритм построения нейронной сети

в рамках объектно-ориентированного подхода

В рамках представленной модели алгоритм формирования нейросети заключается в поэтапном движении сверху вниз по иерархии классов и состоит из следующего набора шагов:

Шаг 1. Создается объект наиболее общего класса ,Шеиго№1;.

Шаг 2. Определяются основные характеристики, принадлежащие классу Т1ЧГеиго№1:, такие как: структура сети ПМеигоЗйпс!;, алгоритм предобработки входных значений ТРгесопёШоп, вид выдаваемого результата и способов его дополнительной обработки TPostProcessing. В свою очередь класс ТМеиго81;гис1:, определяющий структуру сети, также является составным. Он оперирует набором объектов класса Т№иго81ха1шп, которые являются описанием слоев рассматриваемой сети, определяет их количество, порядок следования.

Шаг 3. Создается необходимое число слоев Т№иго81ха1ш11. Каждый слой определяется своим порядковым номером, и набором принадлежащих ему нейронов класса ТЫеигоп.

Шаг 4. Формируются объекты класса ТЫеигоп, принадлежащие соответствующим слоям нейросети. Данный класс определяет основные характеристики каждого нейрона: его номер в слое, правила вычисления входа РРо1епйа1, функции активации БАсйуайоп, набор весовых коэффициентов ТХ^^в.

Шаг 5. Задаются указатели на РРо1епйа1 и РАсйуайоп. Создаются объекты класса TWeights, характеризующие каждый конкретный нейрон.

Таким образом, сначала создаются объекты классов, определяющих наиболее общие характеристики сети. Затем определяются все более мелкие, характерные фрагменты строящейся модели, т.е. построение происходит от общего к частному. При этом стоит отметить, что существует возможность работать, как со всей сетью целиком, т.е. с объектом класса таеигоЫе!;, так и с ее фрагментами ТТЧеип^гаШт или ПЧГеигоп.

Рассмотрим более подробно процесс построения нейронной сети и принципы задания значений ее характеристик на примере многослойного персептрона.

7.1 Выбор нейросетевой архитектуры

Выбор нейросетевой архитектуры может быть сделан в зависимости от решаемой пользователем задачи, имеющихся исходных данных и планируемых методов обучения. Так для решения задач классификации, аппроксимации и прогнозирования применимы сети прямого распространения. Главным представителем сетей такого класса является многослойный персептрон, структура которого показана на рисунке 2. Этот вид нейросетей получил широкое распространение для решения задач распознавания образов, фильтрации шумов, предсказания временных рядов, обработки данных применительно к каналам управления при моделировании, идентификации, адаптивного, или нелинейного управления. Предположим, что данный вид сети был выбран в качестве значения параметра объекта класса Т1Че11Го№1;.

Входной слой Скрытый слой Выходной слой

Вектор .^ЛА^/Х Выход

входных ^~\х//(1)\\Х • работы

величин * УХ / . • сети

Рис. 2. Многослойный персептрон

Далее осуществляется переход на уровень ниже и происходит создание объекта класса Т№иго81тис1;, основными параметрами которого являются количество и описание слоев нейронной сети.

7.2 Количество слоев

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

Так Минский в своей работе "Персептроны" доказал, что простейшие однослойные нейронные сети, состоящие из входного и выходного слоев (известные, как линейный персептрон), способны решать только линейно разделимые задачи и обеспечивают универсальную линейную аппроксимацию. Это ограничение преодолимо путем добавления скрытых слоев и использования многослойных нейронных сетей. В общем виде можно сказать, что при решении задач классификации в сети с одним скрытым слоем, входной вектор преобразуется в некоторое новое пространство, которое может иметь другую размерность (увеличение скрытого слоя повышает размерность пространства, в котором выходной нейрон производит дихотомию), а затем гиперплоскости, соответствующие нейронам выходного слоя, разделяют его на классы. Таким образом, сеть распознает не только характеристики исходных данных, но и "характеристики характеристик", сформированные скрытым слоем [Стариков, 2015]. Сеть с одним скрытым слоем, содержащим к нейронов со ступенчатой функцией активации, способна осуществить произвольную классификацию Ы точек ¿/-мерного пространства (т.е. классифицировать

Ы примеров). Более того, одного скрытого слоя нейронов с сигмоидной функцией активации достаточно для аппроксимации любой границы между классами или некоторой функции со сколь угодно высокой точностью [Ежов и др., 1998].

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

После выбора числа слоев происходит формирование объектов класса ПЧеигоЗйаШт, т.е. задание характеристик слоев нейронной сети. Основными параметрами каждого слоя является число нейронов и их описание.

7.3 Количество нейронов входного слоя

Количество нейронов входного слоя напрямую зависит от размерности исходного пространства входных данных (размерности выборки) и от методов их кодирования, что определяется объектом класса ТРгесопс1Шоп.

7.4 Количество нейронов скрытого слоя

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

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

В качестве примера на рисунке 3 приведен фрагмент дерева решений для оценки числа скрытых элементов многослойного персептрона [Солодовников и др., 2005], для построения которого использовались:

Автоматизация построения нейронной сети

в рамках объектно-ориентированного подхода_

теорема Хехт-Нильсена о представимости функции многих переменных с помощью двухслойной нейронной сети [Hecht-Nielsen,1987];

принцип совместной оптимизации эмпирической ошибки и сложности модели 1шп{описание ошибки + описание модели} [Ежов и др., 1998];

рекомендации, которые приводит Хайкин [Haykin,1994], используя результаты из работ Баума и Хесслера, относительно размеров набора учебных данных с учетом количества весовых коэффициентов и доли ошибок, допустимых в ходе тестирования.

Рис. 3. Оценка количества скрытых элементов многослойного персептрона, где 1, И, о число нейронов входного, скрытого и выходного слоев, w - количество весов, р -количество примеров обучающей выборки

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

Для оценки уже построенной нейросетевой модели могут быть применимы следующие критерии:

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

если и ошибка тренировки, и ошибка тестирования велики, значит весовых коэффициентов слишком мало.

если все весовые коэффициенты очень большие, значит весовых коэффициентов слишком мало.

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

7.5 Количество нейронов выходного слоя

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

7.6 Задание основных параметров нейрона

При создании объектов класса TNeuron задаются его основные характеристики, включающие принадлежность определенному слою, номер в слое, правила вычисления потенциала FPotential, функции активации F Activation, набор весовых коэффициентов TWeights. Схематично структура нейрона представлена на рисунке 4.

Вектор входных величин

FPotential V FActivation

b

Выход работы нейрона

Рис. 4. Структура нейрона

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

г

V = FPotential(p) = • pi + b

¿=1

где сначала вычисляется взвешенная сумма входных величин р^ вслед за чем полученная сумма сравнивается с пороговой величиной (или bias) Ъ. Здесь г - размерность пространства входных сигналов, Wi - синоптические коэффициенты или веса. Функция активации FActivation в свою очередь примет вид:

FActivationiV) =---

l + exp

1.1 Обучение нейронной сети

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

Например, наиболее распространенным методом обучения многослойного персептрона является алгоритм обратного распространения ошибки (Васкргора§айоп), который минимизирует суммарную квадратичную ошибку:

z к=1 I

где р - количество примеров обучающей выборки, индекс г пробегает все выходы многослойной сети, (11к - желаемый выход нейрона у[ - текущий выход нейрона / последнего слоя.

Для реализации данного алгоритма обучения в классе ТЫеигоп был предусмотрен дополнительный параметр №игопЕгг, который характеризует величину ошибки для каждого конкретного нейрона. Величина ошибки зависит от весовых коэффициентов, настройка которых происходит в соответствии с формулой: + = 0 + А14Л.,

где м?у - вес от нейрона I или от элемента входного сигнала / к нейрону ] в момент времени

Основная идея ВР состоит в том, чтобы вычислять чувствительность ошибки сети к изменениям весов. Для этого нужно вычислить частные производные от ошибки по весам.

Если рассмотреть отдельно к-й образец обучающей выборки, то соответствующее изменение весов рассчитывается по формуле:

Д14Л. = -е-^- = -£-¿>/4 у дмИ к к'

У

я! , - <

где —тг -ок- значение ошибки для нейрона /, а множитель —— = хк -

выход нейрона и

При этом множитель <5"/ вычисляется через аналогичные множители

из последующего слоя, и ошибка, таким образом, передается в обратном направлении.

Для выходных элементов:

где <1{ - желаемый выход нейрона у, у1 - текущий выход нейрона у последнего слоя.

Для скрытых элементов ¿>Jk вычисляется по формуле:

h

где индекс h пробегает номера всех нейронов, на которые воздействует j-й нейрон, xJ - выход нейрона j. В зависимости от выбранной нейросетевой парадигмы могут быть применены и другие алгоритмы обучения.

8 Заключениие

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

Благодарности

Работа выполняется в рамках программы фундаментальных научных исследований ОНИТ РАН «Интеллектуальные информационные технологии, системный анализ и автоматизация», проект «Развитие методов искусственного интеллекта для анализа информации».

Список литературы

[Ежов и др., 1998] Ежов А., Шумский С., Нейрокомпьютинг и его применение в экономике и бизнесе, 1998.

[Солодовников и др., 2005] Солодовников В.И., Солодовников И.В. Использование деревьев решений для проектирования нейронных сетей -// Информационные технологии и вычислительные системы. № 1, М.: 2005г.

[Стариков, 2015] Стариков А. Применение нейронных сетей для задач классификации // BaseGroup Labs 1995-2015. URL: http://www.basegroup.ru (дата обращения 20.02.2015).

[Hecht-Nielsen,1987] Hecht-Nielsen R. Kolmogorov's mapping neural network existence theorem // IEEE FirstAnnualInt.Conf.onNeuralNetworks,SanDiego,1987.Vol.3. P.ll-13

[Haykin,1994] Haykin S., Neural Networks: A Comprehensive Foundation, MacMillan College Publishing Co., New York, 1994.