
- •Выпускная квалификационная работа
- •Задание на выполнение выпускной квалификационной работы (вкр)
- •Календарный план
- •Реферат
- •Содержание
- •Термины и определения
- •Перечень сокращений и обозначений
- •Введение
- •Обзор предметной области и анализ существующих решений
- •Обзор предметной области
- •Введение в предметную область
- •Классификация изображений
- •Классификация текста
- •Анализ существующих решений
- •Графические приложения на основе iPython
- •Обзор состояния науки о данных и машинного обучения
- •Выводы по разделу
- •Определение требований к разрабатываемому приложению
- •Требования к функциям
- •Функциональная структура приложения
- •Функции списка проектов
- •Функции проекта
- •Функции блоков кода
- •Функции блоков текста
- •Функции настроек приложения
- •Функции инструментов
- •Функции списка разделов
- •Функции раздела
- •Функции шаблона
- •Взаимодействие приложения со средой исполнения
- •Требования к эргономике и технической эстетике
- •Общие требования к внешнему виду
- •Требования по обработке исключительных ситуаций
- •Требования по вводу и контролю данных
- •Требования по организации экранных форм
- •Требования к техническому обеспечению
- •Выводы по разделу
- •Техническая реализация
- •Описание необходимых библиотек и разработанных модулей
- •Результаты разработки
- •Выводы по разделу
- •Демонстрация работы приложения
- •Обзор функций списка проектов
- •Функция списка проектов «Новый проект»
- •Функция списка проектов «Открыть проект»
- •Функция списка проектов «Сохранить проект»
- •Функция списка проектов «Дублировать текущий проект»
- •Функция списка проектов «Закрыть проект»
- •Функция списка проектов «Выход из программы»
- •Функция проекта «Остановить выполнение блоков»
- •Функция проекта «Перезапустить ядро»
- •Функция проекта «Очистить вывод выбранных блоков»
- •Функция проекта «Удалить выбранные блоки»
- •Классификация изображений
- •Классификация текста
- •Выводы по разделу
- •Заключение
- •Список использованных источников
Обзор состояния науки о данных и машинного обучения
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 — Краткий анализ существующих решений
Решение
Функция |
Графические приложения на основе IPython |
MATLAB Deep Learning Toolbox |
Simbrain |
Neural Network Console WinAPP |
Net Maker |
Выбор готовых архитектур, их изменение и настройка процесса обучения |
с помощью кода |
+ |
+ |
+ |
+ |
Визуализация и отображение результатов процесса обучения |
с помощью кода |
+ |
+ |
+ |
+ |
Наличие стандартных наборов данных и/или их загрузка из Интернета по запросу |
с помощью кода |
в комплекте |
в комплекте |
автозагрузка из Интернета |
− |
Создание и редактирование набора данных |
с помощью кода |
с помощью кода |
в таблице |
− |
− |
Интерактивная визуализация работы сети |
с помощью кода |
+ |
+ |
− |
− |
Экспорт модели в ONNX формат |
с помощью кода |
+ |
− |
− |
− |
Разработка сценариев/программ с графическим отображением |
только для поддерживаемых |
только в полном пакете MATLAB |
+ |
− |
− |
Пользовательские шаблоны кода |
− |
+ |
+ |
− |
− |
Разделение и объединение проектов по средам исполнения |
− |
− |
− |
− |
− |
Операционная система |
Windows, Linux |
Windows, Linux |
Windows |
Windows |
Windows |
Лицензия |
Бесплатно |
30 дней условно-бесплатно |
Бесплатно |
Бесплатно |
Бесплатно |
Таким образом, нужно объединить представленные в таблице функции в новое приложение, которое подойдет как для изучения и исследования машинного обучения, так и для решения бизнес-задач. В следующих разделах будет предложена архитектура такого решения, его возможности, функционал, а также тонкости реализации и использованные библиотеки.