При усредняющих методах обучение деревьев

Методы ансамбля: от деревьев решений к глубокому обучению

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

По своей сути концепция довольно проста: Алгоритмы ансамблевого обучения объединяют прогнозы нескольких моделей, обученных на всем наборе данных или нескольких выборках, с использованием различных методов агрегирования результатов.

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

Стандартные ансамблевые методы

У нас есть три основные категории алгоритмов обучения ансамбля:

Упаковка

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

У этого типа ансамблевого обучения есть несколько преимуществ: модели можно обучать параллельно, и в целом оно имеет довольно низкую дисперсию, поэтому не переобучается.

Читайте также:  Дом обшитый блок хаусом дерево

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

Один быстрый пример использования классификатора мешков, предоставленного sklearn:

Повышение

Стратегия ансамблевого метода этого типа заключается в последовательном создании моделей, при этом каждая новая модель корректирует предсказания предыдущей модели. Существует несколько методов, с помощью которых каждая новая модель может компенсировать плохо обработанные ранее наблюдения. Наиболее часто используемые из них: Адаптивное усиление и Градиентное усиление.

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

Это семейство ансамблей содержит некоторые из наиболее часто используемых алгоритмов в соревнованиях Kaggle и является выбором многих профессионалов: AdaBoost, XGBoost, LightGBM, CatBoost.

Укладка

Для этой категории у нас есть два уровня моделей: один с обычными «слабыми учениками» и один с «мета-обучаемыми», которые должны сочетать результаты первого уровня.

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

Некоторые из алгоритмов, принадлежащих к этому семейству: голосование, взвешенное среднее, смешивание, Super Learner.

Глубокое обучение

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

Читайте также:  Выбираем масло чайного дерева

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

Основываясь на том, что мы уже узнали, мы можем выделить несколько подходов:

  • Варьируйте данные, которые мы обучаем для каждой модели: используйте одну и ту же идею из k-кратной перекрестной проверки, но, в конце концов, сохраните k разных моделей, чтобы использовать их в предсказателе ансамбля, или создайте несколько выборок, используя повторную выборку с заменой. , точно так же, как в агрегации начальной загрузки (бэггинге).
  • Измените способ агрегирования результатов: самое простое решение — усреднить результаты или использовать средневзвешенное значение. Другой простой подход — усреднить веса всех обученных моделей и создать новую. Более сложные решения могут быть созданы с использованием идей бустинга и стекирования.
  • Варьируйте модели: изменяя гиперпараметры архитектуры модели, мы можем создавать разные модели, которые ведут себя по-разному, поэтому мы можем различаться: количество слоев, скорость обучения, инициализация веса и т. д. Мы также можем сохранять модель в процессе обучения и использовать их все в конце как предиктор ансамбля; это также называется ансамбль моментальных снимков.

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

Для практического примера нет простых решений, подобных тем, что были в предыдущем разделе, но я предлагаю вам проверить Kaggle, почти во всех соревнованиях, где присутствуют нейронные сети, вы также можете найти ансамблевый подход. Кроме того, для pytorch вы можете проверить этот фреймворк: https://github.com/TorchEnsemble-Community/Ensemble-Pytorch.

Читайте также:  Чем обработать деревья от муравьев летом

Заключительные слова

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

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

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

Ресурсы:

Источник

Оцените статью