Научная статья на тему 'ПРОГРАММНАЯ РЕАЛИЗАЦИЯ НЕЙРОННОЙ СЕТИ С ОБУЧЕНИЕМ ДЛЯ ОБРАБОТКИ ЗАПРОСОВ К ИЕРАРХИЧЕСКОЙ БАЗЕ ДАННЫХ'

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ НЕЙРОННОЙ СЕТИ С ОБУЧЕНИЕМ ДЛЯ ОБРАБОТКИ ЗАПРОСОВ К ИЕРАРХИЧЕСКОЙ БАЗЕ ДАННЫХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
83
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БАЗА ДАННЫХ / НЕЙРОННАЯ СЕТЬ / СПЕЦИФИКАЦИЯ XML / ЗАПРОСЫ / ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ / ТРЕХСЛОЙНАЯ СЕТЬ ПРЯМОГО РАСПРОСТРАНЕНИЯ

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

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

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

Текст научной работы на тему «ПРОГРАММНАЯ РЕАЛИЗАЦИЯ НЕЙРОННОЙ СЕТИ С ОБУЧЕНИЕМ ДЛЯ ОБРАБОТКИ ЗАПРОСОВ К ИЕРАРХИЧЕСКОЙ БАЗЕ ДАННЫХ»

УДК 004

В.Н. Когай, Г.Н. Платонов, Д.А. Розыходжаева

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

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

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

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

Структура базы представляет собой дерево, узлы которого распределены по трем уровням. Нулевой уровень этого дерева является традиционной «точкой входа» в базу и не имеет в данной работе никакой логической нагрузки. Этот элемент является важнейшим синтаксическим требованием спецификации XML, которое заключается в том, что документ может иметь только один корневой элемент.

Идущий далее второй уровень называется уровнем записей, так как узлы этого уровня служат контейнерами для атрибутов, принадлежащих отдельной записи базы данных. По сути, каждый узел второго слоя инкапсулирует одну и только одну запись.

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

В разработанной базе данных каждая запись характеризуется пятью параметрами, а именно:

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

- Genre - поле «Жанр», содержит данные строкового типа.

- Author - поле «Автор», содержит данные строкового типа.

- Title - поле «Название», содержит данные срокового типа.

- Price - поле «Цена», содержит вещественное число, большее нуля.

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

Нейроны первого слоя - сенсорные. Они не выполняет никаких операций и просто ретранслирует входной вектор нейронной сети далее нейронам второго слоя.

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

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

1. Структура программного обеспечения

Программная реализация состоит из пяти программных модулей:

- DissProject.cpp,

- Main.cpp,

- Query.cpp,

© Когай В.Н., Платонов Г.Н., Розыходжаева Д.А., 2016.

- Neural.cpp,

- Learning.cpp,

и двух файлов данных:

- Data.swd,

- Db.xml.

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

Модуль Main.cpp является основным модулем проекта и служит для обработки событий интерфейса пользователя, хранения описания класса Entity - внутреннего формата представления данных, а также как связующее звено для всех остальных модулей, которые к нему подключены.

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

Модуль Neural.cpp содержит в себе описание классов NeuralNetwork и Neuron, являющихся программными реализациями применяемой математической модели нейронов и нейронной сети на их основе.

Модуль Learning.cpp содержит код процедур обучения с подкреплением применяемой модели нейронной сети.

Файл data.swd хранит в себе значения синаптических весовых коэффициентов нейронной сети. Эти весовые коэффициенты хранятся в виде обычного массива вещественных чисел, разделенных пробелами, символами табуляции или символами перевода строк.

Файл db.xml представляет собой файл базы данных в XML-формате. Информация, хранящаяся в нем, отформатирована в соответствии со спецификацией стандарта XML версии 1.0. Структуру этого файла можно представить следующим образом:

<?XML version = "1.0" encoding = "UTF-8"?>

<root>

<Book>

<ID type = "xxx">yyy</ID> <Genre type = "xxx">yyy</Genre> <Author type = "xxx">yyy</Author> <Title type = "xxx">yyy</Title> <Price type = "xxx">yyy<Price> </Book> <Book>

</Book>

</root>

Определены три класса, имплементирующих базовые структуры данных:

- Класс NeuralNet,

- Класс Neuron,

- Класс Entity.

Эти классы не являются независимыми, а опираются на методы и поля других.

Класс NeuralNet является имплементацией ключевой структуры всего проекта - нейронной сети.

Класс Neuron, реализует математическую модель нейронов сети. Этот класс представляет модели нейронов всех трех типов, встречающихся в данной нейронной сети. Специфическая функция нейрона определяется значением параметра layer, указывающий номер слоя, в котором находится нейрон.

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

