Редактирование: Автоматическое машинное обучение

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

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 9: Строка 9:
  
 
== Подготовка данных ==
 
== Подготовка данных ==
Первым шагом в конвейере машинного обучения идет этап подготовки данных. Во многих задачах, например, в задаче распознавания образов в медицине, бывает трудно получить достаточно данных, или <i>качественно размеченных</i> данных. Мощная система AutoML должна уметь справляться с этой проблемой. Для исследования этой задачи процесс подготовки данных разделяется на два подэтапа: сбор данных и их предобработка.
+
Первым шагом в конвеере машинного обучения идет этап подготовки данных. Во многих задачах, например, в задаче распознавания образов в медицине, бывает трудно получить достаточно данных, или <i>качественно размеченных</i> данных. Мощная система AutoML должна уметь справляться с этой проблемой. Для исследования этой задачи процесс подготовки данных разделяется на два подэтапа: сбор данных и их предобработка.
 
=== Сбор данных ===
 
=== Сбор данных ===
 
Углубленное изучение ML привело к консенсусу, что качественные данные общедоступны. В результате появилось множество открытых наборов данных. Однако, с помощью вышеуказанных подходов, как правило, очень трудно найти надлежащий набор данных для специализированных задач, таких как задачи, связанные с медициной. Для решения этой задачи предлагается два типа методов: синтез данных и поиск данных.
 
Углубленное изучение ML привело к консенсусу, что качественные данные общедоступны. В результате появилось множество открытых наборов данных. Однако, с помощью вышеуказанных подходов, как правило, очень трудно найти надлежащий набор данных для специализированных задач, таких как задачи, связанные с медициной. Для решения этой задачи предлагается два типа методов: синтез данных и поиск данных.
Строка 41: Строка 41:
  
 
== Генерация модели ==
 
== Генерация модели ==
После конструирования признаков нам нужно сгенерировать модель и задать ее гиперпараметры. Как показано на Рис. 1, генерация модели состоит из двух этапов: [[Модель алгоритма и её выбор | выбора модели]] и [[Настройка гиперпараметров | оптимизации гиперпараметров]].
+
После конструирования признаков нам нужно сгенерировать модель и задать ее гиперпараметры. Как показано на Рис. 1, генерация модели состоит из двух этапов: [[Модель алгоритма и её выбор | выбора модели]] и [[Настройка гиперпараметров | оптимизации гиперпараметров]]. <br><br>
 
Существует множество способов выбора модели. Ниже приведены некоторые из них:
 
Существует множество способов выбора модели. Ниже приведены некоторые из них:
 
=== TPOT (Tree-base Pipeline Optimization Tool) ===
 
=== 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>.
+
В основе [[Модель алгоритма и её выбор#Автоматизированный выбор модели в библиотеке Tree-base Pipeline Optimization Tool (TPOT) для Python. | TPOT]] лежит эволюционный алгоритм поиска для нахождения лучшей модели и оновременной оптимизации её гиперпараметров. Время работы TPOT сильно зависит от размера входных данных.
Время работы TPOT сильно зависит от размера входных данных. Не поддерживает обработку естественного языка и категориальных данных.
 
  
 
=== Auto-WEKA ===
 
=== Auto-WEKA ===
[[Модель алгоритма и её выбор#Автоматизированный выбор модели в библиотеке auto-WEKA для Java | Auto-WEKA]] позволяет одновременно выбирать лучшую модель и настраивать ее гиперпараметры. Для этого процесса используется алгоритм [[Настройка гиперпараметров#Последовательная конфигурация алгоритма на основе модели | SMAC]]. Из-за перебора всех возможных моделей и их гиперпараметров алгоритм работает довольно долго.
+
[[Модель алгоритма и её выбор#Автоматизированный выбор модели в библиотеке auto-WEKA для Java | Auto-WEKA]] позволяет нам одновременно выбирать лучшую модель и настраивать ее гиперпараметры. Время работы алгоритма достаточно долгое, потому что нам нужно перебрать все возможные алгоритмы и для каждого из них настроить его гиперпараметры.
  
 
=== Auto-sklearn ===
 
=== Auto-sklearn ===
В [[Модель алгоритма и её выбор#Автоматизированный выбор модели в библиотеке auto-sklearn для Python | Auto-sklearn]] реализован автоматический выбор лучшего алгоритма из представленных в scikit-learn, а также настройка его гиперпараметров. Для улучшения обобщающей способности используются [[Уменьшение размерности#Другие методы|ансамбли]] из моделей, которые были получены в ходе оптимизации. В Auto-sklearn применяются идеи [[Мета-обучение|мета-обучения]], которые позволяют выделять похожие датасеты и использовать знания о них.
+
Так же, как и в Auto-WEKA, в [[Модель алгоритма и её выбор#Автоматизированный выбор модели в библиотеке auto-sklearn для Python | 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. Она разработана с упором на повышение производительности разработки за счёт проверки типов во время компиляции, их переиспользования и модульности. Обеспечивает быстрое обучение моделей с минимальной ручной настройкой.
 
  
 
== Оценка модели ==
 
== Оценка модели ==
Строка 85: Строка 70:
 
* действительная задержка
 
* действительная задержка
  
== AutoML сервисы ==
+
== Google Cloud AutoML ==
 
 
=== Google Cloud AutoML ===
 
 
Сервис от компании Google, который позволяет создавать модели машинного обучения, использующий запатентованную технологию Google Research, чтобы помочь пользовательским моделям достичь наиболее высокой производительности и точных предсказаний. Используется простой графический пользовательский интерфейс Cloud AutoML для обучения, оценки и оптимизации моделей на основе пользовательских данных. Также есть возможность генерировать высококачественные данные для интересующих задач.
 
Сервис от компании Google, который позволяет создавать модели машинного обучения, использующий запатентованную технологию Google Research, чтобы помочь пользовательским моделям достичь наиболее высокой производительности и точных предсказаний. Используется простой графический пользовательский интерфейс Cloud AutoML для обучения, оценки и оптимизации моделей на основе пользовательских данных. Также есть возможность генерировать высококачественные данные для интересующих задач.
 
+
=== Инструменты 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/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/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]
 
* структурирование данных {{---}} [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 вместе с основными библиотеками и фреймворками.
 
  
 
== См. также ==
 
== См. также ==
Строка 116: Строка 89:
 
* [https://towardsdatascience.com/tpot-automated-machine-learning-in-python-4c063b3e5de9 TPOT Automated Machine Learning in 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/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]
 
 
== Примечания ==
 
  
 
[[Категория: Машинное обучение]]
 
[[Категория: Машинное обучение]]
 
[[Категория: Автоматическое машинное обучение]]
 
[[Категория: Автоматическое машинное обучение]]

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблон, используемый на этой странице: