ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Task 08

2021-11-08 00:00:59  阅读:169  来源: 互联网

标签:Task partial 21 梯度 08 cfrac Fi sum


Task 08

侧边栏练习

【练习7】请写出 L ( m ) ( F i ( m ) ) L^{(m)}(F_i^{(m)}) L(m)(Fi(m)​)在 F i ( m ) = F i ( m − 1 ) F_i^{(m)} = F_i^{(m-1)} Fi(m)​=Fi(m−1)​处的二阶展开。
L ( m ) ( F i ( m ) ) = γ T + 1 2 λ ∑ j = 1 T w j 2 + ∑ i = 1 N [ ∂ L ∂ h i ∣ h i = 0 h i + ∂ 2 L ∂ h i 2 ∣ h i = 0 h i 2 ] + c o n s t a n t = γ T + 1 2 λ ∑ j = 1 T w j 2 + ∑ i = 1 N [ ∂ L ∂ F i ( m − 1 ) ∣ F i ( m ) = F i ( m − 1 ) ( F i ( m ) − F i ( m − 1 ) ) + ∂ 2 L ∂ ( F i ( m − 1 ) ) 2 ∣ F i ( m ) = F i ( m − 1 ) ( F i ( m ) − F i ( m − 1 ) ) 2 ] + c o n s t a n t \begin{aligned} L^{(m)}(F_i^{(m)}) &= \gamma T + \cfrac{1}{2} \lambda \sum_{j=1}^T w_j^2 + \sum_{i=1}^N [\cfrac{\partial L}{\partial h_i}|_{h_i=0}h_i + \cfrac{\partial^2 L}{\partial h_i^2}|_{h_i=0} h_i^2] + constant \\ &= \gamma T + \cfrac{1}{2} \lambda \sum_{j=1}^T w_j^2 + \sum_{i=1}^N [\cfrac{\partial L}{\partial F_i^{(m-1)}}|_{F_i^{(m)} = F_i^{(m-1)}}(F_i^{(m)} - F_i^{(m-1)}) + \cfrac{\partial^2 L}{\partial (F_i^{(m-1)})^2}|_{F_i^{(m)} = F_i^{(m-1)}} (F_i^{(m)} - F_i^{(m-1)})^2 ] + constant \end{aligned} L(m)(Fi(m)​)​=γT+21​λj=1∑T​wj2​+i=1∑N​[∂hi​∂L​∣hi​=0​hi​+∂hi2​∂2L​∣hi​=0​hi2​]+constant=γT+21​λj=1∑T​wj2​+i=1∑N​[∂Fi(m−1)​∂L​∣Fi(m)​=Fi(m−1)​​(Fi(m)​−Fi(m−1)​)+∂(Fi(m−1)​)2∂2L​∣Fi(m)​=Fi(m−1)​​(Fi(m)​−Fi(m−1)​)2]+constant​

其中constant为 ∑ i = 1 N L ( y i , F i ( m − 1 ) ) \sum_{i=1}^N L(y_i, F_i^{(m-1)}) ∑i=1N​L(yi​,Fi(m−1)​)​.

【练习8】试说明不将损失函数展开至更高阶的原因。

展开到更高,所需要的计算量也就会更大,为了平衡准确率以及计算量,我们一般选择展开到二阶。

【练习9】请写出平方损失下的近似损失。

假设损失函数为:
L ( y , y ^ ) = 1 2 ∑ i = 1 N ( y i − y ^ i ) 2 L(y, \hat{y}) = \cfrac{1}{2} \sum_{i=1}^N (y_i - \hat{y}_i)^2 L(y,y^​)=21​i=1∑N​(yi​−y^​i​)2

令 h i = y i − y ^ i h_i = y_i - \hat{y}_i hi​=yi​−y^​i​​, 则损失函数 L ( y , y ^ ) L(y, \hat{y}) L(y,y^​)​的一节导数, 二阶导数分别为 p i = h i p_i = h_i pi​=hi​​​, q i = 1 q_i = 1 qi​=1​

