Основные выводы из специализации «Машинное обучение» на Coursera

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

Существует множество материалов, чтобы узнать все и что угодно по этой горячей теме. Но где их найти и какие выбрать? В эпоху, когда так много качественного контента, мы должны быть избирательными. Этот пост предлагает один замечательный ресурс: вводная специализация по машинному обучению из 4 курсов на Coursera, организованная Вашингтонским университетом. После огромного успеха курса машинного обучения Эндрю Нг в Стэнфорде эта специализация использует более прикладной подход к машинному обучению. Итак, без лишних слов, давайте копать!

Курс 1 — Основы машинного обучения: подход к изучению конкретного случая

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

  1. Прогнозирование цен на жилье (с использованием регрессии)
  2. Анализ настроений по отзывам пользователей (с использованием классификации)
  3. Группировка текстовых документов (с использованием кластеризации)
  4. Рекомендация продуктов на основе истории и контекста (с использованием рекомендательных систем)
  5. Обнаружение объектов на изображениях (с использованием глубокого обучения)

Курс анализирует и обсуждает каждую из этих проблем с точки зрения обучающих данных (т. е. выборки данных или истинности), функций (т. е. характеристик в данных), параметров (для точной настройки), алгоритма и оценки. Алгоритм определяет взаимосвязь между входными объектами и выходными метками. Обучение означает создание модели из примеров (функций и меток). Мы говорим: как только модель обучена, она используется для прогнозирования меток на неразмеченных примерах. Важной частью машинного обучения является определение того, какие функции коррелируют с меткой. Например, реальные модели прогнозирования стоимости жилья обычно основаны на сотнях функций.

Курс 2 — Регрессия

Модель регрессии прогнозирует непрерывные значения, такие как цены на жилье. Моделью может быть что угодно, например линия (линейная регрессия) или парабола (полиномиальная регрессия). Так как же нам узнать, хорошая ли у нас модель? Путем определения функции потерь. При обучении с учителем алгоритм машинного обучения строит модель, исследуя множество примеров и пытаясь найти модель, минимизирующую потери. Проигрыш — это наказание за плохой прогноз. Если прогноз модели совершенен, потери равны нулю. Цель обучения модели — найти набор параметров, называемых гиперпараметрами, которые в среднем имеют низкие потери по всему набору данных. Возможны многие функции потерь, наиболее известной из которых является квадрат или потеря L2.

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

Итак, что мы делаем здесь? Мы штрафуем сложность модели в дополнение к минимизации потерь при обучении: процесс, называемый регуляризацией. Один из распространенных методов называется регуляризацией L2 или гребневой регрессией, где сложность модели определяется как квадрат суммы весов признаков (вес говорит о том, насколько информативен признак), а гиперпараметр определяет, насколько сложность должна быть оштрафована. Если данные обучения и тестирования очень похожи, вам не нужна большая регуляризация. Если у вас недостаточно обучающих данных или обучающие и тестовые наборы не похожи, вам потребуется много регуляризации. Ваш гиперпараметр должен быть настроен с огромным количеством экспериментов.

Наряду с линейной и полиномиальной регрессией существуют две другие формы регрессии: логистическая регрессия (где прогнозируются вероятности от 0 до 1) и регрессия ядра (где веса признаков моделируются с использованием определенного распределения, такого как гауссово).

Курс 3 — Классификация

Классификация — это искусство присвоения категории или метки данным на основе функции оценки (или вероятности) данных. В задачах классификации метка для каждого примера должна быть либо 0 (отрицательно), либо 1 (положительно). Мы можем использовать логистическую регрессию в качестве основы для классификации, взяв наши выходные данные вероятности и применив к ним фиксированный порог. Например, мы можем решить пометить что-то как спам, если вероятность спама превышает 0,8. Это 0,8 — порог нашей классификации (или решения), а 1 — преобразованное бинарное предсказание или классификационная метка. Пороги зависят от проблемы и должны быть настроены.

