Ускорение 3 больших алгоритмов
две предыдущие статьипринцип адаптивностииПринцип повышенияПосле написания я все еще не чувствую, что понимаю буст, поэтому у меня есть эта статья.
интегрированное обучение
Сначала нам нужно узнать, что такое ансамблевое обучение? Ансамблевое обучение заключается в формировании сильного ученика путем обучения слабых и слабых учеников и с помощью определенной комбинированной стратегии.
Во всем процессе есть две трудности:
- Как получить несколько индивидуальных учеников
- Как выбрать стратегию связывания
Давайте сначала рассмотрим первый вопрос, как получить индивидуального ученика. Есть два варианта:
- Однородные учащиеся, такие как случайные леса, используют деревья тележек.
- Неоднородные учащиеся, например, использующие разные классификаторы, в конечном итоге принимают форму голосования.
Среди них больше используется однородный ученик. Однородных учащихся можно разделить на две категории в зависимости от того, существует ли зависимость между отдельными учащимися:
- Во-первых, существует сильная зависимость между отдельными учащимися, серию отдельных учащихся в основном необходимо генерировать последовательно, а репрезентативным алгоритмом является повышающая серия алгоритмов;
- Во-вторых, между отдельными учащимися нет сильной зависимости, и ряд отдельных учащихся может быть сгенерирован параллельно.
Эта статья посвящена алгоритму повышения.
Основные принципы прокачки
Что касается алгоритма повышения, нам нужно знать 3 самых известных алгоритма:
- Adaboost(Adaptive Boosting)
- GBM(Gradient Boosting Machine)
- XGBoost
GBM
Давайте сначала посмотрим на GBM, идея заключается в постепенном улучшении, как это понять?
Давайте сначала рассмотрим алгоритм повышения градиента: сначала задайте функцию потерьL(y,F(x)), входом которой является обучающая пара: (x1, y1), (x2, y2),..., (xn, yn), цель состоит в том, чтобы найти оптимальное F(x), чтобы функция потерь L была наименьший, согласно традиционному методу градиентного спуска, мы введем обучающие данные (xi, yi), затем найдем частную производную L по параметрам, а затем используем отрицательный градиент для обновления параметров:
для вышеперечисленногои
Есть два зрелых метода получения:
- Gradient Descent
- Метод Ньютона
Это соответствует GBM и XGBoost соответственно, сначала поговорим о GBM.
Мыи
Для вычисления минимального значения берется разложение Тейлора первого порядка по fm, и в это время получается обратное значение:
По Тейлору первого порядка в этот момент времени находится минимальное значение потерь, которого вполне достаточно, чтобы отпустить f в сторону отрицательного градиента, тогда потери должны уменьшаться при итерации f. Теперь подведем итоги. проблема:
Мы преобразовали известные входные данные из (xi,yi) в (xi,-gm(xi)), теперь мы используем функциючтобы соответствовать (xi,-gm(xi)), и критерии следующие:
когда мы учимся, давайте посмотрим, каким должен быть оптимальный размер шага:
Подытожим весь процесс:
С описанным выше процессом нам все еще нужно подтвердить, как найти оптимальное, теперь полагаем
это модель дерева.На данный момент нам нужно изучить структуру дерева и вес каждого листового узла.
Давайте сначала узнаем о структуре дерева.
Предположим, что дерево можно разбить на T узлов, и каждый узел имеет вес wj, тогда:
Теперь, когда мы изучим настоящую структуру дерева, давайте переучим оптимальные веса дерева:
Adaboost
Мы приводим алгоритм алгоритма в основной статье Adaboost:
- 1) Как рассчитать коэффициент ошибок обучения e?
- 2) Как получить весовой коэффициент слабого ученика α?
- 3) Как обновить вес образца D?
- 4) Какая стратегия связывания используется?
Первая проблема: вычисление частоты ошибок обучения e, частота ошибок m-го слабого классификатора — это взвешенная частота ошибок на обучающем наборе:
Метод подъема
Вышеприведенный контент — это то, о чем мы говорили в статье Принцип Adaboost. Давайте посмотрим на эту статью, чтобы увидеть, как она на самом деле соответствует приведенному выше принципу GBM. Принцип алгоритма GBM выглядит следующим образом:
XGBOOST
XGBOOST надеется напрямую решить следующую формулу, чтобы получить оптимальное fm
Суммировать
В этой статье представлены 3 самых известных алгоритма повышения квалификации.
- Adaboost(Adaptive Boosting)
- GBM(Gradient Boosting Machine)
- XGBoost
И представил, что Adaboost является частным случаем функции потерь GMB, является экспоненциальной потерей, в последующем будут две статьи, одна представляет вариант алгоритма adaboost, а другая представляет три алгоритма в сочетании с кодом.
Ваша поддержка является движущей силой для меня, чтобы продолжать писать, и я с нетерпением жду нашего общего прогресса.
Ссылаться на
Увеличение дерева с помощью XGBoost: почему XGBoost выигрывает «все» соревнования по машинному обучению?
Gradient Boosting from scratch