Федеративная модель дерева обучения и безопасности XGBoost от SecureBoost

машинное обучение
Федеративная модель дерева обучения и безопасности XGBoost от SecureBoost

1 Федеральное образование

Ввиду важности конфиденциальности данных постепенно повышается осведомленность о защите данных дома и за рубежом. В 2018 году Европейский союз издал «Общее положение о защите данных» (GDPR), а «Меры по управлению безопасностью данных (проект для комментариев)», подготовленные Администрацией киберпространства моей страны, стали общей тенденцией к свободному обмену данными в соответствии с предпосылка безопасности и соответствия. Введение этих законов и правил в той или иной степени ставит новые задачи перед традиционным способом обработки данных искусственным интеллектом.

Сегодня, при высоком развитии ИИ, многомерные и качественные данные являются узким местом, сдерживающим его дальнейшее развитие. Поскольку организации уделяют все больше и больше внимания данным, сотрудничество с данными между организациями и между различными отделами внутри организации будет становиться все более и более осторожным, что приведет к тому, что большой объем данных будет существовать в виде изолированных островков.在这里插入图片描述

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

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

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

Поскольку древовидная модель является относительно информативной, невозможно решить чистый SecureBoost за один шаг, поэтому эта статья разделена на следующие темы.Основной контекст: дерево решений -> метод ансамбля Бэгинг и бустинг -> GBDT -> XGBoost -> Безопасное дерево повышения. Я надеюсь, что благодаря этой серии статей читатели смогут получить всестороннее и всестороннее представление о методе федеративного обучения SecureBoost.

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


2 Схема модели федеративного дерева обучения

Как мы все знаем, машинное обучение в древние времена было ограничено тремя горами больших данных, большой вычислительной мощностью и большой структурой.Традиционный метод статистического машинного обучения великолепен, в основном мир LR и Xgboost.LR - это линейная модель и не может полностью соответствовать нелинейному распределению данных. Однако GBDT является нелинейной моделью, и хотя его нелинейная подгоночная способность не так сильна по сравнению с глубоким обучением, она также может в ограниченной степени формализовать нелинейное распределение для формирования основной конкурентоспособности. В то время это считалось новым Bitmain, специалистом по машинному обучению, поскольку они могли использовать Xgb и понимать Xgb, и многие компании могли бы присоединиться.

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

Философия говорит нам, что все не существует изолированно, а имеет постоянно меняющиеся связи. Поэтому для федеративного обучения нам необходимо использовать как безопасную модель глубокой сети, так и безопасную модель Xgb.В первых двух главах мы представили «Модель дерева федеративного обучения-безопасности SecureBoost Desicion Tree» и «Федеративное обучение-безопасность». древовидной модели SecureBoost», после того как мы представили дерево решений, ансамблевое обучение, бэггинг, бустинг, GBDT, основная часть — это в основном Xgb, затем в этой главе будет представлен XGBoost, а затем в другой главе будет представлен безопасный XGBoost, который представляет собой SecureBoostTree.


5 Обзор XGBoost

XGBoost относится к категории интегрированного обучения Ensemble Learning и относится к методу Boosting, Он обучает модель на основе невязки, чтобы она соответствовала реальной сцене данных, выполняет эффективный расчет на основе гистограммы градиента и реализует сверхкрупномасштабную параллель вычисление Boosting Tree, которое в настоящее время является самым быстрым и лучшим фреймворком Boosting Tree с открытым исходным кодом, более чем в 10 раз быстрее, чем другие распространенные фреймворки. Аналогичные реализации включают LightGBM, HistGradientBoostingClassifier и так далее.

实现里面体现算法与工程深度融合的优雅方式,相对于GBDT,XGBoost有以下几方面的优化:
  1. GBDT расширяет целевую функцию Тейлора до первого порядка, в то время как xgboost расширяет целевую функцию Тейлора до второго порядка, а Xgboost сохраняет больше информации о целевой функции.
  2. GBDT должен найти новую подходящую метку для новой базовой модели (отрицательный градиент предыдущей модели сложения), в то время как xgboost должен найти новую целевую функцию для новой базовой модели (разложение Тейлора второго порядка целевой функции на новая базовая модель)
  3. xgboost добавляет член регуляризации L2, который помогает модели получить более низкую дисперсию.
  4. xgboost добавляет стратегии для автоматической обработки функций с отсутствующими значениями. Разделив выборки с пропущенными значениями на левое поддерево или правое поддерево и сравнивая плюсы и минусы целевой функции по двум схемам, выборки с пропущенными значениями автоматически делятся, и нет необходимости заполнить недостающие признаки.

