Model Enhancement

Emsemble Learning

  • 集成学习:训练多个基模型,并将其组合起来,以达到更好的 预测能力、泛化能力、稳健性
  • base learner:基模型,基于独立样本建立的、一组 具有相同形式的模型中的一个
  • 组合预测模型:由基模型组合,即集成学习最终习得模型
  • 源于样本均值抽样分布思路

    • $var(\bar{X}) = \sigma^2 / n$
    • 基于独立样本,建立一组具有相同形式的基模型
    • 预测由这组模型共同参与
    • 组合预测模型稳健性更高,类似于样本均值抽样分布方差 更小
  • 关键在于

    • 获得多个独立样本的方法
    • 组合多个模型的方法

分类

  • homogenous ensemble:同源集成,基学习器属于同一类型

    • bagging
    • boosting
  • heterogenous ensemble:异源集成,基学习器不一定属于同 一类型

    • [genralization] stacking
Target Data parallel Classifier Aggregation
Bagging 减少方差 基于boostrap随机抽样,抗异常值、噪声 模型间并行 同源不相关基学习器,一般是树 分类:投票、回归:平均
Boosting 减少偏差 基于误分分步 模型间串行 同源若学习器 加权投票
Stacking 减少方差、偏差 K折交叉验证数据、基学习器输出 层内模型并行、层间串行 异质强学习器 元学习器
  • 以上都是指原始版本、主要用途

Boosting

提升方法:将弱可学习算法提升为强可学习算法的组合元算法

  • 属于加法模型:即基函数的线性组合
  • 各模型之间存在依赖关系

boosting

分类Boosting

  • 依次学习多个基分类器
  • 每个基分类器依之前分类结果调整权重
  • 堆叠多个分类器提高分类准确率
  • boosting通过组合多个误分率略好于随机猜测的分类器得到 误分率较小的分类器,因此boosting适合这两类问题

    • 个体之间难度有很大不同,boosting能够更加关注较难的 个体
    • 学习器对训练集敏感,boosting驱使学习器在趋同的、 “较难”的分布上学习,此时boosting就和bagging一样能够 使得模型更加稳健(但原理不同)
  • boosting能减小预测方差、偏差、过拟合

    • 直觉上,使用在不同的样本上训练的基学习器加权组合, 本身就能减小学习器的随机变动

    • 基于同样的理由,boosting同时也能减小偏差

    • 过拟合对集成学习有些时候有正面效果,其带来多样性, 使模型泛化能力更好,前提是样本两足够大,否则小样本 仍然无法提供多样性

回归Boosting

  • 依次训练多个基学习器
  • 每个基学习器以之前学习器拟合残差为目标
  • 堆叠多个学习器减少整体损失
  • boosting组合模型整体损失(结构化风险)

    • $l$:损失函数
    • $f_t$:基学习器
    • $\Omega(f_t)$:单个基学习器的复杂度罚
    • $N, M$:样本数目、学习器数目
  • 基学习器损失

最速下降法

使用线性函数拟合$l(y_i, \hat y_i^{(t)})$

  • $gi = \partial{\hat y} l(y_i, \hat y^{t-1})$
  • 一次函数没有极值
  • 将所有样本损失视为向量(学习器权重整体施加),则负梯度 方向损失下降最快,考虑使用负梯度作为伪残差

Newton法