L ~ ( m ) ( m ) = γ T + 1 2 ∑ j = 1 T w j 2 + ∑ i = 1 N [ p i h i + 1 2 q i h i 2 ] = γ T + 1 2 λ ∑ j = 1 T w j 2 + ∑ i = 1 N [ h i 2 + 1 2 h i 2 ] = γ T + 1 2 λ ∑ j = 1 T w j 2 + 3 2 ∑ i = 1 N h i 2 = γ T + 1 2 λ ∑ j = 1 T w j 2 + 3 2 ∑ j = 1 T [ ( ∑ i ∈ I j 1 ) w i 2 ] = γ T + 1 2 ∑ j = 1 T [ ( λ + 3 ∑ i ∈ I j 1 ) w i 2 ] \begin{aligned} \tilde{L}^{(m)}(\textbf{m}) &= \gamma T + \cfrac{1}{2} \sum_{j=1}^T w_j^2 + \sum_{i=1}^N [p_i h_i + \cfrac{1}{2} q_i h_i^2] \\ &= \gamma T + \cfrac{1}{2} \lambda \sum_{j=1}^T w_j^2 + \sum_{i=1}^N[h_i^2 + \cfrac{1}{2} h_i^2] \\ &= \gamma T + \cfrac{1}{2} \lambda \sum_{j=1}^T w_j^2 + \cfrac{3}{2} \sum_{i=1}^Nh_i^2 \\ &= \gamma T + \cfrac{1}{2} \lambda \sum_{j=1}^T w_j^2 + \cfrac{3}{2} \sum_{j=1}^T[(\sum_{i \in I_j} 1) w_i^2] \\ &= \gamma T + \cfrac{1}{2} \sum_{j=1}^T [(\lambda +3 \sum_{i \in I_j} 1)w_i^2] \end{aligned} L~(m)(m)​=γT+21​j=1∑T​wj2​+i=1∑N​[pi​hi​+21​qi​hi2​]=γT+21​λj=1∑T​wj2​+i=1∑N​[hi2​+21​hi2​]=γT+21​λj=1∑T​wj2​+23​i=1∑N​hi2​=γT+21​λj=1∑T​wj2​+23​j=1∑T​[(i∈Ij​∑​1)wi2​]=γT+21​j=1∑T​[(λ+3i∈Ij​∑​1)wi2​]​

【练习10】在下列的三个损失函数 L ( y , y ^ ) L(y, \hat{y}) L(y,y^​)中,请选出一个不应作为XGBoost损失的函数并说明理由。

  • Root Absolute Error: ∣ y − y ^ ∣ \sqrt{|y - \hat{y}|} ∣y−y^​∣
  • Squared Log Error: 1 2 [ log ⁡ ( y + 1 y ^ + 1 ) ] 2 \cfrac{1}{2}[\log (\cfrac{y + 1}{\hat{y} + 1})]^2 21​[log(y^​+1y+1​)]2​
  • Pseudo Huber Error: δ 2 ( 1 + ( y − y ^ δ ) 2 − 1 ) \delta^2(\sqrt{1 + (\cfrac{y - \hat{y}}{\delta})^2} - 1) δ2(1+(δy−y^​​)2 ​−1)

第二个。因为第二个的损失函数关于 y − y ^ y - \hat{y} y−y^​​的二阶导数是关于 y ^ \hat{y} y^​的函数,而是说存在有零点的。

【练习11】请求出顶点最大度(即最多邻居数量)为 d d d​的无向图在最差和最好情况下需要多少种着色数,同时请构造对应的例子。

不会无向图… 学了来补

【练习12】在最差情况下LightGBM会生成几族互斥特征?这种情况的发生需要满足什么条件?
也不会。。。

知识回顾

1\ GBDT和梯度下降方法有什么联系?

GBDT 的参数的更新使用的时梯度下降法。
对损失函数关于参数求导,得到梯度,利用梯度下降法的更新公式来更新参数,使得损失函数朝着梯度的方向最速下降。

2、 请叙述GBDT用于分类问题的算法流程。

(a) 建立M颗决策树(迭代M次
(b) 表示对函数估计值F(x) 进行losgistic变换, 进行softmax归一化
© for m in 1… M
1、计算属于第k类的概率为 e F k i ∑ c = 1 K e F c i \cfrac{e^{F_{ki}}}{\sum_{c=1}^K e^{F_{ci}}} ∑c=1K​eFci​eFki​​,
2、令 y i = [ y 1 i , ⋯   , y K i ] \textbf{y}_i = [y_{1i}, \cdots, y_{Ki}] yi​=[y1i​,⋯,yKi​]为第i个样本的类别独热编码,记 F i = [ F 1 i , ⋯   , F K i ] \textbf{F}_i = [F_{1i}, \cdots, F_{Ki}] Fi​=[F1i​,⋯,FKi​]
3、对每个样本计算损失:
L ( y i , F i ) = − ∑ c = 1 K y c i log ⁡ e F c i ∑ c ~ = 1 K e F c ~ i L(\textbf{y}_i, \textbf{F}_i) = - \sum_{c=1}^K y_{ci} \log \cfrac{e^{F_{ci}}}{\sum_{\tilde{c}=1^K e^{F_{\tilde{c}i}}}} L(yi​,Fi​)=−c=1∑K​yci​log∑c~=1KeFc~i​​eFci​​
​ 4、对 F i ∗ ( m ) F_i^{*(m)} Fi∗(m)​进行梯度更新

5、 $h_i = F_i^{(m)} - F_i^{(m-1)}$,最后更新的学习学习器为$F_i^{(m-1)} + \eta h_i^{*(m)}$为更新之后的学习器​

(d) 将 F i ( M ) F_i^{(M)} Fi(M)​作为最终的分类器输出

3、 XGBoost和GBDT树有何异同?(可从目标损失、近似方法、分裂依据等方面考虑)

目标损失:
GBDT: 使用的是预测值和真实值之间的差距度量的损失函数
G ( w ) = ∑ i = 1 N L ( y i , F i ( m ) ) = ∑ i = 1 N L ( y i , F i ( m − 1 ) + w i ) \begin{aligned} G(\textbf{w}) &= \sum_{i=1}^N L(y_i, F_i^{(m)}) \\ &= \sum_{i=1}^N L(y_i, F_i^{(m-1)} + w_i) \end{aligned} G(w)​=i=1∑N​L(yi​,Fi(m)​)=i=1∑N​L(yi​,Fi(m−1)​+wi​)​
其中 w i w_i wi​​为我们要拟合的一颗树,这棵树使得 F i ( m − 1 ) + h m ( X i ) F_i^{(m-1)} + h_m(X_i) Fi(m−1)​+hm​(Xi​)​与 y i y_i yi​之间的损失尽可能小。

XGBoost: 损失函数 + 正则项
L ( m ) = γ T + 1 2 λ ∑ j = 1 T w j 2 + ∑ i = 1 N L ( y i , F i ( m ) ) L^{(m)} = \gamma T + \cfrac{1}{2} \lambda \sum_{j=1}^T w_j^2 + \sum_{i=1}^N L(y_i, F_i^{(m)}) L(m)=γT+21​λj=1∑T​wj2​+i=1∑N​L(yi​,Fi(m)​)

其中损失函数 L ( y i , F i ( m ) ) L(y_i, F_i^{(m)}) L(yi​,Fi(m)​)一般为我们定义的一个二阶导数恒为正的损失函数.

近似方法:
GBDT: 使用梯度下降来更新参数,即利用泰勒展开式的一阶导数来对目标函数进行拟合。
XGBoost: 使用一阶导数和二阶导数来对目标函数进行拟合,其展开式为:
$$
\begin{aligned}
L^{(m)}(\textbf{h}) &=
\gamma T + \cfrac{1}{2} \lambda \sum_{j=1}^T w_j^2

  • \sum_{i=1}^N[
    \cfrac{\partial L}{\partial h_i} |_{hi=0} h_i
  • \cfrac{1}{2} \cfrac{\partial^2L}{\partial h_i^2} |_{h_i=0} + constant
    ]
    \end{aligned}
    $$

其中 c o n s t a n t = ∑ i = 1 N L ( y i , F i ( m − 1 ) ) constant = \sum_{i=1}^N L(y_i, F_i^{(m-1)}) constant=∑i=1N​L(yi​,Fi(m−1)​)​

分裂依据:

GBDT: 按照信息增益或者CART树的gini指数来进行分裂
XGBoost: 将损失函数作为信息增益的另一种表现形式,对所有的特征,分别找到对应的分裂节点,将使得损失函数下降最大的分裂节点,以及分裂节点所对应的特征,作为我们用于分裂的特征和节点。

4\ 请叙述LightGBM中GOSS和EFB的作用及算法流程。

GOSS作用:
减少只具有小梯度的数据实例,便于在计算信息增益的时候, 只利用高梯度的数据. 这比XGBoost遍历所有特征值少了不少时间和空间上的开销.

GOSS算法流程
(a) 输入训练数据, 迭代的次数, 对大梯度数据采样的比例a,对小梯度数据采样的比例b, 定义损失函数
(b) i代表迭代次数, 从1 到 d开始迭代
对训练样本的梯度的绝对值进行降序排序
对降序后的结果选取钱a * 100%的样本生成一个大梯度样本点的子集
对剩下的集合(1-a) * 100% 的样本,随机的选取 1 − a b \cfrac{1-a}{b} b1−a​​ 个样本点,生成一个小梯度样本点的集合
将大梯度样本和采样的梯度样本合并
将小梯度样本乘上一个权重系数
使用上述的采样样本,学习一个新的学习器
直到 步骤达到d,或者收敛为止
EFB作用:
将许多互斥的特征绑定为一个特征, 这样达到了降维的目的.

EFB算法流程:
(a) 构造一个加权无向图,顶点是特征,变有权重,其权重与两个特征见冲突相关
(b) 根据节点的度进行降序排序,度越大,与其它特征的冲突越大
© 遍历每个特征,将它分配给先右的特征组合,或者构建一个新的特征组合, 来使得总体冲突最小


最后,代码我又没有写…我之后补上

标签:Task,partial,21,梯度,08,cfrac,Fi,sum
来源: https://blog.csdn.net/qq_35167821/article/details/121199630

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有