www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Основы машинного обучения. Часть 4. Обнаружение аномалий, системы рекомендаций и масштабирование

Дата публикации Mar 16, 2018

Фото Фарула Азми на Unsplash -https://unsplash.com/photos/vR-Nb0bncOY

В этой статье я вернусь к изученному материалу из удивительногокурс машинного обучения Андре Нг на Courseraи создать обзор о концепциях. Статья предназначена не для обучения, а для того, чтобы освежить в памяти основные идеи.

Все цитаты относятся к материалу из курса, если не указано иное.

Оглавление

Обнаружение аномалий

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

Использование алгоритма распределения Гаусса подразумевает, что пример x распространяется со средним значением Mu и дисперсией сигма в квадрате.

Формула для Му и Сигма в квадрате:

Формула для расчета вероятности:

Шаги для построения алгоритма

  1. Выберите функции х, которые могут указывать на аномальные примеры
  2. Рассчитать параметры Му и Сигма
  3. Вычислить вероятность р х
  4. Проверка на соответствие установленной границе вероятности Эпсилон

Разработать систему обнаружения аномалий

Когда алгоритм реализован, важно ввести метрику оценки действительного числа.

Как всегда, желательно разделить набор данных на набор для обучения, перекрестной проверки и тестирования (60–20–20).

Шаги для построения системы будут:

  1. Установите модель р (х) на тренировочный набор
  2. Предсказать y на основе вероятностей ваших наборов для перекрестной проверки и тестирования
  3. Оцените результат, используя таблицу непредвиденных обстоятельств (истинные положительные результаты, ложные положительные результаты,…), методы точности / отзыва или F1-показатель
  4. Изменить значения Epsilon (при необходимости)

Практические советы и отличия от контролируемой системы обучения

Система обнаружения аномалий должна использоваться, если

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

Если классификация может быть легко проведена, т. Е. Иметь большое количество положительных и отрицательных примеров, а будущие примеры будут похожими, целесообразно использовать контролируемый алгоритм обучения. (например, СПАМ, классификация рака)

Для анализа ошибок имеет смысл построить характеристики и посмотреть, ведут ли они себя по Гауссу. Если нет, можно добавить константы (например, log (x)), чтобы попытаться сделать их максимально гауссовыми.

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

Мультивариатное распределение Гаусса

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

Формула выглядит так:

В то время как:

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

Рекомендательные Системы

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

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

Учитывая рейтинги фильма, чтобы узнать параметр Theta для определенного пользователя, алгоритм оптимизации может выглядеть так:

  • параметры Theta обозначают вектор для определенного пользователя
  • функция х обозначает вектор для фильма
  • у обозначает рейтинг определенного пользователя по определенному фильму
  • n обозначает количество пользователей

Это основная функция стоимости квадрата ошибки с суммой регуляризации для разных пользователей (Theta j).

Использование градиентного спуска (умножение альфа-скорости обучения на частную производную по отношению к вашему параметру цели оптимизации) позволяет постепенно минимизировать результат. Обратите внимание, что тета 0 для k = 0 не должна быть упорядочена (как объяснено в линейной регрессии).

Функция обучения с совместной фильтрацией

Учитывая параметры тэты каждого пользователя для определенного фильма, вектор признаков фильма может быть оценен с помощью алгоритма оптимизации:

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

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

Чтобы использовать совместную фильтрацию одновременно (обновляя Theta и x одновременно), можно использовать следующую формулу:

Это приводит к следующей реализации градиентного спуска:

Чтобы реализовать эту формулу, вы должны

  1. Инициализируйте все тэты и хз с небольшими случайными значениями
  2. Минимизируйте функцию стоимости с предоставленной формулой градиентного спуска
  3. Прогнозировать рейтинг фильма пользователя с помощью параметра Theta с изученной функцией x.

Дальнейшее использование

После внедрения системы совместной фильтрации другим шагом может стать предложение связанных фильмов / продуктов.

Это легко сделать, так как мы уже вычислили вектор признаков x. Теперь, чтобы найти похожие фильмы / продукты, нам просто нужно найти фильмы с наименьшим расстоянием, например:

Обратите внимание, что если у вас есть пользователь или фильм / продукт без какой-либо оценки, вы должны выполнить среднюю нормализацию до реализации алгоритма обучения. Для этого сначала нужно вычесть среднее значение из матрицы результатов и повторно добавить при прогнозировании рейтинга. Но вы всегда должны спросить себя, имеет ли смысл рекомендовать что-то совершенно неопределенному подразделению в любом случае.

Масштабирующие системы машинного обучения

При наличии случая с очень большим количеством примеров (~ 100 млн.) Всегда спрашивайте себя, возможно ли уменьшить набор данных с сохранением результатов.

Один из способов - построить кривую обучения для диапазона значений m и убедиться, что алгоритм имеет высокую дисперсию, когда m мало. Когда алгоритм имеет высокий уклон, увеличение набора данных не помогает.

Стохастический градиентный спуск

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

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

Это позволяет улучшить параметры в каждом отдельном примере и, следовательно, занимает гораздо меньше времени, чем улучшение их во всех примерах одновременно. (Из-за стоимости, которая может не сходиться вообще - но оказывается достаточно близкой для большинства случаев практического использования).

Мини-пакет градиентного спуска

В качестве промежуточного способа прохождения всех примеров или только одного примера в каждой итерации градиентного спуска мини-пакет позволяет установить определенное количество b примеров на одну итерацию. Адаптированный цикл может выглядеть так:

Тест на сходимость

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

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

Если алгоритм не сходится, попробуйте медленно уменьшить скорость обучения Альфа.

Онлайн обучение

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

Сокращение карт и параллелизм данных

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

Трюки для использования в приложениях

Создайте конвейер для вашей проблемы

Например

  • обнаружить текст
  • Сегмент персонажей
  • классифицировать персонажей

Получение большего количества данных

  • попытайтесь создать дополнительные данные, добавив искажения к уже имеющемуся набору данных (искусственный синтез данных)
  • Попробуйте собрать / пометить данные самостоятельно
  • данные толпы

Анализ потолка

Проанализируйте, какая часть вашего конвейера стоит потратить время на улучшения, сравнив улучшения точности.


Это завершает четвертую часть. Какой невероятный курс! :)


Спасибо за чтение моей статьи! Не стесняйтесь оставлять любые отзывы!


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

Подключиться к:

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map