Например: на рисунке ниже алгоритм бустинга сформирован двумя деревьями, поделюсь с вами этим примером.

  • Всего имеется пять обучающих выборок: дедушка, бабушка, мать, сын и дочь.
  • В первом дереве он сначала делится на два узла в зависимости от того, меньше ли возраст 15 лет. Дедушка, бабушка и мать правого узла — все отрицательные классы (не любят играть в игры), поэтому существует не надо их делить. Затем левый узел делится на сыновей и дочерей в зависимости от пола, и, наконец, формируются три листовых узла и определяются три выходных значения.
  • Во втором дереве оно сначала делится на два узла в зависимости от того, часто ли используется компьютер, и, поскольку дальнейшее разбиение не приносит никакой информации, оно больше не разбивается на два листовых узла.
  • Процесс рассуждения: введите образец «сын» в алгоритм повышения, состоящий из двух деревьев.Выходное значение первого дерева равно 2, затем выходное значение второго дерева равно 0,9, а окончательное выходное прогнозируемое значение равно 2,9.

在这里插入图片描述

В машинном обучении есть очень важная концепция обучения с учителем.Ключевой трилогией машинного обучения является модель, стратегия и алгоритм. Таким образом, модель Xgb относится к накоплению базовой модели, стратегия заключается в минимизации потерь (общие функции потерь — MSE и Logistic), а алгоритм использует квантильную аппроксимацию для расчета и перечисления лучших точек разделения.


6 Целевая функция дерева

Прежде всего, когда дело доходит до целевой функции, знакомой MSE для классификации и логистики для регрессии, XGB

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

在这里插入图片描述

6.1 Аддитивная модель

Есть причина, по которой XGB иногда трудно понять. Гиперпараметры общей модели являются только параметрами модели, но подобранная метка здесь не указана, а аддитивная модель XGB подгоняется одна за другой базовой моделью, поэтому, когда используется первое дерево, оно используется для соответствия Метка.Начальное значение Y также является суперпараметром, поэтому всем следует обратить внимание на этот момент.Конечно, если у некоторых богов на первом шаге установлен суперпараметр, то модель не нужно обучать.

