Hinton Neural Network课程笔记10a:融合模型Ensemble, Boosting, Bagging

来源:互联网 发布:蛤蟆吸取寿命知乎 编辑:程序博客网 时间:2024/05/02 02:54

课程简介

Geoffrey Hinton 2012年在coursera上开的网课:Neural Networks for Machine Learning。

课程笔记

1. 模型融合的原因

1.1. bias-variance trade-off

当模型过于复杂而数据量不足的时候,就会出现过拟合问题。即学习了很多训练集内部的噪声等内容,在测试集结果不好。通过模型之间取均值可以较好的解决这个问题,尤其是模型预测的结果很不相同的时候。
对于回归问题,误差中分为bias与variance,其中bias是因为模型本身能力不足,学得的与实际有偏差(bias);而variance是因为模型本身能力过大,学习到了很多误差,variance的名字是因为每次训练模型都会得到不同的局部最优点,变化(variance)很大。通过训练多个高复杂度的模型然后取均值,可以很好的消除variance,而保留其低bias的特质。(个人理解是因为variance有正有负,所以均值之后期望为0)。

1.2. 融合模型有助于减少variance

这有几个前提:
1. 误差函数具有平方和的形式。(拓展的讲可以是任意凸函数)
2. 是针对整个大数据集而言,而不是某个具体的点。
3. 比较的是任意选取一个模型或者选取模型的平均值。
4. 各个模型之间相差较大。
公式部分如下图,简单的说就是利用了二次函数的凸函数性质,函数值的期望大于期望的函数值。
公式
反例就是log函数,如下图:
公式

2. 使得模型不同的方法

2.1. 改变模型

  1. 依靠学习方法得到不同的局部最优点。
  2. 尝试不同的模型:SVM,决策树,高斯混合等。
  3. 改变神经模型的超参数:隐层节点个数,隐层层数,节点的类型,正则项系数,不同的学习算法。

2.2. 改变训练集

  1. Bagging:通过选取不同的训练数据集的子集进行训练,可以重复的随机选取。随机森林就是决策树使用Bagging。Bagging用于神经网络显得过于奢侈。
  2. Boosting: 训练一系列的低复杂度的模型,每次训练集内部样本的权重不同。每次预测错误的样本的权重增加,反之减少。这可以使得训练资源更集中在较难问题上。
0 0
原创粉丝点击