机器学习的本质:理解泛化的新观点
人工智能的主题是学习, 从简单的机器学习到深度学习, 我们始终在头疼的一个事情就是过拟合。 对于过拟合, 我们有很多说法, 过拟合对应的是机器死记硬背, 没有能够举一反三的情况。 关于什么是泛化能力, 我们管它叫机器在新数据面前的预测水平。
用一个简单的方法理解过拟合,如果你手中的数据有限,比如说星空里观测到的三个星星, 你可以想象出任何一个复杂的图形穿过那三个点,也是你的想象力丰富多彩,你就可以做出越多这样的图形。事实上,我们知道这样的想象不具备任何预测能力,如果天空中出现第四颗星,我们一定就不能确定它是否在该在的位置上。
过拟合的反面, 就是泛化, 应该说,它就是学习的本质。 否则, 整个机器学习就是一门拟合而已, 深度学习就是比较复杂的拟合。学习的最高境界,是在纷繁的现象里总结出简单的定理,比如看到大量物体运动的轨迹,总结出牛顿定律: F=ma . 但是它的预测能力几乎是无限的。学习, 本来就是在总结规律, 而不是复制数据。
然而翻开机器学习的典籍,关于泛化和过拟合的理解,却非常零碎,表面化。首先,我们回顾,我们看来自不同学派的不同观点和做法:
1, 贝叶斯学派的最简单模型: 学习是从先验到后验概率的转化, 一个好的学习算法, 最重要的事情是用最少的假设,得到对数据出现最大概率的解释 ,每多一个假设 ,整个观测成立的概率就乘以一个小于1的因子, 假设解释理论的概率迅速减少。 这个理念翻译为白话就是“如无必须, 勿添实体”。 来自贝叶斯的一个直接方法论是引入最大后验概率和正则化的概念, 贝叶斯派的核心观点是我们需要简单的模型。 模型的参数直接体现复杂度, 因此贝叶斯观点下参数多而数据少, 就是过拟合的直接原因。
2, 几何派机器学习的风险最小化: 泛化误差的来源是数据的量不够大, 新的没有见过的数据代表着看不见的额风险, 因此我们要泛化风险最小化, 如果是一个分类问题, 意味着你要找一个分类界限,叫已知的数据点离分类边界足够远, 这个想法, 就是maximum margin solution 支持向量机的源泉。
3, 统计机器学习的模型平均: 过拟合的源泉是数据量不够大而模型的参数过多,引起对于数据集的轻微变化, 模型参数剧烈变化, 从而在测试集的表现就是高方差, 训练集稍微一变,结果就变了。
那么如何抵抗过拟合的一个方法就是做平均,每个模型假设可能会犯错误, 把它们平均起来减少了模型在新数据上的方差。 比如说我们最喜欢的决策树, 我们如果把一棵树变成一片森林, 过拟合的风险大大减少, 因此我们得到随机森林。
3, 连接主义学派, 连接主义学派认为, 过拟合的风险来自于神经网络具有无与伦比的拟合能力, 那么如果要削弱过拟合的风险, 我们就加入一个东西, 叫dropout, 我们在训练的时候随机的筛选掉一些连接, 然后如果网络还能做正确分类他就是具有鲁棒性, 这就是连接主义的做法。