使用二次函数拟合$l(y_i, \hat y_i^{(t)}$

  • $hi = \partial^2{\hat y} l(y_i, \hat y^{t-1})$
  • 二次函数本身有极值
  • 可以结合复杂度罚综合考虑,使得每个基学习器损失达到最小

Boosting&Bagging

  • 基分类器足够简单时,boosting表现均显著好于bagging

    • 仅靠单次决策(单个属性、属性组合)分类
  • 使用C4.5树作为基分类器时,boosting仍然具有优势,但是不够 有说服力

  • 结论来自于Experiments with a New Boosting Algorithm

Boosting&Bagging

  • 基分类器足够简单时,boosting表现均显著好于bagging

    • 仅靠单次决策(单个属性、属性组合)分类
  • 使用C4.5树作为基分类器时,boosting仍然具有优势,但是不够 有说服力

  • 结论来自于Experiments with a New Boosting Algorithm

原理

probably approximately correct:概率近似正确,在概率近似 正确学习的框架中

  • strongly learnable:强可学习,一个概念(类),如果存在 一个多项式的学习算法能够学习它,并且正确率很高,那么 就称为这个概念是强可学习的

  • weakly learnable:弱可学习,一个概念(类),如果存在 一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测 略好,称此概念为弱可学习的

  • Schapire证明:在PAC框架下强可学习和弱可学习是等价的

具体措施

  • 弱学习算法要比强学习算法更容易寻找,所以具体实施提升就是 需要解决的问题
  • 改变训练数据权值、概率分布的方法

    • 提高分类错误样本权值、降低分类正确样本权值
  • 将弱学习器组合成强学习器的方法

    • competeing
    • simple majority voting
    • weighted majority voting
    • confidence-based weighting

学习器组合方式

  • 很多模型无法直接组合,只能组合预测结果
  • simple majority voting/simple average:简单平均

    • $h_k$:第k个预测
  • weighted majority voting/weighted average:加权平均

    • $w_k$:第k个预测权重,对分类器可以是准确率
  • competing voting/largest:使用效果最优者

  • confidence based weighted:基于置信度加权

    • $e_k$:第k个模型损失

Meta Learning

元学习:自动学习关于关于机器学习的元数据的机器学习子领域

  • 元学习主要目标:使用学习到元数据解释,自动学习如何 flexible的解决学习问题,借此提升现有学习算法性能、 学习新的学习算法,即学习学习

  • 学习算法灵活性即可迁移性,非常重要

    • 学习算法往往基于某个具体、假象的数据集,有偏
    • 学习问题、学习算法有效性之间的关系没有完全明白,对 学习算法的应用有极大限制

要素

  • 元学习系统必须包含子学习系统
  • 学习经验通过提取元知识获得经验,元知识可以在先前单个 数据集,或不同的领域中获得
  • 学习bias(影响用于模型选择的前提)必须动态选择
    • declarative bias:声明性偏见,确定假设空间的形式 ,影响搜索空间的大小
      • 如:只允许线性模型
    • procedural bias:过程性偏见,确定模型的优先级
      • 如:简单模型更好

Recurrent Neural networks

RNN:self-referential RNN理论上可以通过反向传播学习到, 和反向传播完全不同的权值调整算法

Meta Reinforcement Learning

MetaRL:RL智能体目标是最大化奖励,其通过不断提升自己的学习 算法来加速获取奖励,这也涉及到自我指涉

Additional Model

加法模型:将模型视为多个基模型加和而来

  • $b(x;\theta_m)$:基函数
  • $\theta_m$:基函数的参数
  • $\beta_m$:基函数的系数
  • 则相应风险极小化策略

    • $L(y, f(x))$:损失函数

Forward Stagewise Algorithm

前向分步算法:从前往后,每步只学习加法模型中一个基函数 及其系数,逐步逼近优化目标函数,简化优化复杂度

  • 即每步只求解优化

    • $\hat f_m$:前m轮基函数预测值加和

步骤

  • 输入:训练数据集$T={(x_1,y_1), \cdots, (x_N,y_N)}$,损失 函数$L(y,f(x))$,基函数集${b(x;\theta)}$
  • 输出:加法模型$f(x)$
  • 初始化$f_0(x)=0$

  • 对$m=1,2,\cdots,M$,加法模型中M个基函数

    • 极小化损失函数得到参数$\beta_m, \theta_m$

    • 更新

  • 得到加法模型

AdaBoost&前向分步算法

AdaBoost(基分类器loss使用分类误差率)是前向分步算法的特例, 是由基本分类器组成的加法模型,损失函数是指数函数

  • 基函数为基本分类器时加法模型等价于AdaBoost的最终分类器 $f(x) = \sum_{m=1}^M \alpha_m G_m(x)$

  • 前向分步算法的损失函数为指数函数$L(y,f(x))=exp(-yf(x))$ 时,学习的具体操作等价于AdaBoost算法具体操作

    • 假设经过m-1轮迭代,前向分步算法已经得到

    • 经过第m迭代得到$\alpha_m, G_m(x), f_m(x)$,其中

      • $\bar w{m,i}=exp(-y_i f{m-1}(x_i))$:不依赖 $\alpha, G$
    • $\forall \alpha > 0$,使得损失最小应该有 (提出$\alpha$)

      此分类器$G_m^{*}$即为使得第m轮加权训练误差最小分类器 ,即AdaBoost算法的基本分类器

    • 又根据

      带入$G_m^{*}$,对$\alpha$求导置0,求得极小值为

      • $w_{m,i}, Z_M$同AdaBoost中

      即为AdaBoost中$\alpha_m$

    • 对权值更新有

      与AdaBoost权值更新只相差规范化因子$Z_M$

Author

UBeaRLy

Posted on

2019-07-21

Updated on

2019-07-21

Licensed under

Comments