магистерская диссертация / ВКРМ
.pdfприменением в одиночных деревьях, что и формирует основу для теоретического
иэкспериментального обоснования предлагаемой модификации.
1.5.4Синтез теоретических аргументов и формулировка гипотезы
Проведённый анализ формирует системное обоснование троичной
модификации, опирающееся на три взаимодополняющих аргумента:
•исторический: троичность как структурный принцип неоднократно доказывала эффективность в несвязанных областях (балансированная арифметика [50, 70], тернарные нейросети [80, 81], многозначные логики [55, 56, 61]), обеспечивая более компактное кодирование при сохранении выразительности;
•теоретический: сокращение глубины на ≈ 37 % при том же числе листьев снижает максимальный порядок взаимодействий признаков, действуя как структурная регуляризация; обобщённая формула прироста (выведенная в подразделе 2.2) включает бинарный случай как частный, гарантируя математическую корректность;
•алгоритмический: многие реальные признаки естественным образом делятся на три области (низкий/средний/высокий, норма/отклонение влево/вправо);
троичное дерево моделирует такую структуру одним узлом вместо двух последовательных бинарных, экономя уровни глубины и упрощая интерпретацию.
На основании проведённого анализа можно сформулировать следующие теоретические утверждения, образующие фундамент исследовательской гипотезы:
•троичное ветвление расширяет гипотезный класс базовых учеников: любое бинарное дерево представимо как троичное (с пустой центральной ветвью),
но не наоборот;
•расширение класса при адекватной регуляризации (γ, λ, ν) не ухудшает обобщающую способность в асимптотическом смысле;
36
•конкретный выигрыш или проигрыш на реальных данных определяется соответствием между структурой признаков и геометрией разбиения, что решается только эмпирически.
Основная гипотеза работы формулируется следующим образом: замена бинарных деревьев на троичные в градиентном бустинге позволяет строить ансамбли меньшей эффективной глубины при сохранении аппроксимационной ёмкости, что изменяет баланс смещения и дисперсии, снижает порядок взаимодействий признаков и может улучшить обобщающую способность при сопоставимых вычислительных затратах. Троичное ветвление расширяет гипотезный класс базового ученика, не нарушая общей схемы функциональной оптимизации, и естественно встраивается в существующие реализации без изменения ядра алгоритма.
Эти выводы формируют теоретический фундамент экспериментальной части работы. В главе 2 диссертации приводится математическая формализация троичного разбиения как обобщения схемы XGBoost, проектируется и реализуется кроссплатформенная библиотека, поддерживающая бинарный,
троичный и адаптивный режимы ветвления. В последующих главах проводится сравнение троичной и бинарной реализаций на стандартизированных наборах данных, оценивается влияние гиперпараметров, анализируется скорость сходимости и проверяется гипотеза об улучшении обобщающей способности за счёт структурной регуляризации.
Выводы по первой главе
Первая глава диссертационной работы была посвящена теоретическому анализу эволюции градиентного бустинга на деревьях решений и обоснованию троичного ветвления как структурного принципа в ансамблевых методах.
Проведённый анализ предметной литературы и формальных свойств деревьев решений позволяет сформулировать следующие основные выводы.
37
–Эволюция от одиночных деревьев к градиентному бустингу обусловлена последовательным разрешением конфликта смещения и дисперсии.
Одиночные деревья обладают высокой дисперсией и нестабильностью, что компенсируется параллельными ансамблями (бэггинг, случайные леса) за счёт декоррелирования базовых моделей. Однако параллельные схемы не снижают смещение. Бустинг, переосмысленный Фридманом как градиентный спуск в пространстве функций, целенаправленно уменьшает смещение путём последовательного обучения базовых учеников на псевдоостатках. Это унифицировало бустинг в единый алгоритмический каркас, совместимый с произвольными дифференцируемыми функциями потерь и деревьями как базовыми регрессорами.
–Современные реализации градиентного бустинга (XGBoost, LightGBM, CatBoost) внесли принципиальные архитектурные улучшения:
аппроксимацию второго порядка, явную регуляризацию функционала,
гистограммный поиск разбиений, листо-ориентированный рост и упорядоченный бустинг. Несмотря на различия в стратегиях построения деревьев и обработки данных, все три системы используют исключительно бинарное ветвление, унаследованное от алгоритма CART. Влияние коэффициента ветвления (branching factor) на сходимость, обобщающую способность и вычислительную сложность градиентного бустинга не подвергалось систематическому теоретическому или экспериментальному исследованию.
–Троичность как структурный принцип обладает строгим математическим обоснованием. Балансированная троичная система счисления теоретически оптимальна по критерию радикальной экономичности (r/ln r → min при r = 3), а комбинаторные свойства d-арных деревьев показывают,
что троичное дерево достигает того же числа листьев при глубине,
меньшей примерно на 37 % по сравнению с двоичным (ln 2 / ln 3 ≈ 0,631).
Сокращение глубины ограничивает максимальный порядок учитываемых
38
взаимодействий признаков, что в контексте ансамблевых методов
действует как структурная регуляризация, снижая риск переобучения на
шуме.
–Применение троичных принципов в деревьях решений ранее изучалось преимущественно для одиночных классификаторов. Исследования многопутевого ветвления (включая троичные разбиения Уткоффа)
показали отсутствие устойчивого преимущества из-за быстрой фрагментации выборки между ветвями. В градиентном бустинге эта проблема принципиально нивелируется: каждое дерево обучается на полной или крупноразмерной субвыборке, а регуляризация достигается за счёт shrinkage, стохастичности и штрафа за сложность. Таким образом,
структурный выигрыш от сокращения глубины сохраняется, а ограничение по наполнению ветвей перестаёт быть критическим.
–Анализ троичности в сопредельных областях машинного обучения
(тернарные нейронные сети, квантизация весов, тернарные хеши) показал,
что троичный принцип эффективен как алгоритмический, а не аппаратный стандарт. Перенос этого принципа на структуру базовых учеников градиентного бустинга является логичным следующим шагом, не требующим изменения представления данных или процессорных инструкций и совместимым с существующими промышленными реализациями.
–Синтез теоретических аргументов формирует чёткую исследовательскую гипотезу: замена бинарных деревьев на троичные в градиентном бустинге позволяет строить ансамбли меньшей эффективной глубины при сохранении аппроксимационной ёмкости, что изменяет баланс смещения и дисперсии, снижает порядок взаимодействий признаков и может улучшить обобщающую способность при сопоставимых вычислительных затратах. Троичное ветвление расширяет гипотезный класс базового ученика, не нарушая общей схемы функциональной оптимизации, и
39
естественно встраивается в существующие реализации без изменения ядра алгоритма.
Совокупность изложенных результатов формирует теоретический фундамент для эмпирического исследования, проводимого в последующих главах диссертации. Проверка выдвинутой гипотезы требует разработки троичной модификации градиентного бустинга, анализа взаимодействия гиперпараметров (ν, γ, λ, J, η) в троичном режиме и сравнительной оценки качества и вычислительной эффективности на репрезентативном наборе задач.
Постановка задачи, математическая формализация, программная реализация и экспериментальная методология и результаты экспериментов описаны в последующих главах.
.
40
2 Разработка алгоритма градиентного бустинга с троичным ветвлением
В настоящей главе формализуется решаемая задача, формулируются требования к разрабатываемому решению и обосновывается выбор инструментов; выводится математическая модель троичного ветвления как обобщение критерия качества разбиения алгоритма XGBoost; описывается программная реализация полученного алгоритма в виде кроссплатформенной библиотеки.
2.1 Постановка задачи и требования к разрабатываемому решению
2.1.1 Формализация задачи, цель и задачи работы
Анализ работ на тему модификаций деревьев решений позволил установить, что многопутевое ветвление сокращает глубину построенных моделей на 30–34 % при отклонении качества предсказания не более 1–3 % по отношению к бинарному режиму. Вместе с тем ни в одной из рассмотренных работ данный подход не применялся в контексте алгоритмов градиентного бустинга с регуляризацией. Настоящий подраздел формализует задачу, решение
которой позволит устранить этот пробел.
Пусть задано обучающее множество = ( , ) = 1, где xi d –
вектор из d вещественных признаков объекта, yi – значение целевой переменной. В зависимости от типа задачи yi интерпретируется как вещественное значение (регрессия) либо как бинарная метка класса
(классификация). Требуется построить ансамблевую прогностическую модель вида:
F(x) = F0 + Σt=1T η · ft(x),
где F0 – начальное предсказание, η (0,1] – шаг обучения, ft – базовые модели в виде деревьев решений, T – число деревьев в ансамбле.
Цель обучения – минимизация регуляризованного функционала потерь:
= Σi=1n L(yi, F(xi) ) + Σt=1T Ω(ft),
41
где L – дифференцируемая функция потерь, Ω(ft) – слагаемое регуляризации.
В стандартном алгоритме XGBoost каждое дерево ft строится методом рекурсивного бинарного разбиения: каждый внутренний узел реализует предикат xj ≤ θ и делит текущее множество объектов I на левое подмножество
= : ≤ и правое IR = I \ IL.
Задача настоящего исследования состоит в разработке модификации алгоритма XGBoost, допускающей разбиение каждого узла на три дочерних
подузла. При троичном разбиении по признаку xj с парой порогов θ1 < θ2 |
объекты |
распределяются по трём непересекающимся подмножествам: |
|
= : ≤ 1, |
(2.1) |
= : 1 < ≤ 2, |
(2.2) |
= : > 2, |
(2.3) |
где = и попарные пересечения пусты.
Сравнение бинарного и троичного разбиения узла проиллюстрировано на рисунке 2.1.
Рисунок 2.1 – Сравнение бинарного и троичного разбиения узла
42
Помимо строго бинарного и строго троичного режимов предусматривается адаптивный режим: в каждом узле алгоритм вычисляет оба варианта разбиения и выбирает тот, который даёт больший прирост качества.
Результатом разработки является не просто алгоритм, но и библиотека,
обеспечивающая его практическое применение. Любой алгоритм машинного обучения, не встроенный в привычную экосистему инструментов анализа данных, остаётся труднодоступным для широкого применения. Таким образом,
задача включает два взаимосвязанных результата: реализацию модифицированного алгоритма и создание библиотечного интерфейса к нему.
Таким образом, цель работы – снижение глубины деревьев градиентного бустинга – как ключевого показателя интерпретируемости и затрат на вывод – при сохранении качества предсказания, за счёт обобщения XGBoost на троичное и адаптивное ветвление узлов дерева и его реализации в виде кроссплатформенной библиотеки, совместимой со стандартной экосистемой анализа данных.
Для достижения поставленной цели решаются следующие задачи:
1)формализовать задачу обучения регуляризованного градиентного бустинга и вывести критерий качества разбиения узла для троичного и адаптивного режимов как обобщение бинарного случая XGBoost;
2)сформулировать функциональные и нефункциональные требования к разрабатываемому алгоритму и библиотеке;
3)спроектировать архитектуру решения (вычислительное C++-ядро и
Python-интерфейс) и обосновать выбор инструментов и технологий;
4)реализовать алгоритм и библиотеку с поддержкой бинарного, троичного и адаптивного ветвления;
5)экспериментально оценить влияние режима ветвления на глубину и сложность модели, качество предсказания и время обучения относительно эталонной бинарной реализации.
43
2.1.2 Требования к разрабатываемому алгоритму и библиотеке
Перед выбором инструментов разработки необходимо чётко определить,
что должно уметь разрабатываемое решение. Требования разделяются на функциональные – описывающие конкретные функции и задачи, которые должны быть реализованы, – и нефункциональные, описывающие качественные характеристики выполнения этих функций.
Поскольку результатом работы являются два взаимосвязанных объекта – вычислительный алгоритм и предоставляющая к нему доступ библиотека, –
функциональные требования сформулированы раздельно для каждого из них:
они описывают разные по природе действия (вычисление против предоставления интерфейса). Функциональные требования к алгоритму приведены в таблице 2.1,
к библиотеке – в таблице 2.2.
Таблица 2.1 – Функциональные требования к алгоритму (вычислительному ядру)
|
Обозначение |
|
|
Описание требования |
|
|
|
|
|
||
|
|
|
|
Обучение ансамбля деревьев решений методом регуляризованного |
|
|
ФА1 |
|
градиентного бустинга на основе аппроксимации функции потерь |
||
|
|
|
|
второго порядка для задач регрессии и бинарной классификации |
|
|
|
|
|
|
|
|
|
|
|
Поддержка трёх режимов ветвления узла: бинарного, троичного и |
|
|
ФА2 |
|
адаптивного (автоматический выбор режима по максимальному |
||
|
|
|
|
приросту качества) |
|
|
|
|
|
|
|
|
ФА3 |
|
Поиск порогов разбиения по гистограмме признака с настраиваемым |
||
|
|
числом корзин и способом биннинга (равноширинный, квантильный) |
|||
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Явная регуляризация: L2-штраф λ на веса листьев, штраф γ за |
|
|
ФА4 |
|
разбиение, ограничение минимальной суммы гессианов в листе |
||
|
|
|
|
(min_child_weight) |
|
|
|
|
|
|
|
|
ФА5 |
|
Формирование предсказаний с учётом типа задачи: вещественные |
||
|
|
значения для регрессии, вероятности – для классификации |
|||
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Сбор структурной статистики обученного ансамбля: средняя и |
|
|
ФА6 |
|
максимальная глубина, среднее число листьев, доля троичных узлов, |
||
|
|
|
|
время обучения |
|
|
|
|
|
|
|
|
ФА7 |
|
Оценка важности признаков как суммарного прироста качества (gain) |
||
|
|
по всем разбиениям ансамбля |
|||
|
|
|
|
||
|
|
|
|
|
|
44
Таблица 2.2 – Функциональные требования к библиотеке (программному интерфейсу)
|
Обозначение |
|
|
|
Описание требования |
|
|
|
|
|
|
||
|
ФБ1 |
|
Настройка всех гиперпараметров алгоритма через единый интерфейс |
|||
|
|
без изменения исходного кода |
||||
|
|
|
|
|||
|
|
|
|
|
||
|
|
|
|
Интерфейс, совместимый с соглашениями scikit-learn (fit / predict / |
||
|
ФБ2 |
|
predict_proba / score / feature_importances_), пригодный для кросс- |
|||
|
|
валидации, перебора гиперпараметров и построения конвейеров |
||||
|
|
|
|
|||
|
|
|
|
обработки данных |
||
|
|
|
|
|
|
|
|
ФБ3 |
|
Вызов |
скомпилированного C++-ядра из Python без повторной |
||
|
|
реализации вычислений на стороне интерфейса |
||||
|
|
|
|
|||
|
|
|
|
|
|
|
Таблица 2.3 – Нефункциональные требования к разрабатываемому решению
|
Обозн. |
|
|
Описание требования |
|
|
Класс (ISO/IEC |
|
|
Уровень |
|
||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
25010) |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Скорость обучения бинарного режима, |
|
|
|
|
|
|
|||||
|
|
|
|
сопоставимая по порядку величины с |
|
|
|
|
|
|
|||||
|
НФ1 |
|
однопоточной |
конфигурацией XGBoost; |
|
Производительность |
|
ядро |
|||||||
|
|
накладные |
расходы |
троичного |
и |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
адаптивного режимов не более чем в 10 раз |
|
|
|
|
|
|
|||||
|
|
|
|
относительно бинарного |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
Корректная |
|
обработка |
вырожденных |
|
|
|
|
|
|
||
|
НФ2 |
|
ситуаций: |
пустые ветви, |
достижение |
|
Надёжность |
|
ядро |
||||||
|
|
максимальной глубины, нулевой прирост |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
качества, константный признак в узле |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
Детерминированность: |
при |
идентичных |
|
|
|
|
|
|
|||
|
НФ3 |
|
входных данных и параметрах результат |
|
Надёжность |
|
ядро + |
||||||||
|
|
воспроизводится в точности; алгоритм не |
|
|
библиотека |
||||||||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
использует источников случайности |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
Кроссплатформенность: сборка и работа на |
|
|
|
|
|
|
|||||
|
НФ4 |
|
Windows, Linux и macOS стандартными |
|
Переносимость |
|
библиотека |
||||||||
|
|
компиляторами |
без |
дополнительной |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
настройки |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
Удобство |
использования: |
интерфейс |
|
|
|
|
|
|
|||
|
НФ5 |
|
привычен специалисту по анализу данных и |
|
Удобство |
|
библиотека |
||||||||
|
|
не требует знания внутреннего устройства |
|
использования |
|
||||||||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
алгоритма |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
Модульность: разделение на независимые |
|
|
|
|
|
|
|||||
|
НФ6 |
|
компоненты (дерево, бустинг, работа с |
|
Сопровождаемость |
|
библиотека |
||||||||
|
|
данными, |
C |
API, |
Python-обёртка), |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
упрощающее сопровождение и расширение |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45
