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

Универсальное приближение

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

Нет бесплатного обеда

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

Бэгинг, Бустинг, Штабелирование

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

Бэггинг, сокращенный термин для начальной агрегации, представляет собой метод, который использует разные экземпляры модели одного и того же типа алгоритма (в классическом бэггинге), которые обучаются на случайных подмножествах обучающих данных. Как получаются эти случайные подмножества? Обычно путем выборки с заменой, что означает, что образцы можно использовать несколько раз. Прогнозы каждой модели объединяются, как правило, путем усреднения или голосования по большинству. Конечным результатом является более надежная модель с меньшей выходной дисперсией прогнозов. Случайный лес является примером бэггинга, который случайным образом подвыбирает как данные обучения, так и входные функции. Бэггинг обычно дает лучшие результаты в целом (из-за уменьшения дисперсии) по сравнению с простым обучением всему набору данных за один раз. Подробный обзор компромисса смещения и дисперсии в машинном обучении — это тема для обсуждения в другой день…

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

Что делать, если у вас уже есть несколько классификаторов, но вы хотите улучшить результаты? Или, возможно, у вас есть доступ только к результатам других классификаторов? На помощь приходит стекирование… Стекированиеиспользует набор моделей, основанных на различных алгоритмах обучения, которые обучаются на всем обучающем наборе, а затем объединяют прогнозы с помощью функции объединения, которая изучается на дополнительном этапе обучения. Функция объединения может быть произвольным алгоритмом объединения, но часто используется логистическая регрессия, поскольку она проста и хорошо работает для многих задач.

Вопросы производительности

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

Мы можем проиллюстрировать эту идею с помощью простой задачи классификации, используя деревья решений, обученные на 20-мерных синтетических гауссовских смешанных данных, и сравнивая кривые ROC (характеристика оператора приемника) для отдельных деревьев решений по сравнению с ансамблем. Прогнозы ансамбля будут вычисляться путем усреднения прогнозов отдельных моделей (бэггинга). Кривая ROC показывает, как различающая способность классификатора изменяется в зависимости от порога классификации, и дает хорошее представление об общей производительности классификатора. Идеальный классификатор будет создавать кривую ROC, которая приближается к координате (TPR, FPR) = (1,0), а случайное угадывание даст линию с наклоном = 1 (в линейной шкале), которая соединяет (0,0) с (1 ,1).

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

Теперь, если мы увеличим сложность каждого дерева решений, разрешив больше признаков (например, шестнадцать) при построении порогов принятия решений и увеличив максимальную глубину до четырех уровней, тогда каждое дерево станет более «экспертным», и дисперсия кривых уменьшится по мере того, как деревья в основном согласны. Совокупный ROC (черная кривая) больше не превосходит все модели по предметной области и в некоторых областях приближается к среднему значению. Обратите внимание, что эти примеры приведены только для иллюстрации, и гораздо более высокая абсолютная производительность может быть достигнута с более сложными моделями, такими как случайные леса, глубокие сети и т. д. Мы видим, что добиться улучшения сложнее при объединении моделей с сильно коррелированными выходными прогнозами. чем модели, которые совершают другие ошибки и, таким образом, предоставляют дополнительную информацию для метаобучения/объединителя.

Вывод

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