магистерская диссертация / ВКРМ
.pdfПиковая память процесса измерена через периодический опрос показателя RSS
с интервалом 20 мс на протяжении этапа обучения.
3.5.1 Время обучения
Время обучения по моделям и наборам данных приведено в таблице 3.10.
Бинарный режим разработанной библиотеки медленнее XGBoost в 2,4–5,2 раза на малых наборах, в 3,6–3,7 раза на средних и в 9,9 и 13,9 раза на наибольших – bank_marketing и adult соответственно. Различия имеют закономерный характер:
однопоточная реализация без векторных оптимизаций проигрывает промышленным библиотекам по мере роста объёма выборки, оставаясь в пределах одного порядка величины. Библиотека LightGBM опережает все остальные модели за счёт собственных алгоритмических оптимизаций, не относящихся к стратегии ветвления узлов и выходящих за рамки настоящей работы.
Накладные расходы троичного и адаптивного режимов относительно бинарного составляют 1,04–3,75 раза в зависимости от набора, что заметно меньше теоретической оценки 5–8 раз из подраздела 2.2.8. Причина в том, что на крупных наборах доминирующее слагаемое сложности O(n·d) превалирует над более тяжёлым O(B²·d) поиском пары порогов, специфичным для троичного режима. На наибольших наборах adult и bank_marketing замедление троичного режима относительно бинарного составляет всего 4–21%.
Таблица 3.10 – Время обучения, с (среднее ± СКО)
Датасет |
TGBM- |
TGBM- |
TGBM- |
XGBoost |
LightGBM |
CatBoost |
sklearn- |
|
binary |
ternary |
adaptive |
|
|
|
HGB |
diabetes |
0,26 ± 0,03 |
0,73 ± 0,02 |
0,78 ± 0,06 |
0,05 ± 0,00 |
0,02 ± 0,00 |
0,19 ± 0,10 |
0,55 ± 0,82 |
breast_cancer |
0,09 ± 0,00 |
0,10 ± 0,00 |
0,11 ± 0,00 |
0,04 ± 0,00 |
0,04 ± 0,00 |
0,43 ± 0,00 |
0,10 ± 0,01 |
california_housing |
0,59 ± 0,01 |
2,20 ± 0,06 |
2,33 ± 0,07 |
0,16 ± 0,00 |
0,12 ± 0,00 |
0,44 ± 0,00 |
0,18 ± 0,00 |
superconductivity |
3,32 ± 0,12 |
6,77 ± 0,05 |
7,76 ± 0,14 |
0,93 ± 0,00 |
0,64 ± 0,00 |
2,02 ± 0,01 |
0,40 ± 0,02 |
bank_marketing |
5,76 ± 0,19 |
6,98 ± 0,16 |
6,83 ± 0,16 |
0,58 ± 0,01 |
0,32 ± 0,00 |
1,29 ± 0,02 |
0,59 ± 0,01 |
adult |
13,39 ± 0,06 |
13,90 ± 0,22 |
15,18 ± 0,11 |
0,96 ± 0,01 |
0,34 ± 0,00 |
1,44 ± 0,02 |
1,09 ± 0,06 |
86
3.5.2 Время вывода
Время вывода в расчёте на один объект приведено в таблице 3.11. На всех шести наборах разработанная библиотека опережает все четыре промышленных эталона. Бинарный режим обрабатывает один объект за 0,57–1,21 мкс, тогда как
XGBoost – за 1,59–5,34 мкс (в 2,2–5,4 раза медленнее), LightGBM – за 4,33–8,77
мкс (в 5,5–13,0 раза медленнее), sklearn-HGB – за 3,08–11,07 мкс. Преимущество объясняется плоским хранением узлов дерева (подраздел 2.3.2),
обеспечивающим высокую локальность данных при обходе, и облегчённой логикой предсказания, не предусматривающей обработку разреженных матриц и пропущенных значений.
Таблица 3.11 – Время вывода, мкс на объект (среднее ± СКО)
Набор |
TGBM- |
TGBM-ternaryTGBM- |
XGBoost |
LightGBM |
CatBoost |
|
sklearn- |
|
|
|
binary |
|
adaptive |
|
|
|
|
HGB |
|
diabetes |
1,21 ± 0,14 |
1,89 ± 0,23 |
1,35 ± 0,01 |
5,34 ± 0,44 |
8,77 ± 0,63 |
14,84 |
± |
11,07 |
± |
|
|
|
|
|
|
0,66 |
|
1,13 |
|
breast_cancer |
0,69 ± 0,09 |
0,64 ± 0,07 |
0,61 ± 0,01 |
3,69 ± 0,32 |
8,44 ± 0,20 |
9,92 ± 0,65 |
8,24 ± 0,32 |
||
california_housing |
0,71 ± 0,03 |
1,17 ± 0,05 |
1,18 ± 0,04 |
1,59 ± 0,02 |
5,49 ± 0,04 |
0,46 ± 0,02 |
3,08 ± 0,06 |
||
superconductivity |
0,66 ± 0,03 |
1,03 ± 0,04 |
1,13 ± 0,05 |
2,00 ± 0,03 |
5,35 ± 0,03 |
0,77 ± 0,01 |
3,36 ± 0,06 |
||
bank_marketing |
0,66 ± 0,06 |
0,97 ± 0,24 |
0,84 ± 0,17 |
1,89 ± 0,05 |
4,93 ± 0,05 |
0,66 ± 0,00 |
3,46 ± 0,04 |
||
adult |
0,57 ± 0,03 |
0,75 ± 0,04 |
0,75 ± 0,02 |
2,11 ± 0,02 |
4,33 ± 0,03 |
0,81 ± 0,02 |
7,11 ± 0,40 |
||
Накладные расходы троичного и адаптивного режимов на этапе вывода составляют 1,1–1,7 раза относительно бинарного и обусловлены большим общим числом листьев в деревьях.
3.5.3 Пиковая память
Пиковая память процесса в течение этапа обучения приведена в таблице
3.12. На малых наборах разработанная библиотека потребляет 2,5–2,7 МБ, что сопоставимо с промышленными эталонами. На средних и крупных наборах требуется 30–226 МБ, тогда как XGBoost и LightGBM укладываются в 5–10 МБ.
Таблица 3.12 – Пиковая память процесса в течение этапа обучения, МБ (среднее
± СКО)
Набор |
TGBM- |
TGBM- |
TGBM- |
XGBoost |
LightGBM |
CatBoost |
sklearn- |
|
binary |
ternary |
adaptive |
|
|
|
HGB |
diabetes |
2,5 ± 0,2 |
2,4 ± 0,0 |
2,7 ± 0,2 |
1,5 ± 2,4 |
1,0 ± 1,4 |
3,2 ± 4,2 |
0,7 ± 0,7 |
breast_cancer |
2,6 ± 0,4 |
1,9 ± 0,9 |
2,1 ± 0,6 |
0,3 ± 0,4 |
0,4 ± 0,6 |
2,2 ± 0,1 |
0,1 ± 0,1 |
california_housing |
96,6 ± 0,9 |
98,3 ± 0,8 |
98,8 ± 0,0 |
4,7 ± 0,2 |
1,5 ± 2,2 |
3,4 ± 2,2 |
0,8 ± 1,3 |
87
superconductivity |
30,2 ± 52,2 |
33,3 ± 57,0 |
– |
7,7 ± 1,0 |
1,0 ± 0,8 |
6,1 ± 0,4 |
1,3 ± 0,0 |
bank_marketing |
209,1 ± 0,3 |
208,9 ± 0,4 |
– |
6,1 ± 3,9 |
2,1 ± 1,8 |
3,2 ± 0,6 |
2,5 ± 1,4 |
adult |
225,0 ± 0,9 |
225,5 ± 0,6 |
226,0 ± 0,0 |
9,8 ± 2,8 |
3,9 ± 3,4 |
19,5 ± 1,0 |
7,2 ± 2,9 |
Перерасход относительно XGBoost вызван временными структурами этапа обучения – буферами индексов объектов в рекурсивных вызовах построения дерева и накопителями гистограмм для каждого активного узла. Оптимизация этих структур представляет направление для дальнейшей работы (например,
общий пул буферов между узлами или компактные представления индексов).
Абсолютное значение пиковой памяти не превышает 226 МБ на всех протестированных наборах и остаётся в пределах типового бюджета вычислительной системы. Для двух конфигураций – bank_marketing и superconductivity с адаптивным режимом – пиковая память не приводится, т.к.
эти конфигурации запускались последними в рамках одного процесса, и
сэмплирование RSS дало некорректные значения из-за того, что диспетчер памяти CPython не возвращает освобождённые страницы операционной системе;
характер потребления для адаптивного режима в этих случаях соответствует характеру для бинарного и троичного. Это подтверждается результатами для california_housing и adult, где такой эффект не возникает.
3.6 Структурный анализ режимов ветвления
Сравниваются три конфигурации разработанного алгоритма: бинарный режим с максимальной глубиной 6 (номинальная ёмкость 2 = 64 листа),
троичный режим с максимальной глубиной 4 (3 = 81 лист) и адаптивный режим с максимальной глубиной 6. Исследование проведено на восьми наборах данных
– трёх синтетических (диап. регрессия, диап. классиф., монот. регрессия) и пяти реальных (diabetes, breast_cancer, california_housing, adult, bank_marketing).
Прочие гиперпараметры:
•число деревьев 100, шаг обучения 0,1;
•число корзин гистограммы 64;
88
• регуляризация по умолчанию – общие для всех режимов.
Каждая конфигурация запущена с тремя значениями зерна разбиения.
3.6.1 Сравнение качества и структуры моделей
Качество троичного режима с глубиной 4 совпадает с качеством бинарного режима с глубиной 6 на шести из восьми наборов: различия в значениях главной метрики не превышают 0,014. На двух наборах с наибольшим объёмом и сложной структурой признаков – adult (48 842 объекта) и bank_marketing (45 211
объектов) – троичный режим с глубиной 4 уступает по AUC на 0,048–0,049 (0,879
против 0,928 и 0,886 против 0,934 соответственно). Это указывает на то, что глубина 4 недостаточна для построения качественной модели на сложных задачах классификации крупного размера, несмотря на сопоставимое номинальное число листьев. Адаптивный режим с глубиной 6 во всех восьми случаях достигает качества бинарного режима, а на california_housing
превосходит его (R² 0,840 против 0,830).
Средняя глубина листа в троичном режиме с глубиной 4 составляет от 1,80
до 3,95 уровней, что на 1,3–1,9 уровня меньше, чем в бинарном режиме с глубиной 6 (от 2,63 до 5,92). Среднее число листьев в троичном режиме с глубиной 4 в 1,15–1,30 раза превышает аналогичный показатель бинарного режима с глубиной 6, что соответствует теоретическому соотношению 3 /2 ≈ 1,27. Таким образом, выигрыш в компактности при сопоставимой номинальной ёмкости достигается за счёт сокращения глубины дерева, тогда как общее число листьев у троичного режима оказывается на 15–30% больше.
Адаптивный режим с глубиной 6 в среднем сохраняет глубину листа на уровне бинарного режима с глубиной 6 (отклонения менее 5%), однако число листьев у него существенно больше – от 1,1 раза на малых классификационных наборах до 5,9–7,4 раз на регрессионных наборах среднего и крупного размера
(347,8 листа на диапазонной регрессии и 432,4 на california_housing против 56,5
и 58,3 у бинарного режима). Причина состоит в том, что при разрешённой
89
глубине 6 троичные разбиения, появляющиеся в адаптивном режиме (см.
подраздел 6.2), мультиплицируют число листьев на каждом уровне дерева.
Время обучения троичного режима с глубиной 4 на большинстве наборов меньше времени обучения бинарного режима с глубиной 6: 0,77 с против 0,95 с
на diabetes, 1,32 с против 1,80 с на california_housing, 3,10 с против 4,50 с на adult.
Снижение допустимой глубины с 6 до 4 сокращает общее число построенных узлов сильнее, чем рост сложности поиска пары порогов в каждом узле – множитель O(B²·d) вместо O(B·d) на уровне отдельного узла. Адаптивный режим с глубиной 6 во всех случаях самый медленный – от 2,5 раза на adult до 5,7 раза на california_housing относительно бинарного режима, – поскольку в каждом узле обходит обе ветви, бинарную и троичную.
3.6.2 Диагностика адаптивного режима
Доля троичных разбиений в адаптивном режиме при разрешённой глубине
6 приведена в таблице 3.13. Среднее значение варьируется от 14,4% на наборе breast_cancer до 29,8% на california_housing. Это показывает, что адаптивный режим использует троичные разбиения существенно, но не как преобладающую стратегию: большинство узлов (от 70 до 86%) остаются бинарными.
Стандартное отклонение доли троичных разбиений по зёрнам разбиения не превышает 1,04 процентного пункта (от 0,04 на california_housing до 1,04 на диапазонной классификации). Это подтверждает, что выбор типа разбиения адаптивным режимом задаётся структурой данных.
Сравнение двух синтетических наборов регрессии – с диапазонной и монотонной структурой – даёт одну из ключевых характеристик адаптивного режима: доли троичных разбиений составляют 28,02% и 27,48% соответственно,
различие в пределах 0,54 процентного пункта. То есть при достаточной общей ёмкости модели (глубина 6) адаптивный режим не отдаёт явного предпочтения троичному разбиению на наборах с диапазонной структурой. Это согласуется с выводом по эксперименту на синтетических данных: преимущество троичного
90
разбиения проявляется именно при дефиците глубины (рисунок 3.3), тогда как при разрешённой глубине 6 ансамбль располагает достаточной свободой для аппроксимации обеих структур произвольной комбинацией разбиений.
Таблица 3.13 – Доля троичных разбиений в адаптивном режиме при глубине 6
Набор |
Среднее, % |
СКО, % |
Минимум, % |
Максимум, % |
Диап. регрессия |
28,02 |
0,07 |
27,95 |
28,09 |
Диап. классиф. |
20,00 |
1,04 |
19,25 |
21,18 |
Монот. регрессия |
27,48 |
0,07 |
27,43 |
27,56 |
diabetes |
25,38 |
0,62 |
24,79 |
26,03 |
breast_cancer |
14,40 |
0,91 |
13,41 |
15,20 |
california_housing |
29,83 |
0,04 |
29,78 |
29,86 |
adult |
21,92 |
0,15 |
21,82 |
22,09 |
bank_marketing |
22,04 |
0,21 |
21,82 |
22,23 |
Полученные данные подтверждают результат этапов 1 и 2 в части выбора адаптивного режима как основного: на сложных классификационных наборах большого размера (adult, bank_marketing) троичный режим с малой глубиной теряет качество, тогда как адаптивный сохраняет точность бинарного режима,
расходуя долю троичных разбиений (14–30%) только там, где они улучшают локальное качество разбиения.
3.6.3 Контроль детерминированности
Каждая из трёх конфигураций раздела 3.6.1 (binary-d6, ternary-d4, adaptived6) на каждом из восьми наборов запущена три раза при одном и том же значении зерна разбиения (seed = 42). По завершении каждого тройного запуска сравнивались:
a)предсказания на тестовой выборке между повторами по критерию max|p_i − p_0|;
b)структурные характеристики ансамбля, возвращаемые методом tree_stats() – средняя глубина листа, максимальная глубина дерева,
среднее число листьев и доля троичных разбиений.
91
Все 24 тройных запуска дали побитово идентичные предсказания (max|p_i − p_0| = 0,0 для всех точек тестовой выборки) и тождественные структурные характеристики ансамбля во всех трёх повторах. Этот результат согласуется с проектным решением, заложенным в архитектуру разработанного алгоритма
(подраздел 2.2). Процедуры биннинга, поиска разбиения и рекурсивного построения дерева не содержат источников случайности; биннинг гистограммы выполняется по детерминированному правилу, выбор разбиения определяется максимальным выигрышем при одинаковом порядке перебора признаков и порогов. Тем самым подтверждается соответствие требованию НФ3.
92
3.7Обобщённые выводы по главе
1.При фиксированной большой глубине троичное ветвление не повышает точность и склонно к переобучению из-за избыточной ёмкости; это переобучение управляемо регуляризацией.
2.Главное преимущество троичного и адаптивного ветвления –
компактность: при честном индивидуальном подборе гиперпараметров адаптивное ветвление достигает точности бинарного бустинга (различие незначимо, p = 0.845) при значимо меньшей глубине деревьев (p < 0.0001), то есть строит более интерпретируемые модели.
3.Существует чёткая область эффективности по точности: на немонотонных данных в режиме малой глубины троичное и адаптивное ветвление значимо превосходят бинарное (p = 0.016, выигрыш около +6.51%) и
опережают промышленные библиотеки.
4.Результаты согласованы между синтетическими и реальными данными по единому механизму: троичный узел заменяет уровень глубины, поэтому метод эффективен при дефиците. Адаптивный режим устойчивее чистого троичного и рекомендуется как основной.
5.Накладные расходы троичного и адаптивного режимов на практике существенно ниже теоретической оценки и не препятствуют их применению.
6.При сопоставимой номинальной ёмкости троичный режим достигает качества бинарного на 6 из 8 наборов; на двух крупных задачах классификации проигрывает по AUC на 0,05. Адаптивный режим достигает качества бинарного на всех восьми наборах при доле троичных разбиений ~30%, что обосновывает его выбор в качестве основного режима алгоритма. Контроль детерминированности подтверждает воспроизводимость результатов.
93
ЗАКЛЮЧЕНИЕ
Вработе разработан, математически обоснован и проверен экспериментально алгоритм градиентного бустинга с троичным и адаптивным ветвлением. Исходная гипотеза подтвердилась: обобщение структуры базового ученика действительно позволяет строить более компактные ансамбли, не жертвуя их точностью.
Врамках первой задачи обобщение XGBoost на троичное ветвление было формализовано. Выведена формула выигрыша от троичного разбиения − прямое расширение бинарного критерия. Доказано свойство корректности вырождения:
при пустой средней ветви троичное разбиение никогда не выгоднее бинарного.
Это и обеспечивает корректность адаптивного режима − без каких-либо дополнительных проверок в коде.
По второй задаче определены требования к вычислительному ядру и к библиотеке. Они охватывают точность, регуляризацию, детерминированность,
производительность, переносимость и удобство использования и легли в основу выбора технологического стека.
По третьей задаче спроектирована модульная архитектура: ядро на C++17
и Python-обёртка, связанные через ctypes. Такое разделение дало высокую скорость вычислений, отсутствие внешних зависимостей и совместимость с инструментами scikit-learn для перебора гиперпараметров и кросс-валидации.
По четвёртой задаче реализована библиотека TernaryGBM. Она поддерживает три режима ветвления, гистограммный поиск порогов, явную L2-
регуляризацию, сбор структурной статистики и работает с задачами регрессии и бинарной классификации. Результаты воспроизводятся побитово, вырожденные ситуации обрабатываются корректно.
Пятая задача потребовала самой объёмной проверки − на синтетических и
19 реальных наборах данных. При честном индивидуальном подборе гиперпараметров троичный и адаптивный режимы оказались статистически неотличимы от бинарного по качеству (критерий Уилкоксона, p > 0,374), но
94
строили заметно более мелкие деревья (p < 0,0001), а значит, и более понятные.
Нашлась и область, где метод прямо выигрывает в точности: немонотонные данные при малой глубине в 2–3 уровня, где троичное и адаптивное ветвление значимо превосходят бинарное (средний выигрыш +6,51 %, p = 0,016) и
опережают промышленные библиотеки. Накладные расходы адаптивного режима на практике оказались ниже теоретической оценки.
Главный теоретический результат работы − обоснование троичного ветвления как формы структурной регуляризации, управляющей балансом смещения и дисперсии. Главный прикладной результат − готовая библиотека
TernaryGBM и рекомендации по применению адаптивного режима там, где нужна компактная и интерпретируемая модель уровня промышленных аналогов.
Перспективное продолжение исследования – встроить предложенный механизм ветвления в один из промышленных, где он сможет работать вместе с их низкоуровневыми оптимизациями: векторизацией, многопоточностью,
ускорением на GPU, обработкой разреженных и категориальных данных.
95
