Машинное обучение — наука об алгоритмах, которые сами настраиваются на данных. Используется машинное обучение в основном в задачах прогнозирования, когда нужно по входной информации — признакам — предсказать некоторую выходную величину. Если выходная величина вещественная, то говорят о задаче регрессии, а если принимает конечное число дискретных значений — то о задаче классификации. Обзоры методов машинного обучения можно найти, например, в [1–3]. Преимущество машинного обучения заключается в том, что прогнозирующую функцию не обязательно задавать в явном виде, а достаточно определить лишь ее общий параметризованный вид, автоматически настроив параметры по обучающей выборке — конечному набору пар <входное значение — выходное значение>. Например, в задаче автоматического сопоставления словам текста их частей речи можно в явном виде задать правила, а можно применить методы машинного обучения к тексту с уже размеченными частями речи, чтобы определить наилучшие правила автоматически, а после этого применять их к новым текстам.

Согласно методологии CrispDM [4], внедрение методов машинного обучения включает в себя постановку задачи, изучение данных и их подготовку, моделирование (построение прогнозирующей модели и подбор ее параметров), оценку полученной модели, внедрение и поддержку. Часто с машинным обучением связывают завышенные ожидания: считается, что нужно выбрать самый сложный или модный алгоритм, предоставить ему побольше данных для обучения — и успех придет сам собой. Однако следует помнить, что применение машинного обучения подразумевает выполнение определенной последовательности действий и успешность полученной модели зависит не только от выбора алгоритма обучения, но и от правильного выполнения каждого этапа этой последовательности.

Постановка задачи

На этапе принятия решения о применении алгоритмов машинного обучения требуется соотнести затраты на разработку его методов с практическим выигрышем. Применение машинного обучения нецелесообразно, например, при разметке небольшой выборки, состоящей из нескольких сотен объектов, по простым и заранее известным правилам или в случае, когда имеющиеся данные либо слабо связаны с предсказываемой величиной, либо обладают слабой достоверностью («Garbage In, Garbage Out»). Для предотвращения подобных ситуаций необходимо ответить на вопрос: а смог бы эксперт в рассматриваемой предметной области уточнить свой прогноз по имеющимся данным? Если ответ отрицательный, то необходимо направить усилия на сбор более подходящих данных.

Машинное обучения оправданно в случаях, когда:

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

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

Подготовка данных

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

Результаты большинства алгоритмов машинного обучения (например, метод опорных векторов, метод ближайших соседей, K-средних [1, 2]) зависят от масштаба признаков, и если требуется гарантировать равный вклад признаков в прогноз, то их необходимо нормализовать, вычитая среднее и разделив на стандартное отклонение. В противном случае изменения в признаках, имеющих небольшой разброс, могут остаться незамеченными в контексте изменений признаков с широким разбросом принимаемых значений. Для признаков, имеющих сильно неравномерное распределение, может потребоваться нелинейное монотонное преобразование. Например, при анализе текстов количество словоупотреблений чаще всего равно нулю или небольшой величине, но для некоторых документов определенные слова могут встречаться очень часто. Чтобы сгладить неравномерное распределение числа слов, можно рассматривать логарифм от первоначальной величины, который уменьшает слишком большие значения признака. Большинство методов не работают с дискретными признаками напрямую — их необходимо переводить в бинарные, используя так называемое one-hot- (прямое) или dummy-кодирование (фиктивное) [5].

Для алгоритмов, не содержащих встроенной обработки пропущенных значений отдельных признаков (таких как метод наивного Байеса или деревья решений), необходимо продумать, как заполнить пропуски в данных. Сделать это можно, заменив пропуски средними значениями соответствующих признаков (в случае дискретного признака его пропуск можно заменить чаще встречающимся значением — «модой»). Более полный вариант решения заключается в создании дополнительного признака, который является индикатором того, что значение первоначального признака изначально не было доступно, а было заполнено искусственно. Также заполнять пропущенные значения можно не безусловным средним (для дискретных — модой), а используя более сложную прогнозную модель, учитывающую контекст из других признаков, — например, используя условное среднее (соответственно, условную моду).

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

