Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Содержание ВКР / ВКР 2022 (без приложений). Коваленко Л.А. Разработка конструктора нейронных сетей

.pdf
Скачиваний:
79
Добавлен:
11.06.2022
Размер:
12.59 Mб
Скачать

Рисунок 1.6 — Google Colaboratory

Рисунок 1.7 — Kaggle Notebooks

21

Рисунок 1.8 — Paperspace Gradient

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

22

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

1.2.3Neural Network Console WinAPP

Neural Network Console WinAPP — настольное приложение,

разработанное компанией Sony, являющееся конструктором нейронных сетей

(рис. 1.11) [12]. Позволяет достаточно гибко выстраивать различные архитектуры.

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

23

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

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

1.2.4Net Maker

NetMaker — бесплатный пакет для построения нейронных сетей (рис.

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

Рисунок 1.12 — Net Maker

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

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

o Диаграммы рассеяния — с коэффициентом линейной корреляции ;

o Обучающие параметры, итерации;

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

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

24

1.2.5Simbrain

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

Рисунок 1.13 — Simbrain

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

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

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

Simbrain в качестве библиотеки, без графической оболочки.

25

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 место), tensorflow (2 место), xgboost (3 место), keras (4 место), pytorch (5 место);

большинство исследователей не использует AutoML решения, но интерес к ним растет.

Таким образом, исследование современных моделей и алгоритмов искусственного интеллекта чаще всего проводится в Jupyter-подобном ПО на

CPython, графическую оболочку (рис. 1.4) которого можно охарактеризовать следующим образом:

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

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

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

26

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

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

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

Все эти характеристики необходимо принять во внимание перед

построением архитектуры приложения.

1.4Выводы по разделу

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

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

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

Решение

Графические

MATLAB

 

Neural

 

 

 

 

 

Deep

 

Network

 

 

приложения на

Simbrain

Net Maker

 

Learning

Console

Функция

основе IPython

 

 

Toolbox

 

WinAPP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбор готовых

 

 

 

 

 

архитектур, их

 

 

 

 

 

изменение и

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

+

+

+

+

настройка процесса

 

 

 

 

 

обучения

 

 

 

 

 

 

 

 

 

 

 

Визуализация и

 

 

 

 

 

отображение

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

+

+

+

+

результатов

 

 

 

 

 

процесса обучения

 

 

 

 

 

 

 

 

 

 

 

Наличие

 

 

 

 

 

стандартных

 

 

 

автозагрузка

 

наборов данных

 

 

в

 

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

в комплекте

из

и/или их загрузка из

комплекте

 

 

Интернета

 

Интернета по

 

 

 

 

 

 

 

 

 

запросу

 

 

 

 

 

 

 

 

 

 

 

Создание и

 

с помощью

 

 

 

редактирование

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

в таблице

кода

набора данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интерактивная

 

 

 

 

 

визуализация

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

+

+

работы сети

 

 

 

 

 

27

Экспорт модели в

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

+

ONNX формат

 

 

 

 

 

 

 

 

 

 

 

Разработка

 

только в

 

 

 

сценариев/программ

только для

полном

+

с графическим

поддерживаемых

пакете

 

 

 

отображением

 

MATLAB

 

 

 

 

 

 

 

 

 

Пользовательские

+

+

шаблоны кода

 

 

 

 

 

 

 

 

 

 

 

Разделение и

 

 

 

 

 

объединение

проектов по средам

 

 

 

 

 

исполнения

 

 

 

 

 

Операционная

Windows, Linux

Windows,

Windows

Windows

Windows

система

Linux

 

 

 

 

 

 

 

 

 

 

 

 

30 дней

 

 

 

Лицензия

Бесплатно

условно-

Бесплатно

Бесплатно

Бесплатно

 

 

бесплатно

 

 

 

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

функционал, а также тонкости реализации и использованные библиотеки.

28

2 ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ К РАЗРАБАТЫВАЕМОМУ ПРИЛОЖЕНИЮ

2.1Требования к функциям

2.1.1Функциональная структура приложения

Обобщенная функциональная структура приложения представлена на

рисунке 2.1.

Рисунок 2.1 — Функциональная структура приложения

29

Приложение имеет функции для работы со списком проектов,

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

Файл проекта имеет расширение «nnc».

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

Так как в один момент времени просматривается только один проект, то операции проводятся над этим проектом.

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

Блок текста хранит весь текст в формате HTML, при необходимости преобразуя HTML и Markdown между собой.

Для каждой вкладки этапа («Наборы данных», «Архитектуры» и пр.)

свой список разделов.

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

2.1.2Функции списка проектов

Основные функции списка проектов приведены в таблице 2.1.

Таблица 2.1 — Основные функции списка проектов

Функция

 

Описание

 

 

 

«Новый

1.

Открывается диалоговое окно сохранения файла нового проекта.

проект»

2.

Если в диалоговом окне выбран файл уже открытого проекта и

 

 

нажата кнопка «Сохранить», то в поле со статусом, в логгер и во

 

 

всплывающем сообщении об ошибке выводится: «Проект по пути

 

 

[путь] уже открыт» с кнопкой «Ок».

 

3.

Если в диалоговом окне было введено корректное имя файла (либо

 

 

выбран файл на перезапись) и нажата кнопка «Сохранить», то

 

 

создается новый проект:

 

 

1) В поле со статусом выводится «Подождите, пока проект

 

 

создается...»;

 

 

2) Проект сохраняется на диск;

 

 

 

30