Материал: Проверка на рерайт. Отчет

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.

Операция поиска #1

Исходный текст

ВВЕДЕНИЕ

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

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

Нейронные сети используются для решения бизнес-задач различного уровня сложности. Каждая задача характеризуется набором последовательных шагов, так называемым конвейером машинного обучения (англ. «machine learning pipeline»). Конвейер включает в себя предобработку данных, создание модели нейронной сети, ее обучение, валидацию, тестирование и экспорт для последующего использования. Некоторые части не изменяются от эксперимента к эксперименту, поэтому их можно выделить в группы и использовать повторно.

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

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

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

Для достижения целей работы необходимо выполнить следующие задачи:

1.Обзор предметной области и анализ существующих решений;

2.Написание формализованных требований;

3.Создание настольного приложения;

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

1 ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ И АНАЛИЗ СУЩЕСТВУЮЩИХ РЕШЕНИЙ

1.1 Обзор предметной области 1.1.1 Введение в предметную область

Искусственный интеллект — свойство интеллектуальных систем выполнять творческие функции, которые традиционно считаются прерогативой человека [1].

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

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

1

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.

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

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

Рисунок 1.1 — Обобщенный конвейер машинного обучения

Некоторые шаги конвейера (выбор параметров обучения и валидации, сохранение результатов, экспорт моделей) от задачи к задаче почти не меняются. Чаще всего используется один подготовленный набор данных (англ. «dataset»), а в ходе экспериментов меняются только модели и параметры обучения. Из этого следует, что значительные части кода можно сделать шаблонными для максимального повторного использования.

1.1.2 Классификация изображений Задача классификации является одной из самых популярных. Об этом свидетельствует портал

«Machine Learning» (PapersWithCode): 3772 научных документов — самое большое среди всех методологий, представленных на портале [3].

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

Классификация изображений является многоклассовой классификацией; входными данными являются изображения, а выходными —метки классов.

Конвейер машинного обучения может выглядеть следующим образом:

1.Обработка входного изображения (изменение размера, преобразование цветового пространства и др.);

2.Искажение изображения (англ. «augmentation») для более качественного обучения модели;

3.Построение модели;

4.Настройка параметров обучения;

5.Запуск обучения.

6.Визуализация (графики точности и функции потерь, визуализация промежуточных результатов модели);

7.Экспорт моделей.

1.1.3 Классификация текста Классификация текста — задача, заключающаяся в отнесении документа к одной из нескольких

категорий на основании содержания. Является многоклассовой классификацией; входными данными являются тексты, а выходными — метки классов. Применяется для поиска похожих документов, в задаче определения языка, в задаче категоризации новостей.

Анализ тональности текста — задача, заключающаяся в определении эмоциональной окраски (тональности) текста. Является бинарной классификацией; входными данными являются тексты, а выходными — группы «positive» и «negative». Применяется для анализа настроений пользователей, их отношений к чему-либо.

Предобработка текстов может быть различна — приведение к нижнему регистру, удаление служебных слов, удаление пунктуации, стемминг (нахождение основной формы слова), лемматизирование (нахождение правильной словарной формы слова, т.е. леммы) и т.д. Однако любая предобработка может привести к некачественным результатам, например, удаление пунктуации в случае «строить, нельзя сносить», или стемминг в случае «добрый — добро», или приведение к нижнему регистру в случае «периметр — Периметр» (комплекс автоматического управления ответным ядерным ударом).

Текст, в отличие от изображения, в исходном виде не является последовательностью чисел,

2

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.

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

1.2 Анализ существующих решений

1.2.1 MATLAB Deep Learning Toolbox

MATLAB Deep Learning Toolbox предоставляет платформу для проектирования и реализации глубоких нейронных сетей с алгоритмами, предварительно обученными моделями и приложениями [4]. Можно выполнять классификацию и регрессию изображений, временных рядов и текстовых данных. Можно создавать сетевые архитектуры, такие как генеративные состязательные сети (GAN) и сиамские сети (Siamese Network), используя автоматическое дифференцирование, пользовательские циклы обучения и общие веса.

Приложение Deep Network Designer позволяет проектировать, анализировать и обучать сети в графическом виде.

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

Можно импортировать/экспортировать модели из/в формат ONNX (рис. 1.2). Инструментарий поддерживает трансферное обучение (метод, в котором используются предварительно обученные модели) с DarkNet-53, ResNet-50, NASNet, SqueezeNet и многими другими.

Рисунок 1.2 — Возможности импорта и экспорта в MATLAB Deep Learning Toolbox

Скриншот MATLAB Deep Learning Toolbox приведен на рисунке 1.3.

Рисунок 1.3 — MATLAB Deep Learning Toolbox

1.2.2 Графические приложения на основе IPython

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

