Пройдя курс Как Google делает машинное обучение (резюме в предыдущем сообщении), я начал курс Начало работы с машинным обучением от Google Cloud on Coursera. Я надеялся побить дедлайн, но просчитал глубину и сложность материала. В дополнение к обновлению расчетов мне пришлось поискать в нескольких блогах и обратиться к книге Практическое машинное обучение с Scikit-Learn и TensorFlow от Орелиен Жерон, чтобы получить прочное основание на концепциях.

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

1. Демистификация терминологии машинного обучения (ML)

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

Ниже приведены некоторые основные термины машинного обучения с описанием. Пуристы ML могут меня поправить :)

  • Алгоритм - набор правил для решения проблемы. Алгоритм не зависит от набора данных. Например, простая регрессия y = a + x * b (поймите, что это уравнение, но вы поняли идею)
  • Модель - результат процесса машинного обучения. Это относится к набору данных. Например. Сумма чаевых = 1 + 0,12 * сумма счета. Многие используют алгоритм и модель как взаимозаменяемые

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

  • Вес признака - коэффициент переменной. В ML вес функции определяется в процессе обучения, например 0,12 в приведенном выше уравнении
  • Член смещения - константа в уравнении, например 1 в приведенном выше уравнении
  • Гиперпараметр - это требует некоторого объяснения, поэтому он описан ниже отдельно.

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

  • Функция потерь - также известная как функция стоимости, это показатель ошибок, используемый для измерения производительности модели. например среднеквадратичная ошибка (RMSE) для линейной регрессии
  • Обучение - процесс применения алгоритма к существующему набору данных для создания модели. Например. В процессе обучения выводится уравнение Сумма чаевых = 1 + 0,12 * Сумма счета путем моделирования существующего набора данных с использованием регрессии.
  • Обобщение - свойство модели машинного обучения достоверно представлять текущий набор данных, чтобы можно было предсказать метки невидимых данных с минимальной ошибкой. Другими словами, модель является хорошим заменителем реальных данных, которых она раньше не видела.

2. Типы машинного обучения

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

Есть еще два типа: Semi-supervised и Reinforcement. Полу-контролируемое машинное обучение - это гибрид контролируемого и неконтролируемого обучения, которое в основном опирается на несколько помеченных наборов данных с использованием контролируемого и переходит к неконтролируемому на большом немаркированном наборе данных. Отличным примером является добавление к фотографиям имен, например Приложение "Камера" для iOS и Google Фото.

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

3. Оптимизация модели машинного обучения.

Цель ML - создать модель для данного набора данных, чтобы точно предсказать метку (зависимую переменную). Точность предсказания увеличивается, когда ошибка предсказания минимизирована. Если ML использует линейную регрессию с небольшим количеством переменных, существуют аналитические инструменты для определения лучших весов характеристик, которые минимизируют ошибку, которой в данном случае является RMSE.

Что, если у вас есть сотни или тысячи функций и большой набор данных? Аналитические вычисления становятся непрактичными. На помощь приходит градиентный спуск!

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

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

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

4. Параметр против гиперпараметра

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

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

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

Теперь атрибут ученика (т.е.модель), обучающегося вождению, является параметром или параметром модели, а атрибут инструктора (то есть алгоритмом оптимизации) - гиперпараметром. Для градиентного спуска скорость обучения (или размер шага) и размер пакета являются гиперпараметрами.

Ниже приведено простое параллельное сравнение и объяснение параметра и гиперпараметра.

5. Рабочий процесс машинного обучения.

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

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

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

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

6. Три блока данных.

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

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

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

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

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

7. Отбор проб на воспроизводимость

Машинное обучение - это экспериментирование с моделями и данными для автоматизации прогнозирования в любом масштабе.

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

Повторяемость также позволяет сотрудничать, позволяя членам команды проводить эксперимент и получать те же результаты.

Чтобы повторить эксперименты и получить те же результаты, вам понадобится повторяемая выборка наборов данных.

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

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

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