Еще один важный набор подпрограмм не объединенный, однако, в класс это подпрограммы обучения, код которых находится в файле Learning.cpp.

В качестве языка программирования используемого для реализации решения поставленной задачи был выбран язык С++. Средой разработки является Embarcadero Technologies CodeGear RAD Studio 2009.

■?„ NeuralDBMS

ВНЕ

л

sci-fi Asimov Isaac Foundation I 9,45

2 sci-fi Clark Arthur Rendezvous with Rama 15

3 poetry Kipling Rudyard Collection 12,99

4 textbook Norvig Peter Artificial Intelligence: Modern App 20

5 textbook Grey Henry Anatomy 16,5

6 textbook Haykin Simon Neural Networks: Comprehensive 19,3

7 Fantasy Tolkien John Ronald Ruel Lord of The Rings: Trilogy 25,6

8 Fantasy Lewis Clive Staples Chronicles of Narnia: Sorcerer's N 12,7

9 Horror King Stephen It 19,99

10 Detective Fictior Po Edgar Allan The Murders in the Rue Morgue 9,99

11 Detective Fictior Christie Agatha Murder on the Orient Express 13,6

12 Novel Rollins James Deep Fathom 6,5

13 sci-fi Bradbury Ray Fahrenheit 451 17 v

ил >

Learning object index: N/A Learning object value: N/A

Process Query

Pos.Resp.

Neg.Resp.

Reset Weights

Рис. 1. Рабочее окно программы 2. Тестирование программного обеспечения

Оценка работы системы обработки запросов в режиме с жесткими критериальными ограничения-

ми.

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

t .NeuralDBMS

Ц

SCI-ft Aswnov Isaac Foundation I »,4S

2 SCbft Clark Arthur Rendezvous with Rama 15

13 so-fi Bradbury Ray Fahrenheit 451 17

14 sct-fi Bradbury Ray Martian Chronicles 22,2

16 so-fi Piers Anthony Firefly 2S,34

17 SC»-fi Piers Anthony Geodyssey 01 30, M

18 so-ft Asmov Isaac Foundations II: Forward The Four 11

19 sci-fi Awnov Isaac Foundations III: Foundation And 14

< >

Genre

-sci-fi

Learnrtg object ndex: N/A Learning object value: N/A

Price Title

Process Query