Теперь, когда мы выбрали порог классификации, как мы собираемся оценивать качество этой модели? Одним из классических способов оценки эффективности классификации является использование точности: доли правильных прогнозов. Однако точность нарушается при наличии дисбаланса классов (т. е. значительного несоответствия между метками). Например, если спам возникает с вероятностью 90%, и мы говорим нашему классификатору предсказывать спам во всех случаях, точность будет 90%, что довольно много. Однако наша модель не имеет абсолютно никакой прогностической ценности. Таким образом, нам нужен более детальный способ рассмотрения прогнозов. Это делается с помощью точности («Какая доля положительных идентификаций была правильной?») и отзыва («Какая доля всех положительных идентификаций была идентифицирована правильно?»). Если мы хотим быть по-настоящему точными, мы должны увеличить порог, а если мы хотим повысить полноту воспоминаний, мы должны его снизить. Повышение точности снижает отзыв и наоборот. В общем, модель, которая превосходит другую модель как по точности, так и по полноте, вероятно, является лучшей моделью.

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

Классификаторы могут быть слабыми или сильными. Повышение — это метод, который объединяет слабые классификаторы для получения производительности сильного классификатора. Бустирование широко используется в промышленности. AdaBoost является одним из примеров, когда большинство голосов принимается за отдельные слабые классификаторы, чтобы получить наилучший или сильный прогноз. Это известно как ансамбль.

Курс 4 — Кластеризация и поиск

В машинном обучении мы часто группируем примеры в качестве первого шага к пониманию предмета (набора данных) в системе машинного обучения. Группировка неразмеченных примеров называется кластеризацией. Если примеры помечены, то кластеризация становится классификацией. Кластеризация и поиск — это так называемые методы обучения без учителя, которые широко используются в различных отраслях. Некоторые области применения включают:

  • сегментация рынка (например, поиск и ориентация на наиболее перспективный клиентский рынок)
  • анализ социальных сетей
  • группировка результатов поиска
  • медицинская визуализация (например, обнаружение групп пациентов со связанными заболеваниями)
  • сегментация изображения
  • обнаружение аномалий
  • электронная коммерция (например, поиск похожих книг на Amazon)
  • развлечения (например, поиск похожих фильмов на Netflix)

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

При кластеризации входными данными снова являются функции, связанные с точками данных. Результатом являются метки кластера. Идея состоит в том, чтобы обнаружить структурированное представление входного пространства. Доступно несколько алгоритмов кластеризации. Некоторыми конкретными примерами являются k-средние, которые делают жесткие назначения (каждая точка данных помещается в отдельный кластер), смесь гауссианов, которая делает вероятностные или мягкие назначения (каждая точка данных принадлежит кластеру с вероятностью p ), скрытое распределение Дирихле, которое выполняет смешанные назначения (каждая точка данных принадлежит разным кластерам с определенными вероятностями, суммирующими до 1) и иерархическую кластеризацию (деревья кластеров) для таксономий. В Google кластеризация используется для обобщения, сжатия данных и сохранения конфиденциальности в таких продуктах, как видео YouTube, приложения Play и музыкальные треки.

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

Короче

В этой специализации обсуждаются наиболее широко используемые и практичные алгоритмы. Он предназначен для полных новичков, хотя базовые знания линейной алгебры, вероятностей и исчисления были бы полезны. Каждый курс состоит из 6–7 недель лекций, каждая из которых сопровождается двумя-тремя викторинами, чтобы проверить ваше теоретическое понимание и применить его на практике. Вы получите практический опыт развертывания этих методов на наборах данных и даже сможете рассчитать или оценить некоторые из них вручную. Вы также узнаете об их ограничениях и сильных сторонах. И, наконец, вы узнаете об очень популярном фреймворке MapReduce от Google для масштабирования алгоритмов путем распараллеливания их вычислений. В настоящее время Google использует Tensorflow для крупномасштабного машинного обучения. Я рекомендую Ускоренный курс машинного обучения, чтобы узнать больше.