Научная статья на тему 'СРАВНИТЕЛЬНЫЙ АНАЛИЗ ВОЗМОЖНОСТИ НЕЙРОСЕТЕВОГО МОДЕЛИРОВАНИЯ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON И В СРЕДЕ MATLAB'

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

CC BY
218
36
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НЕЙРОННАЯ СЕТЬ / НЕЙРОСЕТЕВОЕ МОДЕЛИРОВАНИЕ / PYTHON / MATLAB / МАШИННОЕ ОБУЧЕНИЕ / ПРОГРАММИРОВАНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Леметюйнен Юрий Александрович, Дударов Сергей Павлович

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Леметюйнен Юрий Александрович, Дударов Сергей Павлович

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

COMPARATIVE ANALYSIS OF THE POSSIBILITY OF NEURAL NETWORK MODELING IN THE PYTHON PROGRAMMING LANGUAGE AND IN THE MATLAB ENVIRONMENT

The relevance of the chosen topic is due to the high interest in neural networks and their application for solving various problems. For this reason, there is a problem of choosing the tools used for the development and application of artificial neural networks. In addition, this topic helps to study neural networks and their architectures in detail

Текст научной работы на тему «СРАВНИТЕЛЬНЫЙ АНАЛИЗ ВОЗМОЖНОСТИ НЕЙРОСЕТЕВОГО МОДЕЛИРОВАНИЯ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON И В СРЕДЕ MATLAB»

УДК 004.8

Леметюйнен Ю.А., Дударов С.П.

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ВОЗМОЖНОСТИ НЕЙРОСЕТЕВОГО МОДЕЛИРОВАНИЯ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON И В СРЕДЕ MATLAB

Леметюйнен Юрий Александрович - студент 2 курса бакалавриата факультета цифровых технологий и химического инжиниринга;

Дударов Сергей Павлович - к.т.н., доцент кафедры информационных компьютерных технологий, e-mail: dudarov@muctr.ru,

Российский химико-технологический университет имени Д. И. Менделеева, Москва, Россия 125047, Москва, Миусская пл., д. 9

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

Ключевые слова: нейронная сеть, нейросетевое моделирование, python, MATLAB, машинное обучение, программирование.

COMPARATIVE ANALYSIS OF THE POSSIBILITY OF NEURAL NETWORK MODELING IN THE PYTHON PROGRAMMING LANGUAGE AND IN THE MATLAB ENVIRONMENT

Lemetyuynen Y.A., Dudarov S.P.

D. Mendeleev University of Chemical Technology of Russia, Moscow, Russia

The relevance of the chosen topic is due to the high interest in neural networks and their application for solving various problems. For this reason, there is a problem of choosing the tools used for the development and application of artificial neural networks. In addition, this topic helps to study neural networks and their architectures in detail. Keywords: neural networks, neural network modeling, python, MATLAB, machine learning, programming.

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

Прежде всего, искусственная нейронная сеть -это математическая модель (или ее программно-аппаратное воплощение), имитирующая

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

Широко используемыми в настоящее время представителями всего имеющегося многообразия инструментов разработки искусственных нейронных сетей являются язык программирования python и пакет прикладных программ MATLAB. Также часто используется язык программирования C++, но без специальных знаний работы данного языка с памятью реализовать нейронную сеть довольно проблематично. Также существует много фреймворков, которые были написаны специально для реализации нейронных сетей. Они дают значительное преимущество перед использованием языка без применения библиотек. Кроме того, есть крупные программные инструменты нейросетевого моделирования и работы с большими данными, такие, как KNIME, позволяющие использовать искусственные нейронные сети без знания языков программирования. В то же время они не всегда учитывают специфику поставленной задачи, в которой может потребоваться определённое преобразование как данных, так и самой математической модели.

Остановимся подробнее на языке python, а конкретнее на сочетании его библиотек NumPy и Keras. В качестве вспомогательных библиотек применяются pandas и matplotlib. Pandas -библиотека, предназначенная для работы с данными, matplotlib - для выведения графиков. Библиотека Keras - надстройка над фреймворками Deepleaming4j, TensorFlow и Theano, позволяющая оперативно работать с нейронными сетями. NumPy -библиотека для работы с математическими объектами, например массивы и матрицы. В качестве

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

Для обучения нейронных сетей в библиотеке Keras по умолчанию используется градиентный алгоритм (метод стохастического градиентного спуска), но при желании его можно заменить на альтернативный. В MATLAB алгоритм обучения задается вручную, что позволяет выбрать от линейных методов до градиентного спуска, например, алгоритм Левенберга-Марквардта, который является одним из самых быстрых.

Для решения задач нейросетевого моделирования в MATLAB существуют стандартные функции, позволяющие задавать класс нейронной сети из числа представленных в стандартной библиотеке, выбирать количество слоёв и нейронов в них, настраивать структуру связей между нейронами [3]. В то же время возможности библиотеки Keras не предусматривают выбора структуры из уже готовых. Здесь требуется самостоятельно моделировать нейронную сеть, что, несомненно, ограничивает её доступность. Выбор функции активации довольно обширный и примерно одинаков для обоих инструментов.

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

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

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

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

Приведём пример решения конкретной задачи нейросетевого моделирования с использованием анализируемых инструментов. Основываясь на экспериментальных данных химических показателей вина и экспертной оценке его качества, разработаем нейронную сеть для предсказания последней характеристики. Для данной задачи мы выбрали классический перцептрон, включающий в себя один скрытый слой с 11 нейронами. Сеть имеет одиннадцать входных переменных и одну выходную. В качестве активационной была выбрана сигмоидная логистическая функция. Ниже приведены схемы моделей перцептрона в python (рис. 1) и в среде MATLAB (рис. 2).

dense_inpiii: InputLayer input: [(None, J J)|

output: [(None, J J)J

*

dense: Ufense input (None, Jl)

output: (None, Jl)

¥

dense_l: Dense input; (None, 11)

output: (None, 1)

Рис. 1. Схема модели нейронной сети в python для реализации с помощью библиотеки Keras

Объём обучающей выборки составил 500 примеров, тестовой - 17 примеров. Соотношение между объёмом обучающей выборки и количеством настраиваемых весовых коэффициентов составляет около 3,5, что предполагает хороший баланс между запоминанием и обобщением данных [2]. Процесс обучения был достаточно быстрым, что говорит о хорошей корреляции выхода и входов. На рис. 3 показано изменение среднеквадратичной ошибки в процессе обучения. Для обоих инструментов наблюдалась схожая картина обучения. Можно отметить, что скорость обучения в программе,

написанной на языке python, была несколько ниже, чем в среде MATLAB, что может объясняться использованием различных алгоритмов обучения. Ошибка обучения в программе на python составила около 0,06, а в среде MATLAB - около 0,05.

Input

Output

11

©

BS

^krrt

Output

11 1 Рис. 2. Схема модели нейронной сети в среде MATLAB

га il?

х

Ч>

Номер эпохи — MATLAB — ferai

Рис. 3. График зависимости квадратичной ошибки от эпохи обучения Анализ обучающей выборки показал, что примерно 50% оценок качества вина (выходных переменных) были численно равны 5. Тем не менее, это не повлияло на качестве полученных нейросетевых моделей, что доказывает уровень среднеквадратичной ошибки. Таким образом, можно сделать вывод, что наряду с особенностями предметной области решаемой задачи важное значение для качества получаемых моделей имеет набор обучающих данных.

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

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

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

моделированием.

В заключение следует отметить, что дальнейшие исследования будут нацелены на изучение возможностей визуальной реализации различных архитектур искусственных нейронных сетей как в среде MATLAB, так и с помощью библиотеки Keras при использовании Google Cloud ML [4] для решения практических задачах различного уровня сложности и объёма обрабатываемых данных.

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

1. Леметюйнен Ю.А. Основные проблемы применения нейронных сетей в биотехнологических процессах// Актуальные научные исследования в современном мире. - Вып. 12(68), часть 2, 2020. -68 с.

2. Дударов С.П., Папаев П.Л. Теоретические основы и практическое применение искусственных нейронных сетей: учеб. пособие. - М.: РХТУ им. Д.И. Менделеева, 2014. - 104 с.

3. Дьяконов В.П., Круглов В.В. MATLAB 6.5 SP 1/7/7 SP 1/7 SP2 + Simu-link 5/6. Инструменты искусственного интеллекта и биоинформатики. - М.: СОЛОН-ПРЕСС, 2006. - 453 с.

4. Джулли А., Пал С. Библиотека Keras -инструмент глубокого обучения. Реализация нейронных сетей с помощью библиотек Theano и TensorFlow. - М.: ДМК Пресс. - 294 с.

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