УДК 681.332
Н.М. Оскорбин, Д. В. Рубцов Обменный формат для описания обученной нейронной сети
Введение
В течение последнего десятилетия в мире наблюдается повышенный интерес к области искусственного интеллекта, связанной с использованием принципов и моделей нейроподобных систем. Это объясняется тем, что были получены фундаментальные результаты:!, связанные с универсальной способностью нейроподобных систем определенной структуры сколь угодно точно аппроксимировать произвольные непрерывные автоматы [ 1, 2 ] . Также были разработаны эффективные алгоритмы настройки нейронных сетей [35] . В настоящее время нейронные сети применяются в основном для моделирования нелинейных многофакторных зависимостей на основе эмпирических данных [2, 4] . Наибольшее распространение получили программные системы моделирования нейронных сетей на персональных компьютерах. Известны несколько работ по введению стандартной номенклатуры описания нейронных сетей и стандартизации функциональных блоков нейрокомпьютера [5, 6] . Однако на сегодняшний день в области нейроинформатики не сформированы стандартная терминология и четкая классификация применяемых методов и моделей, что существенно затрудняет обмен знаниями между различными исследовательскими группами. Обмен нейросетевыми моделями становится особенно актуальным в связи с развитием глобальных компьютерных сетей и Интернет-технологий.
Одним из шагов в данном направлении является разработка обменного формата для передачи нейросетевой информации между различными моделирующими системами. Подобный формат, в отличие от технологических или внутренних форматов хранения информации, должен содержать как информацию о собственной структуре, так и полное описание модели, которое позволяло бы корректно восстанавливать ее функционирование, вне зависимости от средств создания данного описания. В настоящей статье предлагается обменный формат для передачи обученных многослойных нейронных сетей прямого распространения с различными типами процессорных элементов (нейронов) . Формат реализован в виде языка, основанного на нотации XML.
Основные понятия и определения
Нейронную сеть можно определить как направленный граф, узлы которого представляют процес-
сорные элементы, называемые также нейронами [5]. Ребра (синапсы) задаст структуру обмвна сигналами между нейронами. Ребрам обычно приписан скалярный параметр - вес связи, или синаптический вес. Нейроны преобразует информацию, поступающую к ним по синаптическим связям от других нейронов или из внешней среды в соответствии с некоторой функцией. Определены входные синапсы, по которым подаются компоненты входного сигнала, и выходные, с которых снимается преобразованный сетью сигнал.
В настоящее время широко используются многослойные нейронные сети прямого распространения. На их структуру накладываются следующие ограничения:
- нейронная сеть представляет собой несколько последовательно включенных слоев нейронов;
- нейроны в каждом слое не связаны между собойї, связаны с нейронами предыдущего слоя, функционируют одновременно и параллельно;
- отсутствуют обратные связи и петли;
- функционирование сети состоит в последовательном преобразовании входного сигнала на каждом слое нейронов, от входного до выходного слоя.
Функционирование многослойной нейронной сети полностью определяется структурой межней-ронных связей, видом используемых нейронов и значениями синаптических весов.
На вход нейронной сети подается вектор действительных чисел. Стандартной является процедура предварительной обработки входных данных. Ддя предобработки используются нормировка и центрирование данных, а также более специальные методы, такие как, например, кодирование действительного числа вектором бинарных чисел [4] . Выходные сигналы нейронной сети также преобразуются (интерпретируются) с помощью денормировки или декодирования.
Состав методов предобработки и интерпретации существенно зависит от конкретной задачи.
Таким образом!, нейросетевая модель для некоторой исследуемой закономерности содержит средства предварительной обработки входных данных, непосредственно нейронную сеть и средства интерпретации ее выходных сигналов. Внешне нейросетевая модель задается вектором входных параметров и вектором целевых параметров.
Состав и структура описания нейросетевой модели
Информационное описание нейросетевой модели состоит из следующих разделов: описание решаемой моделью задачи, описание структуры данных и методов их предварительной обработки, описание структуры, параметров и правил функционирования нейронной сети, описание методов интерпретации ответов сети (рис. 1) .
Раздел описания «Задача» содержит информацию об области использования нейросетевой модели, ее наименовании и назначении, описывает решаемую нейронной сетью задачу. Также в этот раздел входят сведения о разработчике, используемом программном обеспечении, ключевые слова описания задачи. Информация этого раздела служит для идентификации модели, организации поиска и отбора моделей в электронных архивах, резервирования авторских прав разработчика нейросети.
тельной обработки!, нейронной сети и интерпретатора выходных сигналов сети (рис. 2) .
Предобработка Нейронная Интерпретатор
данных сеть ответов сети
Функциональные блоки преобразования исходных данных
Нейроны \
Комбинационная функция. Передаточная функция______
Функциональные блоки преобразования выходных сигналов сети
Рис. 1. Состав описания нейросетевой модели
Раздел «Данные» включает в себя информацию о структуре данных, используемых моделью, сведения об обучающей выборке, которая использовалась для настройки нейросети, а также информацию о методах предварительной обработки данных, применяемых в задаче. Информация этого раздела необходима для обеспечения корректной подачи входных данных нейронной сети.
Раздел описания «Нейронная сеть» является основным и содержит данные о структуре нейро-сетевой модели, ее параметрах, правилах ее функционирования . Эта информация позволяет однозначно восстановить нейросетевую модель и использовать ее для получении отклика на вектор входных данных. В описание интерпретатора входит информация о методах преобразования выходных сигналов сети для получения содержательного ответа в терминах предметной области. Этот раздел необходим для обеспечения корректного использования нейросетевых моделей.
Представим нейросетевую модель в виде последовательного включения компоненты предвари-
Рис. 2. Структура нeйросeтeвой модели
Тогда получение отклика модели заключается е последоЕатещьном првобразоЕании Еектора вxод-№x параметров блоком предобработки, далее нейронной сетью и интерпретатором. Для описания функционирования каждой компоненты выбран следующий подxод: компоненты модели задаются набором связанный объектов, преобразуют^ свои вxодныe переменные в выжодные и передают^ результат в соответствии со структурой модели. Вид преобразования для каждого объекта определяется идентификатором или наименоЕанием преобразования, а также набором нeобxодимыx параметров, которые описываются в виде пары: наименование - значение. Так, например, компонента предобработки представлена как набор параллельно фyнкционирyющиx объектов, каждый из который преобразует данные из одного или несколько полей вектора вxодныx данный в сигналы, которые поступают на вxод сети.
Нейронная сеть представлена как последовательность слоев нейронов. Каждый нейрон описывается как функциональный блок, который состоит из двyx последовательно включенный модулей: функции получения скалярного значения из вектора вxодныx параметров (комбинационная функция нейрона, combination function) и функции активации нейрона (activation function). Использование в качестве комбинационной функции адаптивного сумматора и вариация функции активации позволяет описать основные типы нейронов, применяемый в многослойный пeрсeптронаx: с различными видами сиrмcищныx функций, пороговыми, линейными и кусочно-линейными передаточными функциями. Введение различный типов комбинационныи функций позволяет описать такие Еиды нейронов, как радиальные базисные функции (евклидово расстояние меду Евкторами Бесов и Еxо^№:x параметров), Паде нейроны (отношение fE>x скалярныx произведений), нейроны высокиx степеней (полиномы высокиx порядков)
ИТ.Д.
Структура связей сети задается совокупностью параметров комбинационные функций нейронов. Каждый параметр описывается двумя полями: идентификатором нейрона - источника вxодного сигнала (ссылкой) и скалярным значением веса связи. В качестве идентификатора используется код нейрона, посылающего свой выкодной сигнал данному нейрону, либо код выгодного параметра предобра-ботчика (для нейронов вxодного слоя) . Возможно использование двyx скалярный значений (например, при описании неоднородного вxода сумматора) или ДEyx идентификаторов (в случае, когда вес связи задается выxодным значением другого нейрона). Таким образом, точки ветвления нейронов задаются неявно, через список ссылок на нейрон, и граф топологии сети описывается не глобальными, а локальными средствами, через перечень элементов, в описание каждого из который вxодит список его связей.
Различные комбинационные функции могут иметь различное количество параметров и различную структуру иx описания. Так, например, при n вxодныx сигналаx стандартный адаптивный сумматор имеет n + 1 параметр, Паде-нейрон - 2л + 1 параметр, причем описание параметров для квадратичного сумматора задается тремя полями: двумя ссылками на источники сигналов и скалярным Евсом.
Функция активации нейрона описывается наименованием и перечнем параметров. Количество и смысл параметров различны для разный типов передаточный функций.
Интерпретатор рассматривается как устройство, которое на основе вектора выxодныx сигналов нейросети определяет значения каждого из целе-вык параметров нейросетевой модели. Для каждого целевого параметра используется независимая сxeма интерпретации, следовательно, интерпретатор можно описать как совокупность несколько (по числу целевык параметров) неза-висимыx блоков.
Язык описания нейронных сетей NNML
В качестве средства создания электронного формата описания нейросетеЕык моделей был Еыбран язык XML [7] . Нотация XML позволяет гибко описывать структурированные данные и приобретает все большую популярность в качестве универсальной осноеы для разработки спeциа.лизированныx языков описания объектов различной природы [В]. К достоинствам использования средств XML можно отнести стандартизованный доступ к данным, xранящимся в XML-доку-мeнтаx, не зависящий от иx структуры и предметной области.
Рис. 3. Пример структуры NNML-документа: а) описание структуры данных и предобработчика;
б) описание нейронной сети;
в) описание интерпретатора
Разработано DTD (Document Type Definition) -определение, содержащее словарь языжа описания нейросетевыш моделей NNML (Neural Network Markup Language), правила формирования структуры описания, допустимые конструкции элементов. DTD-определение позволяет также контролировать корректность файла описания нейросети. Описание нейросетевой модели формируется в виде XML-документа с корневым разделом <NEURALMODEL> и имеет иерархическую структуру (рис. 3) . Основные разделы документа: <Task> - содержит описание задачи, сведения об авторе и средствах создания, ключевые слова; <Data> - содержит описание выборки, использовавшейся для настройки нейронной сети, описание свойств входных и выходных параметров и методов их предобработки; <NeuralNet> - включает описание общих параметров нейронной сети, сведения о процессе настройки, описание структуры: и значения параметров нейронной сети; <Interpretator> - содержит описание методов получения ответов нейросетевой модели. Также выделен раздел <Declarations>, который содержит описание дополнительных функциональных преобразований и параметров модели. На рисунке 4 представлен пример NNML-описания формального нейрона с неоднородным адаптивным сумматором и сигмоидной функцией активации.
Формальный
нейрон
X0 °1
SajXj
Комбинационная
функция
Пример описания
<Neuron id="1 ">
] <CombinationFunction
j name= "AdaptiveSummator" num-params= "11” > Y=j(Z) <CFParameter id="0">
t w <Arg id=”1" !ype= "bias">1</Arg>
<Arg id="2" type=
</CFParameter>
<CFParameter id=”1”>
<Arg id= "1" type="Nref" lr="1” nrn="1”/> <Arg id= "2" type="weight"> 0.832</Arg> </CFParameter>
Функция
ктивации
где X) - сигналы от нейронов предыдущего слоя; а) - веса связей.
■°.1 + |z|
</CombinationFunction> <ActivationFunction Name="Sigmoid" num-params="1" >
<AFParameter id="1 ">0.1 </AFParameter> </ActivationFunction>
</Neuron>
Рис. 4. Фрагмент описания формального нейрона
Подробнее вопросы разработки и реализации формата раскрыты в [9] .
ao=0.385
Xl
Литература
1. Cybenko G. Approximation by superposition of a sigmoidal function // Mathematics of Control, Signals, and Systems. 19В9. Vol. 2.
2. Горбань A.H. Возможности нейронный свтвй // Нвйроинформатика / Под ред. В. Л. Дунина-Барковского и А.Н. Горбаня. Новосибирск, 199В.
3. Rumelhart D.E., Hinton G.E., Williams R.J. learning internal representations by error propagation / / Parallel Distributed Processing: Exploration in the Microstructure of Cognition, D.E.Rumelhart and J.L.McClelland (Eds.) . Vol. 1. Cambridge, 1986.
4. Горбань A.H., РоссивЕ Д.А. Нейронные свти на персональном компьютере. Новосибирск, 1996.
5. Миркес Е. М. Нейрокомпьютер. Проект стандарта. Новосибирск, 1998.
6. Fiesler E. Neural network classification and formalization // Computer Standarts and interfaces. V.16. Elseiver Science publishers. Amsterdam, 1994.
7. Extensible Markup Language (XML) 1.0. W3C Recommendation // http://www.w3.org/TR/1998/
REC-xml-19980210.
8 . The SGML/XML Web Page-Extensible Markup Language (XML) // http://www.oasis-open.org/ cover/xml.html.
9. Рубцов Д. В. Разработка технологии применения искусственных нейронных сетей в прикладных информационных системах: хис. ... канд- техн. наук. Барнаул, 2000.