Выбор метода

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

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

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

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

Доработка модели

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

 

Рис. 1. Частота ошибок метода опорных векторов в зависимости от степени регуляризации
Рис. 1. Частота ошибок метода опорных векторов в зависимости от степени регуляризации

 

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

Начинать усложнение надо не с алгоритма, а с добавления признаков, имеющих физическую интерпретацию и важных для прогнозирования целевой величины, — их обычно формулируют эксперты предметной области. Поскольку часто подобные признаки представляют собой нелинейные преобразования первоначальных данных, то сложные алгоритмы не способны их воссоздать самостоятельно. Вместе с тем, поскольку эти признаки обладают характерным физическим смыслом, их учет в простых моделях нередко позволяет такие модели сделать более точными, чем сложные модели, но не учитывающие этих признаков. Например, рассмотрим задачу кредитного скоринга, в которой нужно по предыдущим выплатам должника оценить вероятность погашения им долга. Помимо стандартных признаков (величины текущей задолженности и последней выплаты по долгу), большую роль здесь играют такие признаки, как отношение последней выплаты к долгу, длительность до последней состоявшейся выплаты, максимальный период времени просроченной задолженности, отношение максимальной выплаты к размеру долга и т. д. В задаче классификации документов значение имеет не только частота встречаемости каждого термина, но и то, является ли этот термин общеупотребительным или же имеет узкую сферу применимости. Оказывается, что большей прогнозной силой обладает не частота термина в документе, а отношение частоты к степени встречаемости термина в коллекции документов. Редко встречающиеся термины за счет такой нормировки получают большой мультипликатор, позволяющий алгоритмам машинного обучения больше внимания уделять таким редко встречающимся словам, что приводит к известной величине TF-IDF (Term Frequency, Inverse Document Frequency — статистическая мера оценки важности слова в документе). В пространственных задачах прогнозирования, таких как прогнозирование типа лесного покрова для различных точек на карте по геологическим характеристикам местности, большое значение имеют следующие признаки: среднее расстояние до трех ближайших объектов обучающей выборки, принадлежность всех ближайших объектов одному классу, положение прогнозируемой точки относительно треугольника, образованного этими ближайшими объектами, размер этого треугольника и т. д. Достаточно сложные модели теоретически могут самостоятельно обнаружить какие-то из этих признаков, однако это скорее удача, чем закономерность, поскольку сложным методам машинного обучения для самостоятельного подбора признаков требуется вести перебор по широкому классу нелинейных преобразований, поэтому, скорее всего, они найдут какое-то неоптимальное преобразование и сойдутся к локальному оптимуму, переобучившись на данных. Гораздо эффективнее будет направлять поиск подобных методов на класс признаков, имеющих физический смысл, ограничивая область перебора вариантов или задавая начальные условия алгоритма, близко описывающие разумный вариант его работы.

Композиция моделей

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

 

Рис. 2. Пример исправления закономерности с помощью ансамбля моделей
Рис. 2. Пример исправления закономерности с помощью ансамбля моделей

 

Есть три причины, по которым отдельные модели не могут воспроизвести истинную закономерность в данных.

  1. Каждый отдельный алгоритм накладывает определенную структуру на данные, которую он и пытается воспроизвести при последующем прогнозировании, однако реальные данные богаче, а их структура сложнее. Композиция же моделей позволяет описать более широкий класс моделируемых закономерностей.
  2. В силу ограниченности обучающей выборки нельзя достоверно сказать, с помощью какой именно модели была получена эта выборка, — можно лишь говорить о вероятности того, что данные были сгенерированы той или иной моделью. Композиция алгоритмов позволяет уменьшить риск неправильного выбора модели за счет усреднения по разным допустимым вариантам выбора.
  3. Сложные модели, как правило, имеют критерии оптимизации, которые представимы невыпуклыми функциями, допускающими много локальных оптимумов. Исходные условия оптимизации могут сильно различаться в зависимости от того, какие признаки были выбраны, какие объекты попали в обучающую выборку, с какой начальной инициализацией параметров запускался метод оптимизации. В зависимости от разных исходных условий оптимизация может свестись к одному из возможных локальных оптимумов. Если критерии качества близки в разных оптимумах, то заранее нельзя сказать, какой из локальных оптимумов лучше. Композиция алгоритмов позволяет в этом случае уменьшить риск выбора неправильного локального оптимума за счет усреднения по разным вариантам выбора.

