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

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

CC BY
32
3
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
нейронные сети / СУБД / PostgreSQL / машинное обучение / интеграция / neural networks / DBMS / PostgreSQL / machine learning / an integration

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — А.Ю. Постойко, Е.П. Моргунов

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

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

NEURAL NETWORKS INTEGRATION INTO POSTGRESQL DBMS

The ever increasing amount of data is one of the main information processing problems. Many different systems are used for their analysis and processing. Thus, the neural networks integration into the PostgreSQL makes it possible to increase the efficiency of data analysis.

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

Секция «Программные средства и информационные технологии»

УДК 004.032.2

ИНТЕГРАЦИЯ НЕЙРОННЫХ СЕТЕЙ В СУБД POSTGRESQL

А. Ю. Постойко Научный руководитель - Е. П. Моргунов

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

E-mail: postoiko.anastasya@yandex.ru

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

Ключевые слова: нейронные сети, СУБД, PostgreSQL, машинное обучение, интеграция. NEURAL NETWORKS INTEGRATION INTO POSTGRESQL DBMS

A. Y. Postoyko Scientific supervisor - E. P. Morgunov

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarskii rabochii prospekt, Krasnoyarsk, 660037, Russian Federation E-mail: postoiko.anastasya@yandex.ru

The ever increasing amount of data is one of the main information processing problems. Many different systems are used for their analysis and processing. Thus, the neural networks integration into the PostgreSQL makes it possible to increase the efficiency of data analysis.

Ключевые слова: neural networks, DBMS, PostgreSQL, machine learning, an integration.

В базах данных (БД) по всему миру хранится бесчисленное количество записей. Ежедневно объемы информации, пополняющей большинство баз данных, увеличиваются в тысячи, а то и в десятки тысяч раз. При этом данные сохраняют не только для того, чтобы в нужный момент к ним обратиться, то и, по большей, части, для их анализа и извлечения полезной информации. С перманентно растущим объемом данных эффективная обработка запросов в системах управления базами данных (СУБД) по-прежнему остается серьезной проблемой. Таким образом, оптимизация обработки данных является активной темой исследований [2].

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

Интеллектуальный анализ данных - это метод, который позволяет выявлять закономерности или строить модели на их основе. Но зачастую для их применения необходимо покупать и устанавливать дополнительное программное обеспечение (ПО), которое зачастую имеет высокую стоимость и требует много времени для освоения. Поэтому в данной статье рассматривается интеграция нейронных сетей непосредственно в СУБД, в частности, в PostgreSQL.

Актуальные проблемы авиации и космонавтики - 2022. Том 2

Такой способ применения нейронных сетей обеспечит гибкость системы, так как данные уже находятся в БД и рассматриваемая СУБД предоставляет возможности для агрегирования, суммирования и других манипуляций с данными для анализа. Такой способ работы с нейронными сетями также значительно сократит стоимость и время, необходимое для понимания принципов взаимодействия с системой, так как достаточно лишь выполнить SQL-запрос [1].

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

Кроме того, данные передаются в нейронную сеть в виде векторов или матриц. Такие структуры похожи на те, что хранятся в БД. Вектор - это то, что является записью или кортежем, а матрица - это набор данных или результатов. Эти свойства дают значительные преимущества для использования методов машинного обучения внутри СУБД [3]. Поэтому достаточно быстро и легко отделить код нейронной сети от кода подготовки данных, что позволяет модифицировать или изменять то, что нужно анализировать. Для интеграции нейронных систем в СУБД PostgreSQL можно применить два способа.

Первый - применение Apache MADlib. Это расширение для PostgreSQL, которое предоставляет инструменты для машинного обучения, а также графики, статистику и аналитику для специалистов в области данных. Функции данного расширения вызываются с помощью SQL-команд, они предназначены для выполнения различных задач анализа данных, включая регрессию, классификацию и т. д. Вызов методов расширения выполняется с помощью команды SELECT [4].

Второй метод - написание хранимых функций и процедур. Процедурные языки в СУБД PostgreSQL позволяют писать функции и хранимые процедуры на различных языках программирования (C, SQL и PL/pgSQL PostgreSQL и другие). Pl/Python3 - применяется наиболее часто, так как поддерживается библиотеками машинного обучения, такими как Tensorflow и PyTorch, NumPy и Pandas [5].

Использование Pl/Python3 обеспечивает максимальную гибкость; практически, что можно сделать на языке Python, можно сделать в функции SQL или в хранимой процедуре в СУБД PostgreSQL. Таким образом, интегрирован один из методов кластеризации - алгоритм k-средних, реализованный на Pl/Python3. Кластеризация относится к проблеме разделения набора объектов в соответствии с некоторой зависящей от проблемы мерой сходства. Также данный алгоритм вызывался из Apache MADlib.

На рис. 1 представлена часть набора данных, на котором выполнялся анализ данных.

epal_length | sepal_width | petal_length | petal_width | species

0.2 | Iris-setosa

0,2 I Iris-setosa

0.2 I Iris-setosa

0.2 I Iris-setosa

Рис. 1. Часть набора данных

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

Секция «сПро граммные c седст ва и информацио нные тс х н о ло гшс»с

species 1 predictkmeans

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 {2}

Iris-setosa 1 12)

Рис. 2. Результат работы функции

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

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

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

1. Integration of Data Mining Techniques to PostgreSQL Database Manager System / A. Viloria, Génesis Camargo Acuña, Daniel Jesús Alcázar Franco et all. // Procedia Computer Science. 2019. V. 155. P. 575-580.

2. PostCENN: PostgreSQL with Machine Learning Models for Cardinality Estimation / Lucas Woltmann Dominik Olwig Claudio Hartmann // Proceedings of the VLDB Endowment. 2021. № 14(12). P. 2715-2718.

3. PostgreSQL and Machine Learning [Электронный ресурс]. URL: https://www.enterprisedb.com/blog/postgresql-and-machine-learning (дата обращения: 20.03.2022).

4. Apache MADlib: Big Data Machine Learning in SQL [Электронный ресурс]. URL: https://madlib.apache.org/(дата обращения: 21.03.2022).

5. PL/Python - процедурный язык Python [Электронный ресурс]. URL: https://postgrespro.ru/docs/postgresql/9.6/plpython-python23 (дата обращения: 21.03.2022).

О Постойко А.Ю., 2022

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