原文

https://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf
华盛顿大学的 Introduction to Boosted Trees. Tianqi Chen.

本文结合该论文和网上其他资料,在自己理解之后,书写下来~

监督学习

  • Objective function(目标函数):
    Boosted Trees简介【翻译+自己的理解】

  • 训练损失:一般有两种

    • 平方损失函数:(yiy^i)2(y_i - \hat y_i)^2
    • 逻辑损失函数:yiln(1+ey^i)+(1yi)ln(1+ey^i)y_i\ln {(1+e^{-\hat y_i}) }+ (1-y_i) \ln{(1+e^{\hat y_i})}
  • 正则化损失:

    • L1正则化(Lasso): λw1\lambda||w||_1
    • L2正则化:λw2\lambda ||w||^2

Regression Tree and Ensemble

Regression Tree 回归树(GART)

  • 决策的原则类似于决策树
  • 但是叶子节点上包含有分数
    Boosted Trees简介【翻译+自己的理解】

Regression Trees Ensemble 回归树集成

  • 将多个回归树的结果求和,就是回归树集成
    Boosted Trees简介【翻译+自己的理解】

  • 树集合的方法有很多种
    例如:GBM(gradient boosting machine 梯度提升机器)random forest 随机森林

  • 输入放缩固定,所以不需要在特征正则化上太小心。

假设我们使用K个树,那么有
y^i=kKfi(xi)fiF\hat y_i = \sum_{k}^{K}{f_i(xi)} \\ f_i \in F

  • 其中F是所有树的集合(其实是上面的图片所示的数学表达而已

  • 回归树不只能做回归,还可以做排序,分类… 主要取决于对应的目标函数。

Gradient boosting 梯度提升

  • 这里不能直接使用SGD,因为寻找的f是树,而不是向量。所以使用 Additive Training (Boosting)

  • 每次在原来的基础上,加上一个新的函数,构成第t轮下的数值。
    Boosted Trees简介【翻译+自己的理解】

  • 那么推导到对应的目标函数,也就是找到对应的树,让这个整个数值最小。(训练损失也要小,模型损失也要小)

Boosted Trees简介【翻译+自己的理解】

  • 使用泰勒展开,g是一阶导,h是二阶导。偏移值是ft(x)f_t(x)
    下图最后一行的例子,只是说明了在损失函数是平方函数时候的情况。
    Boosted Trees简介【翻译+自己的理解】

模型复杂度

之前曾考虑过,除了训练的复杂度之外,还需要考虑模型的损失。

  • 下面是其中一种的定义:(再引入了两个超参数)
    • T:叶子数量
    • w: 回归树对应叶子节点的得分
      Boosted Trees简介【翻译+自己的理解】

结构得分

  • I:被选的树的集合

  • 然后给出下面的关于G和H的定义

  • 如果树的结构已经确定,那么对应的最优的权重也可以算出来。
    Boosted Trees简介【翻译+自己的理解】

  • 下面会用到一种思维,假设所有的树一开始都是一棵树。之后,再根据对应的条件节点来做分割。

  • L表示的左树,R表示的是右树。
    Boosted Trees简介【翻译+自己的理解】

相关文章: