六、 DART booster

  1. GBDT 中,越早期加入的子树越重要;越后期加入的子树越不重要。

  2. DART booster 原理:为了缓解过拟合,采用dropout 技术,随机丢弃一些树。

  3. 由于引入了随机性,因此dartgbtree 有以下的不同:

    • 训练速度更慢
    • 早停不稳定
  4. DART booster 也是使用与提升树相同的前向分步算法

    • 六、 DART booster - 图1 步,假设随机丢弃 六、 DART booster - 图2 棵,被丢弃的树的下标为集合 六、 DART booster - 图3

      六、 DART booster - 图4 ,第 六、 DART booster - 图5 棵树为 六、 DART booster - 图6 。则目标函数为:六、 DART booster - 图7

    • 由于dropout 在设定目标函数时引入了随机丢弃,因此如果直接引入 六、 DART booster - 图8,则会引起超调。因此引入缩放因子,这称作为归一化:六、 DART booster - 图9

      • 其中 六、 DART booster - 图10 为新的子树与丢弃的子树的权重之比, 六、 DART booster - 图11 为修正因子。

      • 六、 DART booster - 图12 。采用归一化的原因是:六、 DART booster - 图13 试图缩小 六、 DART booster - 图14 到目标之间的 gap; 而 六、 DART booster - 图15 也会试图缩小 六、 DART booster - 图16 到目标之间的 gap

        如果同时引入随机丢弃的子树集合 六、 DART booster - 图17 ,以及新的子树 六、 DART booster - 图18 ,则会引起超调。

      • 有两种归一化策略:

        • 'tree': 新加入的子树具有和每个丢弃的子树一样的权重,假设都是都是 六、 DART booster - 图19

          此时 六、 DART booster - 图20,则有:

          六、 DART booster - 图21

          要想缓解超调,则应该使得 六、 DART booster - 图22 ,则有:六、 DART booster - 图23

        • 'forest':新加入的子树的权重等于丢弃的子树的权重之和。假设被丢弃的子树权重都是 六、 DART booster - 图24, 则此时 六、 DART booster - 图25,则有:

          六、 DART booster - 图26

          要想缓解超调,则应该使得 六、 DART booster - 图27 ,则有:六、 DART booster - 图28