在助推中,为什么学习者“弱”?


28

另请参阅有关stats.SE的类似问题

AdaBoostLPBoost之类的增强算法中,从Wikipedia已知,要合并的“弱”学习者只需要表现好于有用的机会即可。

它使用的分类器可能很弱(即显示出很大的错误率),但是只要它们的性能不是随机的(二进制分类的错误率是0.5),它们就会改善最终模型。即使错误率高于随机分类器期望值的分类器也将是有用的,因为它们在分类器的最终线性组合中将具有负系数,因此表现得像它们的逆。

  • 与强者相比,弱者有什么好处?(例如,为什么不采用“强”的学习方法来提高学习能力呢?

  • 弱者有某种“最佳”的力量吗?这与合奏中的学习人数有关吗?

是否有任何理论来支持这些问题的答案?


弱小的学习者还避免过分适应训练数据
Aman Deep Gautam 2015年

Answers:


15

因此,boosting是一种学习算法,它可以使用另一种算法作为子例程来生成高精度预测,而另一种算法可以有效地生成假设(通过逆多项式),其假设要比随机猜测好一点。

它的主要优点是速度。

当Schapire在1990年提出时,这是一个突破,因为它表明生成误差略小于1/2的多项式时间学习器可以转化为生成误差很小的多项式时间学习器。

因此,支持您的问题的理论是“弱学习能力”pdf),他基本上表明“强”学习和“弱”学习是等效的。

也许原始问题的答案是:“当您可以更便宜地构建弱者时,就没有必要培养强者了”。


从相对较新的论文中,有“关于弱学习性和线性可分离性的等效性:新的松弛和有效的提升算法”pdf),我不理解,但似乎相关,并且受过高等教育的人可能会感兴趣:)


1
+1个不错的参考。所以也许答案是:“当您可以更便宜地构建弱者时,就没有必要培养强者了”?
tdc 2012年

是的,听起来像-我更新了答案!另外,如果我正确理解的话,这也不取决于弱者的能力-他们只比随机学习者“稍微”好一点。
andreister 2012年

1
我认为你们两个人真正的意思是:仅通过组合许多廉价的弱势学习者就可以达到相似甚至更好的技能,那就没有必要构造昂贵的强大学习者了。确实,如果强大学习者的技能远高于弱学习者的技能,那么我完全可以看出构建强大学习者的意义……
Antoine

9

我将通过更直观的解释来解决过拟合问题(尚未提及)。您的第一个问题是:

与强者相比,弱者有什么好处?(例如,为什么不采用“强”的学习方法来提高学习能力呢?

据我了解,主要原因是:

  • 速度,在其他答案中都很好地涵盖了;
  • 准确性提高:如果您已经有一个强大的学习者,那么提升的好处就不那么重要了;
  • 如您所料,避免过度拟合。这样考虑:

Boosting所做的是将假设空间中的许多不同假设组合在一起,以便最终得出更好的最终假设。因此,提振的强大力量来自于各种假设相结合的多样性

如果我们使用一个强大的学习者,则这种多样性趋于减少:每次迭代之后,不会有很多错误(因为模型很复杂),这不会使新的假设有太大的改变。在非常相似的假设下,整体将与单个复杂模型非常相似,而后者又会过度拟合!


4
这是真正的答案。
马修·德鲁里

6

在提升中,我们主要使用弱势学习者,因为与强势学习者相比,他们训练得更快。想一想。如果我使用多层神经网络作为学习者,那么我需要训练很多人。另一方面,决策树可能要快得多,所以我可以训练很多决策树。

假设我有100个学习者。我在100秒内训练NN,在10秒内训练决策树。我第一次使用NN进行增强将花费100 * 100秒,而第二次使用决策树进行增强将花费100 * 10秒。

就是说,我看过一些文章,这些文章利用了强大的学习者来推动学习。但是在我看来,在这些问题中,优秀的学习者很快就解决了。

我尝试使用Weka在KDD99入侵检测数据集(超过4百万)上训练MLP。我的机器花了72个小时以上。但是增强(带有决策树的AdaBoostM1-决策树桩)仅花费了3个小时。在这个问题中,很明显,我不能与能力强的学习者一起使用Boosting,因为学习者需要太多时间。


1
“我看过一些文章,这些文章利用强大的学习者来提升自己”-有参考文献吗?
tdc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.