УДК 004.434 В.Г. АБАШИН, В.О. ПЕНЗЕВ, М.И.ГОНЧАРОВ ЯЗЫК РАЗМЕТКИ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ

advertisement
УДК 004.434
В.Г. АБАШИН, В.О. ПЕНЗЕВ, М.И.ГОНЧАРОВ
ЯЗЫК РАЗМЕТКИ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ
MARKUP LANGUAGE ARTIFICIAL NEURAL NETWORKS
В данной статье авторы предлагают вариант описания искусственный нейронных сетей (ИНС) с
целью обмена математическими моделями в текстовом виде, удобном для машинной обработки и
графического представления. Для представления данных о разработанных ИНС предлагается дополнить
расширяемый язык разметки тегами, описывающими базовые для ИНС сущности и их свойства.
Ключевые слова: ИНС; нейрон; синапс; XML; Интернет.
In this article, the authors offer the option descriptions artificial neural networks (ANN) in order to exchange
mathematical models in text form suitable for computer processing and graphics. For reporting developed ANN is
proposed to add extensible markup language tags that describe the basic nature of the INS for their properties.
Keywords: ANN; neuron; synapse; XML; Internet.
Актуальность современных подходов к обработке больших объемов данных,
объединяемых понятием «Большие данные» (Big data) не вызывает сомнения. Одним из
ключевых компонентов обеспечивающих эффективность алгоритмов обработки больших
данных является наличие средств массово-параллельной обработки. В их роли выступают
вычислительные кластеры на основе супер-ЭВМ и распределенных систем [1].
Одним из методов обработки больших данных являются искусственные нейронные
сети (ИНС). ИНС позволяют решать задачи классификации образов, кластеризации,
аппроксимации, оптимизации, управления и прогнозирования[2]. Ярким примером
показывающим важность нейросетевых технологий стало появление нейросинаптического
процессора на архитектуре TrueNorth[3] фирмы IBM, состоящей из одного миллиона
нейронов. Данная технология уже внедряется и должна стать доступна для массового
потребителя в ближайшие годы. Отечественным аналогом является платформа Эльбрус-4С.
С развитием глобальных коммуникаций, образовались большие объемы данных
обработка которых в ручном режиме не возможна. Для разработки интеллектуальных
алгоритмов требуется извлечение зависимостей из собранных данных или другие
ресурсозатратные математические преобразования. Предоставление исследователям
человеческих и вычислительных ресурсов часто производится при условии патентования
получаемых алгоритмов в пользу бизнес структур. В результате большинство современных
алгоритмов защищено патентами и не может свободно передаваться или использоваться в
дальнейших исследованиях. Отсутствие свободного доступа к современным разработкам
тормозит развитие интеллектуальных алгоритмов и интеллектуальных систем в целом.
Авторы считают, возможность свободного обмена разрабатываемыми системными,
математическими моделями, алгоритмами, является обязательным условием для
интенсивного развития интеллектуальных систем. Относительно ИНС, дополнительной
сложностью является отсутствие удобного формата обмена готовыми ИНС. Создание
автоматизированного средства разработки ИНС позволит упростить обучение человека
созданию ИНС, работа которого не связана с глубоким знанием математики. Это возможно за
счет меньшего количества базовых сущностей, операций над ними, прочих понятий,
используемых в теории ИНС, по сравнению с параллельным использованием нескольких
разделов высшей математики для одной задачи.
Цель создания формата обмена ИНС - возможность обмена готовыми ИНС и ИНС в
процессе разработки.
Базовым инструментарием для реализации формата обмена ИНС выбран
расширяемый язык разметки XML. Наиболее популярным языком созданным на его основе
является HTML. Во избежании путаницы, вместо понятия формат обмена ИНС, будет
использоваться язык описания ИНС, что позволяет шире трактовать цель его создания и
более удачно с точки зрения нахождения его места среди современных технологий. Назовем
INSML — ветвь языка XML позволяющего описывать ИНС, INSBD — базу данных моделей,
реализованных с помощью ИНС и описанных на языке INSML, а XMLINS — программное
обеспечение автоматизирующая этапы построения и обработки ИНС на основе XML
описания, а также использующее базу данных готовых к применению ИНС. В INSBD
необходимо отдельно выделить модели ИНС, являющиеся оптимальными с математической
точки зрения. В связи с тем, что использование предлагаемой нотации бессмысленно без
современных ЭВМ, а задача замена тегов одного человеческого языка на соответствующие
им другого языка является тривиальной задачей, считаем, возможно использование любого
человеческого языка для написания тегов, символы которого присутствуют в кодировке UTF8 и более поздних, поддерживающих уникальные коды для разных человеческих языков.
Английский язык для названий выбран для простоты встраивания в современные
вычислительные системы.
Первым этапом разработки языка описания ИНС является выделение базовых
сущностей теории ИНС. В отличие от биологических нейронных сетей, в ИНС существует
всего две сущности, без которых невозможна реализация ИНС, это нейроны, как базовый
элемент производящий расчеты и синапсы, как реализация связи между нейронами и памяти
ИНС. Преследуя цель упрощение обмена готовыми ИНС следует учесть возможность
объединения готовых сетей в новые ИНС. Для этого необходимо позволить создавать
модульные ИНС, а значит использовать дополнительную сущность ИНС. В этом случае
исследователь сможет создавать ИНС с нуля, использовать готовый шаблон ИНС,
комбинировать несколько имеющихся ИНС для получения новой сети. Отдельно следует
отметить проблему отображения структуры ИНС в двух и трехмерных пространствах. Для её
решения потребуется отдельная сущность не относящаяся к теории ИНС.
Для хранения информации об ИНС предполагается использовать два текстовых файла
в кодировке UTF-8. Один файл с расширением .insml содержит непосредственно описание
ИНС. Оно должно быть максимально независимо от аппаратной и программной реализации.
Теги в нем составлены из слов и сокращений на русском языке. Одним из элементов
XMLINS является программа переводящая русскоязычные теги на любой человеческий язык,
используя файл для замены тегов на русском языке на любой другой. Данная
функциональность является обязательной для всей реализаций XMLINS.
Второй файл рекомендуется называть так же как и файл с расширением .insml и имеет
расширение .insmldump. В нем содержится отладочная информация, которая имеет привязку
к программной и/или аппаратной конфигурацией, поэтому строго оговаривать формат
данного файла не представляется возможным. Здесь же содержится информация
относящаяся к обучению ИНС.
Следующим этапом разработки INSML является определение свойств выделенных в
предыдущем этапе классов: нейрон, синапс, ИНС.
Для всех сущностей необходимо использовать свойство «уникальный идентификатор»
с числовым значением идентифицирующим объекты ИНС, работа с которым должна
производится с помощью программы. Областью видимости идентификатора нейрона и
синапса является ИНС в которой они размещены. Для самих ИНС «уникальный
идентификатор» обладает глобальной областью видимости. Минимальным набором свойств
для правильного отображения элементов ИНС являются координаты точек двух или
трехмерного пространства нейронов. Синапсы связывают нейроны, поэтому синапсы не
нуждаются в координатах отображения. ИНС также не нуждается в координатах
отображения, для этого можно использовать координаты нейронов, входящих в неё.
Три сущности имеют и другие общие свойства: имя, состояние, описание. Имя
необходимо для задания идентификатора, используемого человеком в режиме ручного
создания ИНС. Состояние имеет следующие значения: включен/отключен. Значением по
умолчанию является «включен» и его можно не указывать. Описание необходимо для
подробного объяснения назначения элемента.
Для сущности нейрон уникальными свойствами стали константное значение, способ
объединение входных значений и функция активации. Константное значение подразумевает
отсутствие у нейрона входных синапсов и постоянную генерацию одного и того же
константного значения во время работы ИНС. Способ объединения входных значений
обычно является простым суммированием, использование других функций мало изучено и
встречается редко. Функция активации определяет срабатывание нейрона в зависимости от
результата объединения входных значений. Кроме зависимости функции активации
необходимо указывать пороговое значение срабатывания нейрона. Для уменьшения
повторений в коде INSML, предлагается возможность описания типа нейронов.
Использование этой возможности предусмотрено включением свойства «тип». Реализация
получения данных из файла использует свойство «файл», в котором указывается путь к
элементу файловой системы.
Для сущности синапс определим следующие свойства: приемник, передатчик,
значение веса, функция преобразования синапса. Приемник и передатчик для синапса имеет
связь «один-к-одному», т. е. синапс может выходит из одного элемента сети и попадать в
один элемент сети. Значение веса синапса является базовым элементом сети с помощью
которого организуется запоминание ИНС математического преобразования, которое оно
реализует. Функция преобразования синапса может реализовывать линейное преобразование
и использоваться для масштабирования входного значения, однако чаще синапс не реализует
никакого преобразования, а является проводником сигнала.
Сложнее описать свойства сущности ИНС. Например, рекуррентная архитектура ИНС
подразумевает выполнение свертки архитектуры за счет её зацикливания на саму себя, а
существование множества алгоритмов обучения не позволяют сделать их исчерпывающий
обзор. Для того чтобы учесть эту сложность, для ИНС вводится свойство алгоритм, которое
будет учитывать средство автоматизации XMLINS. Образно ИНС можно сравнить с большим
нейроном реализующим математическое преобразование любого уровня сложности, также
ИНС отчасти выполняет функцию синапса, передавая в модульной ИНС сигнал между
смежными с ней сетями. В связи с этим часть свойств ИНС дублируют свойства нейронов и
синапсов. Свойствами, заимствованными от нейрона стали: способ объединение входных
значений и функция активации. Указанные в описании ИНС они сообщают о функциях
используемых во всех нейронах данной ИНС по умолчанию. Свойствами, общими с
сущностью синапс стали: приемник, передатчик и функция преобразования синапса.
Функция синапса описанная в ИНС, также как в случае с нейроном, служит значением по
умолчанию для всех синапсов. Для реализации связей между ИНС используются синапсы.
Сложность вызывает представление приемников и передатчиков ИНС. Подробнее эта
проблема будет рассмотрена на следующем этапе. Кроме этого, для ИНС необходимо
указывать автора, время создания ИНС чтобы не нарушать авторское право. Следует
напомнить, движение за открытый код (open-source) не подразумевает отказа от авторских и
имущественных прав.
Представленного материала достаточно для формализации ИНС в виде набора тегов
XML. Приведем ряд замечаний. Теги описания версии XML наличие которых требуют
современная версия стандарта XML и прочее не будут использоваться, с целью упрощения
первой версии INSML. Теги будут приведены на русском языке. После формализации тегов,
представим правила приоритетов повторяющихся тегов.
ИНС описанная с помощью INSML 0.2 состоит из двух файлов с одинаковым
названием и расширениями .insml и .insmldump. Формат файла .insmldump не оговаривается
и может быть уникальным для конкретной реализации программ обрабатывающих ИНС, в
нем представлена информация требующая записи в процессе обучения и/или процессе
вычисления (прямого прохода) нейронной сетью.
Файл с расширением .insml содержит описание архитектуры ИНС и значений
синапсов, полностью реализуя разработанную математическую модель. В этом файле
допустимы только теги INSML 0.2.
Для сущности нейрон определены теги:
<нейрон></нейрон> - контейнер для описания нейрона (обязательный тег).
<имя></имя> - имя нейрона.
<идентификатор></идентификатор> - уникальный числовой идентификатор объекта
ИНС (обязательный тег).
<описание></описание> - подробное описание, необязательный тег.
<состояние></состояние> - состояние нейрона (включен/выключен), нейрон
считается включенным если не указано иное.
<x></x> - координата для двух и трехмерных пространств (обязательный тег).
<y></y> - координата для двух и трехмерных пространств (обязательный тег).
<z></z> - координата для трехмерного пространства (обязательный тег в случае
использования трехмерной модели).
<константа></константа> - константное значение, если нейрон генерирует
константу.
<файл></файл> - имя файла или полный путь к нему. Данное поле используется для
связи ИНС с файлом как для чтения, так и для записи информации. В дальнейшем
планируется создание гибкой функциональности по работе с данными в файлах на основе
специализированного нейрона.
<сумматор> или <аккумулятор></аккумулятор> - персональный сумматор или
аккумулятор с другой математической зависимостью. Теоретически здесь может
использоваться перемножение сигналов или другая функция объединения входных сигналов.
<активация></активация> - функция активации нейрона, после точки с запятой
указывается порог срабатывания функции активации. Например: <активация>1/(1+pow(e,1));0,5</активация>. Для описания функции активации предлагается использовать правила
записи выражений языка программирования Си, как одного из самых популярных языков
программирования.
Наличие тегов <константа></константа> исключает интерпретацию тегов
<сумматор></сумматор> и <активация></активация>.
<тип></тип> - тег позволяющий указывать тип нейрона, описанный в ИНС.
Наличие тегов <константа></константа> исключает интерпретацию тегов
<сумматор>, <аккумулятор></аккумулятор> и <активация></активация>.
Наличие
тега
<файл></файл>
исключает
интерпретацию
тегов
<константа></константа>,
<сумматор>,
<аккумулятор></аккумулятор>
и
<активация></активация>
<тип></тип> - тег позволяющий указывать тип нейрона, описанный в ИНС.
Для сущности синапс определены теги:
<синапс></синапс> - контейнер для хранения информации о синапсе (обязательный
тег).
<имя></имя> - имя синапса.
<идентификатор></идентификатор> - уникальный числовой идентификатор.
<описание></описание> - подробное описание.
<состояние></состояние> - состояние синапса (включен/выключен), синапс
считается включенным, если не указано иное.
<приемник></приемник> - приемник информации (допустимо указание
идентификатора нейрон или входа ИНС, обязательный тег).
<передатчик></передатчик> - источник информации (допустимо указание
идентификатора нейрон или выхода ИНС, обязательный тег).
<функция></функция> - функция синапса.
<вес></вес> - значение веса синапса.
Для сущности ИНС определены теги:
<сеть></сеть> - контейнер для описания ИНС или подсети ИНС (обязательный тег).
<идентификатор></идентификатор> - уникальный числовой идентификатор
(обязательный тег).
<автор></автор> - автор ИНС.
<состояние></состояние> - состояние ИНС (включена/выключена), ИНС считается
включенной, если не указано другое.
<дата></дата> - дата и время создания ИНС в формате UNIX время указанное в
секундах по Гринвичу.
<имя></имя> - название ИНС.
<описание></описание> - подробное описание, необязательный тег.
<алгоритм></алгоритм> - алгоритм работы сети, для рекуррентных и прочих
сложных сетей.
<приемник></приемник> - имя выхода (обязательный тег).
<передатчик></передатчик> - имя входа (обязательный тег).
<активация></активация> - при указании действует для всех нейронов по
умолчанию, после точки с запятой указывается порог срабатывания функции активации.
Например: <активация>1/(1+pow(e,-1));0,5</активация>.
<сумматор> или <аккумулятор></аккумулятор> - для всех нейронов по
умолчанию.
<функция></функция> - для всех синапсов.
Если необходимо указать несколько входов или выходов, соответствующий тег
указывается несколько раз с разными значениями. В имени файла возможно использование
любых символов, допустимых в файловой системе. В файле числовые данные должны
располагаться в столбик или в строчку. Файл с данными также должен использовать
кодировку UTF-8.
В современных ИНС используется один или несколько типов нейронов. Для
избежания дублирования описания для групп схожих нейронов, необходима возможность
указания типа нейрона.
<тип></тип> - служит контейнером для описания типа нейрона.
<имя></имя> - имя типа нейронов.
<идентификатор></идентификатор> - идентификатор типа нейронов.
<описание></описание> - описание типа нейронов.
<сумматор> или <аккумулятор></аккумулятор> - способ объединения сигналов
данного типа нейронов.
<активация></активация> - функция активации для всех нейронов данного типа,
после точки с запятой указывается порог срабатывания функции активации.
С целью упрощения проектирования ИНС, принципом, на основе которого строятся
правила приоритета - проектирование ИНС от общего к частному. Вводятся следующие
правила приоритетов повторяющихся тегов:
1. наибольшим приоритетом обладают теги описывающие синапсы и нейроны;
2. следующим уровнем приоритетов являются объявленные в ИНС типы нейронов;
3. наименьшим приоритетом обладают теги ИНС.
Такая последовательность приоритетов должна стимулировать разработку ИНС
последовательно, начиная с определения архитектуры и алгоритмов работы ИНС с
последующим уточнением для групп нейронов, логически объединяя их подсети, и
дальнейшей детализации до конкретного нейрона, на этапе оптимизации архитектуры.
Приведем примеры ИНС. Для реализации выбраны логические функции «И», «ИЛИ»,
«НЕ».
Одна из возможных реализаций функции «НЕ» с использованием одного
сигмоидального нейрона и одного константного нейрона. Для описания ИНС использовалось
минимально допустимое кол-во тегов. Значения берутся из файла 2.txt и обрабатываются
ИНС. Результат работы ИНС записывается в файл 1.txt.
<сеть>
<идентификатор>1</идентификатор>
<нейрон>
<идентификатор>101</идентификатор>
<файл>1.txt</файл>
<x>100</x>
<y>150</y>
</нейрон>
<нейрон>
<идентификатор>111</идентификатор>
<файл>2.txt</файл>
<x>100</x>
<y>0</y>
</нейрон>
<нейрон>
<идентификатор>12</идентификатор>
<константа>5</константа>
<x>100</x>
<y>50</y>
</нейрон>
<нейрон>
<идентификатор>11</идентификатор>
<активация>1/(1+pow(e,-1));0,5</активация>
<x>100</x>
<y>100</y>
</нейрон>
<синапс>
<вес>1</вес>
<приемник>11</приемник>
<передатчик>12</передатчик>
</синапс>
<синапс>
<вес>-10</вес>
<приемник>11</приемник>
<передатчик>111</передатчик>
</синапс>
<синапс>
<вес>1</вес>
<приемник>101</приемник>
<передатчик>11</передатчик>
</синапс>
</сеть>
Приведенные логические функции являются базисными и позволяют реализовать
любую логическую зависимость.
К ограничениям представленного в статье языка описания INSML относятся:
- невозможность эффективной работы непосредственно с INSML в текстовом виде без
средств автоматизации;
- невозможность дополнения ИНС математическими моделями, реализованными с
использованием разделов высшей математики, других математических теорий. Для этого
необходимо прибегать к дополнительным модулям реализующим внешнее преобразование;
- отсутствие гибкого механизма работы с данными в файлах;
- отсутствие возможности описания динамических ИНС, в том числе динамических
адаптационных моделей;
- язык описания функций срабатывания нейрона и функций синапсов ограничен,
необходима его унификация и расширение;
- допускается возможность существования архитектур ИНС и конкретных реализаций
ИНС, полное описание которых не возможно в данной версии INSML.
Направления дальнейших исследований INSML, INSBD и XMLINS следуют из
недостатков INSML. Первоочередной проблемой является необходимость получения
качественного средства автоматизации, позволяющего отображать и модифицировать ИНС.
Популярность INSML будет полностью зависеть от качества XMLINS, объема накопленных
работоспособных ИНС в INSBD и качества обучающих материалов по INSML. Необходимо
выполнять поиск ИНС, отображение которых невозможно с помощью INSML. Для
популяризации INSML разработан раздел сайта, временно расположенный по адресу
http://abashin.ru:8090/xmlins/. В дальнейшем планируется создание отдельного Интернетресурса посвященного INSML, INSBD и XMLINS. Решение частных проблем, таких как
повышение гибкости работы с данными из файлов, детальная проработка описания
математических формул функций активации и прочее, позволит сделать INSML удобным
инструментом для обмена математическими моделями, представленными на его основе.
СПИСОК ЛИТЕРАТУРЫ
1. Big data refers to the volume, variety and velocity of structured and unstructured data
pouring through networks into processors and storage devices, along with the conversion of such
data
into
business
advice
for
enterprises.
Праймесбергер,
2011,
URL:
http://www.eweek.com/c/a/Data-Storage/TBA-Hadoop-Yahoo-Big-Data-Brightens-BI-Future254079/
2. Хайкин, Саймон. Нейронные сети: полный курс, 2-е издание.: Пер. с англ. - М.:
Издательский дом «Вильямс», 2006. - 1104 с.
3. Dharmendra S. Modha Introducing a Brain-inspired Computer URL:
http://www.research.ibm.com/articles/brain-chip.shtml
Абашин Валерий Геннадьевич
ФГБОУ ВПО «Госуниверситет — УНПК», г.Орел
к.т.н., доцент, зав.каф. «Прикладная математика и информатика»
Тел: +79538178878
E-mail: valeriy@abashin.ru
Пензев Владимир Олегович
ФГБОУ ВПО «Госуниверситет — УНПК», г.Орел
студент
Тел: +79536290483
E-mail: vladimir-penzev@mail.ru
Гончаров Максим Игоревич
ФГБОУ ВПО «Госуниверситет — УНПК», г.Орел
студент
Тел: +79200800942
E-mail: www.qubibk@yandex.ru.
Download