Изменения

Перейти к: навигация, поиск

Автоматическое машинное обучение

8616 байт добавлено, 16:36, 13 января 2021
Добавлены более современные подходы.
<b> Автоматическое машинное обучение </b>(англ. Automated Machine Learning, AutoML) {{---}} процесс создания динамической комбинации различных методов для формирования простой в использовании сквозной конвейерной системы машинного обучения. AutoML использует хорошо зарекомендовавшие себя методы, которые мы классифицируем в следующие категории на основе конвеера машинного обучения (показано на Рис.1): подготовка данных, конструирование признаков, генерация моделей и их оценка.
[[Файл:automl_1automl_1_1.png|1000px|thumb|center|Рисунок 1: Конвеер автоматического машинного обучения]]
<br>
Подготовка данных состоит из двух этапов: сбор данных и их предварительная обработка.<br>
== Подготовка данных ==
Первым шагом в конвеере конвейере машинного обучения идет этап подготовки данных. Как правило, во Во многих задачах, например, распознавание в задаче распознавания образов в медицине, бывает трудно получить достаточно данных, или <i>качественно размеченных</i> данных. Мощная система AutoML должна уметь справляться с этой проблемой. Для исследования этой задачи процесс подготовки данных разделяется на два подэтапа: сбор данных и их предобработка.
=== Сбор данных ===
Углубленное изучение ML привело к консенсусу, что качественные данные общедоступны. В результате появилось множество открытых наборов данных. Однако, с помощью вышеуказанных подходов, как правило, очень трудно найти надлежащий набор данных для специализированных задач, таких как задачи, связанные с медициной. Для решения этой задачи предлагается два типа методов: синтез данных и поиск данных.
== Генерация модели ==
После конструирования признаков нам нужно сгенерировать модель и задать ее гиперпараметры. Как показано на Рис. 1, генерация модели состоит из двух этапов: [[Модель алгоритма и её выбор | выбора модели]] и [[Настройка гиперпараметров | оптимизации гиперпараметров]]. <br><br>
Существует множество способов выбора модели. Ниже приведены некоторые из них:
=== TPOT (Tree-base Pipeline Optimization Tool) ===
В основе [[Модель алгоритма и её выбор#Автоматизированный выбор модели в библиотеке Tree-base Pipeline Optimization Tool (TPOT) для Python. | TPOT]] лежит эволюционный алгоритм поиска для нахождения лучшей модели и оновременной одновременной оптимизации её гиперпараметров. Представляет собой надстройку над scikit-learn<ref>[https://scikit-learn.org/stable/ Библиотека scikit-learn]</ref>, при этом в данную библиотеку также включены собственные алгоритмы регрессии и классификации. В мае 2020 года вышла версия, в которую был добавлен модуль для работы с нейронными сетями на основе PyTorch<ref>[https://pytorch.org/ Библиотека PyTorch]</ref>.Время работы TPOT сильно зависит от размера входных данных. Не поддерживает обработку естественного языка и категориальных данных.
=== Auto-WEKA ===
[[Модель алгоритма и её выбор#Автоматизированный выбор модели в библиотеке auto-WEKA для Java | Auto-WEKA]] позволяет нам одновременно выбирать лучшую модель и настраивать ее гиперпараметры. Время работы Для этого процесса используется алгоритм [[Настройка гиперпараметров#Последовательная конфигурация алгоритма достаточно долгое, потому что нам нужно перебрать все возможные алгоритмы на основе модели | SMAC]]. Из-за перебора всех возможных моделей и для каждого из них настроить его гиперпараметрыих гиперпараметров алгоритм работает довольно долго.
=== Auto-sklearn ===
Так же, как и в Auto-WEKA, в В [[Модель алгоритма и её выбор#Автоматизированный выбор модели в библиотеке auto-sklearn для Python | Auto-sklearn]] мы можем автоматически выбрать лучшую модель реализован автоматический выбор лучшего алгоритма из представленных в scikit-learn, а также настройка его гиперпараметров. Для улучшения обобщающей способности используются [[Уменьшение размерности#Другие методы|ансамбли]] из моделей, которые были получены в ходе оптимизации. В Auto-sklearn применяются идеи [[Мета-обучение|мета-обучения]], которые позволяют выделять похожие датасеты и использовать знания о них. === Auto-sklearn 2.0 === Auto-sklearn 2.0 является улучшенной версией библиотеки auto-sklearn. В обновленном варианте пакета каждый pipeline способен совершать раннюю остановку и сохранять результаты промежуточных вычислений. Это изменение кардинально улучшило производительность и качество работы.Следующим нововведением стало ограничение множества алгоритмов, в котором производится перебор, до моделей, которые можно обучать итеративно, в частности, методы, основанные на деревьях решений. Изменился подход к мета-обучению, предыдущая версия библиотеки использовала мета-признаки для определения схожих между собой датасетов. В Auto-sklearn 2.0 реализован другой подход, было создано единое портфолио лучших решений для различных датасетов. Был добавлен автоматический выбор стратегии подбора наилучшей модели. === Auto-Keras ===Открытая библиотека для автоматизированного подбора архитектуры модели, которая использует в своей основе scikit-learn, PyTorch и Keras<ref>[https://keras.io/ Библиотека Keras]</ref>. Библиотека параллельно использует CPU и GPU, а также адаптируется под лимиты памяти, за счёт чего обладает высокой производительностью. Auto-Keras показывает высокие результаты близкие к [[Автоматическое машинное обучение#Google Cloud AutoML | Google AutoML]], однако в отличии от продукта Google является бесплатной.Идея библиотеки в том, чтобы исследовать пространство поиска архитектур с помощью алгоритма байесовской оптимизации. Алгоритм поиска нейросетевой архитектуры состоит из техтрех повторяющихся шагов: обновление, генерация и наблюдение. Обновлением называется обучение гауссовского процесса на имеющихся данных. На этапе генерации создаётся новая архитектура через оптимизацию функции исследования. В качестве наблюдения записываются результаты новой архитектуры. === MLBox ===Мощная библиотека для автоматического машинного обучения, что поддерживаютсяразработанная для Python. Реализует быстрое чтение, распределенную предобработку данных, выбор признаков, оптимизацию гиперпараметров в многомерном пространстве, современные предсказательные модели классификации и регрессии. === TransmogrifAI ===AutoML библиотека написанная на SCALA работающая поверх Apache Spark. Она разработана с упором на повышение производительности разработки за счёт проверки типов во время компиляции, их переиспользования и сразу настроить ее гиперпараметрымодульности. Обеспечивает быстрое обучение моделей с минимальной ручной настройкой.
== Оценка модели ==
* действительная задержка
== AutoML сервисы == === Google Cloud AutoML ===Сервис от компании Google, который позволяет создавать модели машинного обучения, использующий запатентованную технологию Google Research, чтобы помочь вашим пользовательским моделям достичь наиболее высокой производительности и точных предсказаний. Используется простой графический пользовательский интерфейс Cloud AutoML для обучения, оценки, и оптимизации и деплоя моделей на основе ваших пользовательских данных. Также есть возможность генерировать высококачественные данные для интересующих вас задач. ==== Инструменты Cloud AutoML ====
* компьютерное зрение {{---}} [https://cloud.google.com/vision/overview/docs#automl-vision AutoML Vision], [https://cloud.google.com/video-intelligence/automl/docs AutoML Video Intelligence]
* машинный перевод {{---}} [https://cloud.google.com/natural-language/automl/docs AutoML Natural Language], [https://cloud.google.com/translate/automl/docs AutoML Translation]
* структурирование данных {{---}} [https://cloud.google.com/automl-tables/docs AutoML Tables]
 
=== IBM Watson Machine Learning ===
Сервис IBM Cloud с широким спектром услуг. Предоставляет обширные возможности для работы с естественным языком (например преобразование текста в речь и наоборот, динамический перевод документов, классификацию текста, анализ эмоциональной составляющей текста), а также инструменты для распознавания изображений. Поддерживает ограниченный набор типов библиотек, таких как scikit-learn и Keras.
 
=== MLJAR ===
Сервис для автоматизации машинного обучения предоставляющий возможности по предобработке данных, обучению алгоритма, и выбору гиперпараметров без использования кода. Предобработка реализована в виде заполнения недостающих данных, преобразовании типов признаков, а также [https://ru.wikipedia.org/wiki/%D0%A3%D0%BD%D0%B8%D1%82%D0%B0%D1%80%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4 one-hot encoding]. В качестве алгоритмов предлагаются Xgboost, LightGBM, Regularized Greedy Forest, cлучайный лес, алгоритм k-ближайших соседей, логистическая регрессия, нейронные сети и другие. Обученную модель можно использовать как удаленно на сервере, так и локально на своей машине.
 
=== AzureML ===
Облачный сервис компании Microsoft, который предоставляет многочисленные возможности для упрощения разработки и развертывания проектов. В AzureML реализованы пользовательские интерфейсы конструктора машинного обучения и автоматического машинного обучения. В облаке вы можете хранить свои датасеты, модели, конвейеры, базы данных и т.д. Сервис поддерживает следующие среды разработки: VSCode, Pycharm, Visual Studio, Jupyter Notebook, а также два языка программирования: R и Python вместе с основными библиотеками и фреймворками.
== См. также ==
* [https://towardsdatascience.com/tpot-automated-machine-learning-in-python-4c063b3e5de9 TPOT Automated Machine Learning in Python]
* [https://www.automl.org/wp-content/uploads/2018/12/auto-sklearn-1.pdf Auto-sklearn: Efficient and Robust Automated Machine Learning]
* [https://www.automl.org/auto-sklearn-2-0-the-next-generation/ Auto-sklearn 2.0: The next generation]
 
== Примечания ==
[[Категория: Машинное обучение]]
[[Категория: Автоматическое машинное обучение]]
3
правки

Навигация