Конкретная модель добавления выглядит следующим образом:

  • Установите гиперпараметр для начального значения модели Y:yi0=начальный гиперпараметр{y^`_i} ^{0} = начальный гиперпараметр
  • Первое дерево:yi1=yi0+f1(x){y^`_i} ^{1} = {y^`_i} ^{0} + f_1(x)
  • Второе дерево:yi1=yi1+f2(x){y^`_i} ^{1} = {y^`_i} ^{1} + f_2(x)
  • ...
  • Энное дерево:yi1=yi(n1)+fn(x){y^`_i} ^{1} = {y^`_i} ^{(n-1)} + f_n(x)

Если добавить обычный член, то общая целевая функция будет

OBJ(t)=i=1nL(yi,yit)+i=1nΩ(fn)+constantOBJ^{(t)} = \sum_{i=1}^nL(y_i, {y^`_i} ^{t}) + \sum_{i=1}^n\Omega(f_n) + constant =i=1nL(yi,yi(t1)+ft(xi))+i=1nΩ(fn)+constant = \sum_{i=1}^nL(y_i, {y^`_i} ^{(t-1)} + f_t(x_i)) + \sum_{i=1}^n\Omega(f_n) + constant

Когда эта формула дается прямо, все могут быть сбиты с толку.У меня тоже было такое чувство, когда я впервые увидел ее.Я чувствовал себя правильно, и я чувствовал, что что-то не так.Потом, после того, как я тщательно вывел ее, я полностью ее понял.Послушайте меня ниже.

  • Уникальная переменная:ft(xi)f_t(x_i)а все остальное можно посчитать.
  • Регулярный термин и постоянный термин: обычный термин разлагается.Первые t-1 регулярные термины являются константами, поэтому выполняется обычный термин в момент времени t.

6.2 Расширение Тейлора

Во-первых, давайте посмотрим на определение разложения Тейлора, следующее из Википедии.

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

вставьте сюда описание изображения

在这里插入图片描述

Затем для приведенной выше целевой функции мы выполняем разложение Тейлора, чтобы уменьшить общую операционную сложность и выполнить приближенные вычисления.Целевая функция была описана выше, затем мы помещаем эту целевую функцию в формулу разложения Тейлора.Все математические формулы используют каждый раз, когда набор слов, определите ключевые элементы, а затем используйте ключевые элементы, чтобы установить их внутри. x соответствует предсказанному значению первых t-1 деревьев, это единственная переменная,x\triangle xсоответствует t-му дереву.

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

gi=y(t1)L(yi,yi(t1)),hi=2y(t1)L(yi,yi(t1)),g_i=\partial {y^`}^{(t-1)}L(y_i, {y^`_i} ^{(t-1)}), h_i= {\partial }^2{y^`}^{(t-1)}L(y_i, {y^`_i} ^{(t-1)}),2. Затем подставляем первую производную и вторую производную, тогда целевая функция становится следующейObj(t)=i=1n[gifi(xi)+12hift2(xi)]+i=1nΩ(fn)+constant Obj^{(t)}= \sum_{i=1}^n[g_if_i(x_i) + \frac 12h_if_t^2(x_i)] + \sum_{i=1}^n\Omega(f_n) + constant3. Затем удалить константу.Поскольку константа в функции не работает в процессе минимизации функции, ее можно удалить напрямуюObj(t)=i=1n[gifi(xi)+12hift2(xi)]+i=1nΩ(fn) Obj^{(t)}= \sum_{i=1}^n[g_if_i(x_i) + \frac 12h_if_t^2(x_i)] + \sum_{i=1}^n\Omega(f_n)4. Затем выполните подстановку переменных и замените переменную значением конечного узла.ftf_t, обратите внимание, что переменная является конечным узлом在这里插入图片描述

  1. Найти максимальное значение, так как при минимальном значении одномерной квадратичной функции первая производная равна 0. Применяя формулу максимального значения одномерной квадратичной функции, легко найти вес wj* каждого листового узла и его оптимальную значение в данный момент. Целевое значение Obj:

在这里插入图片描述

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


7 Стратегия генерации дерева

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

在这里插入图片描述

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


Алгоритм генерации 8 деревьев

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

  1. Во-первых, пройтись по всем возможным значениям каждого признака каждого узла;
  2. Затем для каждого признака собственные значения сортируются по размеру собственных значений и делаются кандидаты;
  3. Затем выполняется сканирование линейного поиска, чтобы найти лучшее разделенное собственное значение каждой функции в качестве кандидата;
  4. Наконец, среди лучших точек разделения всех признаков найдите лучшие точки разделения (признаки с наибольшим выигрышем после разделения и их значения).

在这里插入图片描述

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

基于此,XGBoost提出了一系列加快寻找最佳分裂点的方案,基于加权分位数略图 Weighted Quantile Sketch算法:
  • Предварительная сортировка функций + кэш: перед обучением XGBoost предварительно сортирует каждую функцию в соответствии с размером собственного значения, а затем сохраняет ее как структуру памяти квантильного эскиза.Эта структура данных памяти будет использоваться повторно для уменьшения избыточных операций.
  • Метод квантилей (гистограмма): после сортировки каждого признака в соответствии с собственным значением с использованием метода выбора метода квантилей (гистограммы) в качестве репрезентативных точек разделения признака выбирается только ограниченное количество признаков, и попытка сегментации делается оптимальной.
  • Параллельный поиск: обратите внимание, что дерево и дерево по-прежнему являются последовательными, а функции знаний параллельны. Основываясь на том факте, что каждая функция была предварительно сохранена в виде блочной структуры, XGBoost использует режим пула потоков из нескольких потоков для параллельного вычисления оптимальной точки разделения каждой функции, что не только значительно повышает скорость разделения узлов, но и также значительно облегчает адаптивное расширение крупномасштабных обучающих наборов, при этом лучше поддерживая распределенную архитектуру.

在这里插入图片描述

9 ссылок


10 дополнений

Личное представление: Ду Баокун, практикующий специалист в области конфиденциальных вычислений, руководил командой от 0 до 1, чтобы создать JD. Уровень инфраструктуры: реализует промышленное решение для федеративного обучения, которое поддерживает сверхбольшие масштабы в области маркетинга электронной коммерции, поддерживает выравнивание конфиденциальности PSI для сверхбольших выборок, защищенную модель дерева и модель нейронной сети и многие другие модели. Бизнес-уровень: бизнес-сторона добилась хорошего начала бизнеса, создала новую точку роста бизнеса и получила значительные экономические выгоды для бизнеса. Лично я предпочитаю узнавать новое и изучать технологии. Основываясь на рассмотрении полносвязного мышления и технологии планирования принятия решений, существует множество областей исследований, начиная от инженерной архитектуры, больших данных и заканчивая алгоритмами машинного обучения и алгоритмическими структурами. Приветствую студентов, которым нравятся технологии, чтобы общаться со мной, по электронной почте:baokun06@163.com