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

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

Когда мы не пишем правила для решения, мы, по определению, не можем вносить ошибки в это решение.

Проблема

Излишне говорить, что у этого колдовства есть своя масса недостатков. Без обладания более темными «народными секретами» проекты машинного обучения заканчиваются следующими сценариями:

  1. На это уходит больше времени, чем предполагалось.
  2. Получение неоптимальных результатов

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

Секреты, позволяющие избежать вышеперечисленных проблем

Обучение = Представление + Оценка + Оптимизация

Три компонента обучения тому, как решать проблему:

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

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

Главное - обобщение

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

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

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

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

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

Одних данных недостаточно

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

К счастью, предположения вроде:

  1. Подобные данные имеют похожие классы
  2. Ограниченная сложность
  3. Ограниченные зависимости

достаточно для большинства общих задач. Таким образом, алгоритмы машинного обучения оказались успешными. Модели машинного обучения выполняют индукцию, противоположную дедукции, где они используют небольшой объем вводимых данных для получения большего количества выходных данных. Хотя индукция намного мощнее дедукции, поскольку они требуют мало информации, они все же требуют некоторой информации. Эта цитата Педро Домингоса точно подводит итог.

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

Разработка функций - ключ к успеху

Поиск функций, которые:

  1. Независимы друг от друга.
  2. Хорошо соотносятся с выходом

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

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

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

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

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

Больше данных лучше более умного алгоритма

Есть два способа повысить точность обученной модели машинного обучения:

  1. Используйте более умный алгоритм обучения
  2. Получите больше данных для обучения модели

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

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

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

  1. Различные алгоритмы обучения
  2. Различные источники данных
  3. Различные проблемы с обучением

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

Заключение

Как и с любым другим большим навыком, ML имеет свою долю «мудрости». Обладатель такой мудрости отделяет неоптимальную модель машинного обучения от той, которая отлично работает с проблемой!