[ Save Per ems j [ Neg.Resp. ]

[ Load Params j [ Show Base

[ Reset Weights)

Рис. 2. Результат обработки простого запроса

Модифицируем исходный запрос, добавив в него еще одно условие вывода записей, написанных определенным автором, например, Айзеком Азимовым. Для этого в поле Author введем строку "=Asimov Isaac. Результат обработки этого запроса приведен на рис. 3, по которому видно, что новый запрос действительно был корректно обработан, и сформированный список вывода соответствует требованиям.

f Neiir.itDIJMS

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

В©®

L

1 so-h Asimov Isaac Foundation 1 9,45

18 SO-fl Aemov Isaac Foundations II: Forward The Four 11

19 so-fi Asvnov Isaac Foundations III: Foundation And 14

< V

Author

-Asimov Isaac

бия_

—SCI-fl

Learning obiect Index: N/A Learrnng object value: N/A

Protei» Query |

Pos.Resp.

T*le

I Save Params | | Neg.Resp. |

[ Load Params | ¡Reset Weights |

Show Base

Рис. 3. Результат обработки более сложного запроса с двумя критериями отбора записей

Усложним запрос, доведя количество критериальных ограничений до трех, добавив ограничение на цену книги. Допустим, нам нужны все книги Айзека Азимова, стоящие не дороже чем 11 условных единиц. Результат обработки этого трехкритериального запроса изображен на рис. 4.

r.NeuralDBMS

BS®

sci-fi Asimov Isaac Foundation I ■.I'-

18 sci-fi Asimov Isaac Foundations II: Forward The Four ll

< __

Author

—Asimov Isaac <-11

Genre Title

—sci-fi

Learning object Index: N/A Learning object value: N/A

I Proce» Query I

Save Params

Load Params

Show Base

Pos.Resp.

Neg.Resp.

Reset Weights

Рис. 4. Результат обработки сложного запроса с комплексом ограничивающих критериев

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

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

рает все записи, значение параметра "Цена" которых не превосходит своего критериального ограничения более чем на величину интервала допустимых отклонений. Значение этого интервала, отображенное на индикаторе "Learning object value" равно 6,25. Таким образом, в список вывода отбираются все книги, цена которых меньше чем 18,25. Действительно, если взглянуть на рис.6, то видно, что все элементы отображенного списка вывода удовлетворяют этому ограничению. Однако отклонение цены все еще представляется слишком большим, и настройка сети должна быть продолжена.

Оценка работы системы обработки запросов в режиме с нежесткими критериальными ограничениями с обучением.

После нескольких итераций, обучающий алгоритм инициирует настройку требуемой синаптиче-ской связи. Это видно из значения, отображаемого на индикаторе "Learning object index", которое равно трем, и соответствует индексу атрибута "Цена" (рис. 6.).

Рис. 6. Результат, полученный в процессе обучения сети (до его завершения)

в

NeuralDBMS

se®

1' sci-fi Asimov Isaac Foundation I 9.45

2 sci-fi Clark Arthur Rendezvous with Rama 15

3 poetry Kipling Rudyard Colection 12,99

8 Fantasy Lewis Clive Staples Chronicles of Narnia: Sorcerer's N« 12,7

10 Detective FrctiorPo Edgar Allan The Murders in the Rue Morgue 9,99

11 Detective Fictior Christie Agatha Murder on the Orient Express 13,6

12 Novel Rollins James Deep Fathom 6,5

IS Novel Daniel Defoe Robinson Crusoe 13

18 sci-fi Asimov Isaac Foundations II: Forward The Four 11

19 sd-fi Asimov Isaac Foundations III: Foundation And 14

< il >

Author

Price <12 Title

Learning object index: 3 Learning object value: 3,125

I Process Query

Load Params

I Show Base

Pos.Resp.

I Neg.Resp- | I Reset Weights I

Рис. 7. Результат, полученный после обучения

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

i, NeuralDBMS

Author

Price

Learning object index: 2 Learning object value: 0,78125

sci-fi Asimov Isaac Foundation I 9,45

3 poetry K»>tng Rudyard Colection 12,99

18 sci-fi Asimov Isaac Foundation II: Forward The Fount 11

19 sci-fi Asimov Isaac Foundation III: Foundation And E 14

20 sci-fi Abbot George Fowvders of World 17,45

< V >

1 __I

Genre Title

=Foundation

Process Query

Pos.Resp.

Save Params

Neg.Resp.

Load Params

Reset Weights

Show Base

Рис. 8. Результат, полученный после обучения сети

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

Что касается режима с нежесткими ограничениями отбора записей, то оценка результатов здесь сильно зависит от проблемной области и субъективных потребностей пользователя, а именно: значение интервала допустимых отклонений во время обучения стремится не к абсолютному оптимуму (в данном случае такое понятие, вообще говоря, неуместно), а к некой желаемой пользователем величине. В данном алгоритме обучения именно пользователь определяет, где и когда остановить обучение. Однако алгоритм обучения действительно допускает возможность получения любого значения для правой границы интервала допустимого отклонения. Для этого необходимо лишь, чтобы стартовое значение этой правой границы было достаточно большим. Дихотомический поиск гарантирует сходимость к любой желаемой точке лежащей между начальными границами (естественно при условии, что пользователь предоставлял непротиворечивые данные обратной связи, в виде своей субъективной оценки). Это подтверждается результатами рассмотренных тестовых запросов. Наконец сам по себе режим работы с нежесткими критериальными ограничениями предполагает определенный компромисс между количеством добавленных в список вывода потенциально полезных результатов и нерелевантным «мусором». Это четко иллюстрируется рис. 8. Сборник стихов Р. Киплинга, попавший в список вывода является примером издержек ослабления ограничений. Как и при работе с поисковыми системами в веб, подобные артефакты являются неизбежными.

Библиографический список

1.Платонов Г.Н., Когай В.Н. - Искусственные нейронные сети в задачах управления, Малака ошириш жарае-нини такомиллаштириш - Тошкент, 2011.

2.Платонов Г.Н., Когай В.Н. - Некоторые вопросы разработки архитектуры нейросетевых систем управления базами данных, ICTNews, №8, 2012.

КОГАЙ ВАЛЕРИЙ НИКОЛАЕВИЧ - кандидат технических наук, доцент кафедры "Информационные технологии", Ташкентский университет информационных технологий, Узбекистан.

ПЛАТОНОВ ГЕОРГИЙ НИКОЛАЕВИЧ - докторант, Рочестерский университет, штат Нью-Йорк,

США.

РОЗЫХОДЖАЕВА ДИЛДОРА АБРОРОВНА - магистрант кафедры "Информационные технологии", Ташкентский университет информационных технологий, Узбекистан.

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