直觉上来讲,我们会觉得一个机器学习模型的准确率要很高才有用。如果有一个模型声称它能保证对于数据的任何分布,它都能保证达到 51% 的正确率,我会觉得它弱爆了,并不会想用它来解决问题(除非我在考试,题目是选择题,并且只有两个选项)。
我们今天的节目就和这类听起来很“弱”的模型有关。在机器学习中,它们被称为”弱学习器“。机器学习理论中曾有这样的问题,如果我们有办法不断的产生不同的”弱学习器“,并可以”聪明地“把它们拼接起来,有没有可能可以让预测的准确率一路上升,甚至无限接近 100% 呢?Boosting 算法就是在这个背景下产生的。我们在这一期节目中聊了什么是强学习和弱学习器、AdaBoost 算法的策略和 Boosting 的思想在现实世界和机器学习问题中的应用。
提到的一些内容
张家鹏个人主页AdaBoost 的作者之一 Robert Schapire 写了 Explaining AdaBoost 这篇论文,
其中详述了我们在节目中讨论到的强弱学习器的定义和 AdaBoost 算法的 Margin 理论。
张家鹏提到了一个股市交易中强弱学习器的例子。有趣的是,这个例子曾真实发生过。Kickstarter 的创始人 Perry Chen 在接受播客节目 How I Built This 的采访时曾经提到,
他之前做过的一份工作的职责就是做一个用于股票交易的“弱学习器”。
Perry Chen 的采访音频版本可以在这个链接听到,
文字版本请点击这里。
张家鹏还和我们分享了 Boosting 在差分隐私(differential privacy)上的应用,具体的工作可以参见 Dwork, C., Rothblum, G.N. and Vadhan, S., 2010。
我们在节目中提到了用 AdaBoost 解决人脸检测的算法 Viola-Jones 目标检测框架。节目的最后我们还提到了目前最流行的 Gradient Boosting 实现 XGBoost。