Недавно я прошел курс EdX, спонсируемый Microsoft — Data Science and Machine Learning Essentials. Он касался основ машинного обучения и создания веб-служб машинного обучения с использованием Azure ML. Я работаю в области НЛП/МО уже довольно давно. Я прошел несколько курсов у Эндрю Нг, Ясера С. Абу-Мостафы и Кристофера Мэннинга, когда начал работать в поле.

Меня больше всего интересовало, как Azure ML может помочь мне создать масштабируемую веб-службу. Я попытался уделить дополнительное внимание Лабораториям Azure, чтобы понять, что можно делать/не делать на платформе. Кратко об Azure ML;

Что такое Машинное обучение Azure?

Машинное обучение Azure — это полностью управляемая служба, которую можно использовать для создания, тестирования, эксплуатации и управления решениями прогнозной аналитики в облаке. Используя только браузер, вы можете войти в систему, загрузить данные и сразу же начать эксперименты по машинному обучению. Прогнозное моделирование с помощью перетаскивания, большой набор модулей и библиотека начальных шаблонов упрощают и ускоряют общие задачи машинного обучения. Дополнительные сведения см. в разделе Обзор службы машинного обучения Azure. Введение в машинное обучение, охватывающее ключевые термины и понятия, см. в разделе Введение в машинное обучение Azure.

Что такое Студия машинного обучения?

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

Дополнительные сведения о Студии машинного обучения см. в разделе Что такое Студия машинного обучения.

Что такое служба Machine Learning API?

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

Дополнительные сведения см. в разделе Подключение к веб-службе машинного обучения.

Концепции машинного обучения были на начальном уровне и хорошо объяснялись инструкторами. Основные моменты обучения из курса были следующими;

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

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

3. Когда объекты имеют нелинейные отношения с меткой, вы можете создавать новые объекты, преобразовывая исходные объекты в полиномы, логарифмы или экспоненты, чтобы попытаться найти более линейные отношения, которые будут лучше работать в линейной модели.

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

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

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

7. Остатки (ошибки) хорошей регрессионной модели должны демонстрировать случайное распределение без особой структуры в отношении значений метки или признаков. Случайность и отсутствие структуры указывают на то, что модель хорошо соответствует данным и что информация в функциях была использована моделью.

8. Модель, которая хорошо обобщает, должна демонстрировать согласованные показатели производительности (точность, достоверность, полнота, F1) во всех сгибах при перекрестной проверке. Непротиворечивость указывает на то, что модель хорошо обобщается, поскольку производительность нечувствительна к набору тестовых данных в каждой из складок. Одним из показателей согласованности показателей производительности по сгибам является то, что стандартное отклонение значительно меньше, чем среднее значение для каждого показателя. Наконец, средние показатели производительности должны иметь приемлемые значения.

9. Функции для двухклассовой классификации должны демонстрировать разделение значений или категорий для двух категорий меток. Разделение функций позволяет модели разделять категории меток. Эти функции должны быть сохранены в наборе данных. Этикетки, демонстрирующие плохое разделение значений или категорий для двух категорий этикетки, вряд ли помогут в классификации. Эти функции следует удалить из набора данных, поскольку они могут только добавить шум или привести к плохому обобщению модели.

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

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

12. Чтобы разделить данные для рекомендаций, используйте режим разделения Recommender Split модуля Split. Это равномерно распределяет пары «пользователь-элемент» в обучающий и тестовый наборы.

13. При использовании режима «Рекомендация по товарам» в модели «Рекомендация по оценке» отображается показатель NDCG для оцениваемой модели, где 1 соответствует идеальной модели.

14. Модуль Project Columns позволяет исключить ненужные столбцы. В этом случае пользователь предоставит все столбцы, необходимые для ввода веб-службы. Им требуется только оцененное или предсказанное значение в качестве вывода. Размещение модуля «Столбцы проекта» между модулем «Оценка» и модулем вывода веб-службы позволяет предоставить только один необходимый столбец в качестве ответа на запрос службы.

15. Чтобы получить доступ к опубликованной веб-службе, клиентское приложение должно указать URL-адрес конечной точки и ключ безопасного доступа для веб-службы.

16. Меньше отзыва — больше ложных срабатываний (FN), меньше точности — больше ложных срабатываний (FP)

17. Сначала следует обработать выбросы, иначе экстремальные значения в столбце повлияют на масштабирование числовых значений.

18. Удаление строк, содержащих выброс, интерполяция или импутация нового значения для замены выброса или замена фиксированного значения — это варианты обработки выбросов.

19. Отсутствие значений может привести к ошибкам в расчетах некоторых моделей машинного обучения.

20. Масштабирование функций помогает предотвратить доминирование числовых функций с большими значениями при обучении модели машинного обучения.

21. Azure ML включает модули для сценариев R, Python и SQL.

ОКОНЧАТЕЛЬНЫЙ ВЕРДИКТ

Чрезвычайно полезно для новичков в машинном обучении, объясняет основы в ясной и краткой форме. Azure ML имеет множество функций, связанных с очисткой данных, интеграцией с Python/R/SQL и созданием веб-сервиса из модели. Самое приятное — это его способность выполнять пользовательские скрипты Python, которые позволяют мне добавлять/создавать пользовательские функции. Пример бинарной классификации для анализа настроений находится здесь. Это критический элемент для разработки функций — молодцы, Microsoft!

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

Но как обстоят дела с AWS ML по сравнению с Azure ML? Теперь это входит в мой контрольный список дел!