JupyterLab и Jupyter-Notebook (Desktop) (рис. 1.4) [5];

Visual Studio Code Jupyter-Notebooks Extension (Desktop) (рис. 1.5) [6];

Google Colaboratory (Web) (рис. 1.6) [7];

Kaggle Notebooks (Web) (рис. 1.7) [8];

Paperspace Gradient (Web) (рис. 1.8) [9];

Amazon SageMaker Studio Lab (Web) (рис. 1.9) [10];

Microsoft Azure Notebooks (Web) (рис. 1.10) [11].

Отличия во внешнем виде и некоторых дополнительных функциях.

Рисунок 1.4 — JupyterLab

Рисунок 1.5 — Visual Studio Code, Jupyter-Notebooks Extension

Рисунок 1.6 — Google Colaboratory

Рисунок 1.7 — Kaggle Notebooks

Рисунок 1.8 — Paperspace Gradient

Рисунок 1.9 — Amazon SageMaker Studio Lab

3

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.

Рисунок 1.10 — Microsoft Azure Notebooks

1.2.3 Neural Network Console WinAPP

Neural Network Console WinAPP — настольное приложение, разработанное компанией Sony, являющееся конструктором нейронных сетей (рис. 1.11) [12]. Позволяет достаточно гибко выстраивать различные архитектуры.

Рисунок 1.11 — Neural Network Console WinAPP

Приложение может быть полезно для исследовательских целей.

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

1.2.4 Net Maker

NetMaker — бесплатный пакет для построения нейронных сетей (рис. 1.12) [13]. Был разработан в первую очередь для классификации взаимодействия частиц в экспериментах по физике высоких энергий.

Рисунок 1.12 — Net Maker

Особенности:

Визуализация входных данных и результатов работы сети: o Гистограммы — с μ и σ распределения;

o Диаграммы рассеяния — с коэффициентом линейной корреляции R_xy; o Обучающие параметры, итерации;

o Обновляемые в реальном времени графики;

Вычисления оптимизированы в C / asm (SSE2 / SSE3 / SSE4.1 aware).

1.2.5 Simbrain

Simbrain — бесплатный инструмент для построения, запуска и анализа нейронных сетей (рис. 1.13)

[14].

Рисунок 1.13 — Simbrain

«Сетевой компонент» представляет собой моделируемую нейронную цепь, состоящую из нейронов и синапсов.

«Мир» — компонент, который взаимодействует с сетевыми компонентами, передавая и/или получая информацию. Например, «мир данных», «мир текста», «мир изображения» и др.

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

1.3 Обзор состояния науки о данных и машинного обучения

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

Согласно отчету Kaggle на конец 2021 года: [15]

наиболее популярными инструментами разработки моделей являются Jupyter Notebook (1

место), Visual Studio Code (2 место), JupyterLab (3 место);

наиболее часто используемыми методами и алгоритмами машинного обучения являются линейная или логистическая регрессия (1 место), деревья решений или «случайный лес» (2 место), алгоритмы градиентного бустинга (3 место), сверточные сети (4 место), подход Байеса (5 место), глубокие сети (6 место), рекуррентные (7 место), сети transformer (8 место), генеративносостязательные сети (9 место);

наиболее часто используемыми инструментами являются библиотеки Python: scikit-learn (1

4

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.

место), tensorflow (2 место), xgboost (3 место), keras (4 место), pytorch (5 место);

большинство исследователей не использует AutoML решения, но интерес к ним растет. Таким образом, исследование современных моделей и алгоритмов искусственного интеллекта чаще всего проводится в Jupyter-подобном ПО на CPython, графическую оболочку (рис. 1.4) которого можно охарактеризовать следующим образом:

в основной рабочей области отображаются вкладки документов;

документ Jupyter-Notebook (.ipynb) содержит блоки с текстом и блоки с кодом на СPython и выводом;

блоки с текстом используются для комментирования;

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

имеется функция остановки выполнения блока;

имеется функция перезапуска ядра, которая сбрасывает состояние интерпретатора к исходному (память освобождается).

Все эти характеристики необходимо принять во внимание перед построением архитектуры приложения.

1.4 Выводы по разделу В первом разделе описана предметная область, подробно рассмотрены выбранные задачи

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

Таблица 1.1 — Краткий анализ существующих решений Решение

Функция

Графические приложения на основе IPython

MATLAB Deep Learning Toolbox Simbrain Neural Network

Console WinAPP Net Maker

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

+

+

+

+

Визуализация и отображение результатов процесса обучения

спомощью кода

+

+

+

+

Наличие стандартных наборов данных и/или их загрузка из Интернета по запросу

спомощью кода

вкомплекте

вкомплекте

автозагрузка из Интернета

5