Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Содержание ВКР / ВКР 2022 (без приложений). Коваленко Л.А. Разработка конструктора нейронных сетей.docx
Скачиваний:
126
Добавлен:
11.06.2022
Размер:
16.44 Mб
Скачать
    1. Обзор состояния науки о данных и машинного обучения

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 и выводом;

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

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

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

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

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

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

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

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

Решение

Функция

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

MATLAB

Deep

Learning

Toolbox

Simbrain

Neural

Network

Console WinAPP

Net Maker

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

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

+

+

+

+

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

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

+

+

+

+

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

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

в комплекте

в комплекте

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

Создание и редактирование набора данных

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

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

в таблице

Интерактивная визуализация работы сети

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

+

+

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

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

+

Разработка сценариев/программ с графическим отображением

только для поддерживаемых

только в полном пакете MATLAB

+

Пользовательские шаблоны кода

+

+

Разделение и объединение проектов по средам исполнения

Операционная система

Windows, Linux

Windows, Linux

Windows

Windows

Windows

Лицензия

Бесплатно

30 дней условно-бесплатно

Бесплатно

Бесплатно

Бесплатно

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