Ограничение данных

Наращивая сложность модели, рано или поздно можно подойти к моменту, когда ограничением для точности модели станет не ее выразительная сила, а размер обучающей выборки. Чтобы понять, достаточно ли данных для настройки модели, нужно построить график точности прогнозирования в зависимости от объема обучающей выборки. В ситуации, когда точность сильно растет с ростом обучающей выборки, требуются новые данные для модели, а когда точность меняется незначительно, то ее можно улучшить за счет дальнейшего усложнения модели. На рис. 3 показана зависимость точности прогнозирования от объема обучающей выборки. При объеме до 1500 наблюдений преобладает первая ситуация (данных недостаточно), а после — вторая (данных достаточно, и точность меняется незначительно).

 

Рис. 3. Зависимость частоты ошибок прогнозирования от размера обучающей выборки
Рис. 3. Зависимость частоты ошибок прогнозирования от размера обучающей выборки

 

Пределы машинного обучения

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

Критерий качества

При выборе оптимальных параметров метода, а также при отборе признаков и самой модели данных требуется заранее задать формальный критерий качества, по которому будет производиться оптимизация. Например, это может быть средний модуль ошибки прогнозирования или вероятность неправильной классификации. Чем ближе выбранный критерий отражает реальные потери или выигрыш, тем лучше, поскольку тем выше вероятность того, что тщательно настроенная модель окажется полезной на практике. Естественно, измерять среднее несоответствие между прогнозом и фактическим значением нужно не на обучающей выборке, а на внешних данных, не использованных для настройки прогнозирующего метода, иначе модель может «переобучиться» и демонстрировать оптимистично завышенную точность. Как правило, для оценки прогнозов модели используется кросс-валидация, когда обучающая выборка делится на K равных частей и каждая часть прогнозируется моделью, настроенной по K-1 остальным частям. Итоговое качество прогноза оценивается как среднее качество прогнозирования на каждой части обучающей выборки. Однако при применении кросс-валидации следует помнить о трех ее особенностях.

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

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

Внедрение и поддержка

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

***

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

Литература

  1. Жианчанг Мао, Энил Джейн. Введение в искусственные нейронные сети // Открытые системы.СУБД. — 1997. — № 4. — С. 16–24. URL: http://www.osp.ru/os/1997/04/179189 (дата обращения: 18.03.2016).
  2. Top 10 Data Mining Algorithms, Explained. Raymond Li. KDnuggets. 2015. URL: http://www.kdnuggets.com/2015/05/top-10-data-mining-algorithms-explained.html (дата обращения: 18.03.2016).
  3. Top 10 algorithms in data mining. Xindong Wu et. al. // Knowledge Information Systems. — 2008. Vol. 14. — P. 1–37. URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.144.5575&rep=rep1&type=pdf (дата обращения: 18.03.2016).
  4. CRISP-DM: Towards a standard process model for data mining. Proceedings of the Fourth International Conference on the Practical Application of Knowledge Discovery and Data Mining. — Rüdiger Wirth. 2000. — P. 29–39. URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.198.5133&rep=rep1&type=pdf (дата обращения: 18.03.2016).
  5. Documentation to scikit-learn machine learning package. Section Encoding categorical features. URL: http://scikit-learn.org/stable/modules/preprocessing.html (дата обращения: 18.03.2016).

Виктор Китов (vkitov@mail.ru) — математик, Московский государственный университет им. М. В. Ломоносова; доцент, Национальный исследовательский университет «Высшая школа экономики» (Москва).