Рисунок 1.1 — Обобщенный конвейер машинного обучения
Некоторые шаги конвейера (выбор параметров обучения и валидации,
сохранение результатов, экспорт моделей) от задачи к задаче почти не меняются. Чаще всего используется один подготовленный набор данных
(англ. «dataset»), а в ходе экспериментов меняются только модели и параметры обучения. Из этого следует, что значительные части кода можно сделать шаблонными для максимального повторного использования.
1.1.2 Классификация изображений
Задача классификации является одной из самых популярных. Об этом свидетельствует портал «Machine Learning» (PapersWithCode): 3772 научных документов — самое большое среди всех методологий, представленных на портале [3].
Классификация конкретно изображений используется достаточно широко, например, в распознавании рукописных цифр и букв.
Классификация изображений является многоклассовой классификацией; входными данными являются изображения, а выходными — метки классов.
Конвейер машинного обучения может выглядеть следующим образом:
1.Обработка входного изображения (изменение размера,
преобразование цветового пространства и др.);
2.Искажение изображения (англ. «augmentation») для более качественного обучения модели;
6
3.Построение модели;
4.Настройка параметров обучения;
5.Запуск обучения.
6.Визуализация (графики точности и функции потерь, визуализация промежуточных результатов модели);
7.Экспорт моделей.
1.1.3 Классификация текста
Классификация текста — задача, заключающаяся в отнесении документа к одной из нескольких категорий на основании содержания.
Является многоклассовой классификацией; входными данными являются тексты, а выходными — метки классов. Применяется для поиска похожих документов, в задаче определения языка, в задаче категоризации новостей.
Анализ тональности текста — задача, заключающаяся в определении эмоциональной окраски (тональности) текста. Является бинарной классификацией; входными данными являются тексты, а выходными — группы «positive» и «negative». Применяется для анализа настроений пользователей, их отношений к чему-либо.
Предобработка текстов может быть различна — приведение к нижнему регистру, удаление служебных слов, удаление пунктуации, стемминг
(нахождение основной формы слова), лемматизирование (нахождение правильной словарной формы слова, т.е. леммы) и т.д. Однако любая предобработка может привести к некачественным результатам, например,
удаление пунктуации в случае «строить, нельзя сносить», или стемминг в случае «добрый — добро», или приведение к нижнему регистру в случае
«периметр — Периметр» (комплекс автоматического управления ответным ядерным ударом).
Текст, в отличие от изображения, в исходном виде не является последовательностью чисел, поэтому его нужно переводить в числовую последовательность. Таким образом, обработка данных для текстов отличается.
7
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
8
Скриншот 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].
Отличия во внешнем виде и некоторых дополнительных функциях.
9
Рисунок 1.4 — JupyterLab
Рисунок 1.5 — Visual Studio Code, Jupyter-Notebooks Extension
10