个人理解泛化就是让机器具有举一反三的能力
机器学习(深度学习)的根本问题是优化和泛化之间的对立。
泛化
优化(optimization)是指调节模型以在训练数据上得到最佳性能(即机器学习中的学习),而泛化(generalization)是指训练好的模型在从未见过的数据上的性能好坏。
机器学习的目的当然是得到良好的泛化,但是无法控制泛化,只能基于训练数据调节模型。
理解
1.泛化能力最直接的定义是训练数据和真实数据间的差异,训练模型的目地是要模型在完全陌生的数据上进行测试的;
2.泛化能力还可以看成模型的稀疏性。正如奥卡姆的剪刀指出的,面对不同的解释时,最简单的解释是最好的解释。在机器学习中,具有泛化能力的模型中应该有很多参数是接近0的。而在深度学习中,则是待优化的矩阵应该对稀疏性有偏好性。
3.泛化能力的第三种解释是生成模型中的高保真能力。具有泛化能力的模型应在其每个抽象层次具有重构特征的能力。
4.第四种解释是模型能够有效的忽视琐碎的特征,或者说在无关的变化下都能找到相同的特征。
5.泛化能力还可以看成模型的信息压缩能力。
这里涉及到解释为什么深度学习有效的一种假说,信息瓶颈(information bottleneck),说的是一个模型对特征进行压缩(降维)的能力越强,其就越更大的可能性做出准确的分类。信息压缩能力可以概括上述的四种关于泛化能力的解释,稀疏的模型因其结构而完成了信息的压缩,生成能力强,泛化误差低的模型因信息压缩而可能,而忽略无关特征是信息压缩的副产品。
6.理解泛化能力的最后一种角度是风险最小化。
这是从博弈论的角度来看,泛化能力强的模型能尽可能降低自己在真实环境中遇到意外的风险,因此会在内部产生对未知特征的预警机制,并提前做好应对预案。这是一种很抽象的也不那么精确的解释,但随着技术的进步,人们会找出在该解释下进行模型泛化能力的量化评价方法。
判断
用什么样的标准来判断一个模型的泛化是比较好的,还是比较差的呢?
在机器学习表现不佳的原因分为过拟合和欠拟合
过拟合
在训练数据上表现良好,在未知数据上表现差
欠拟合
在训练数据和未知数据上表现都很差
而只有模型在训练数据集和测试数据集得分都比较高的情况下,才认为模型对数据拟合的程度刚刚好,同时泛化的表现也会更出色
机器学习中的逼近目标函数过程
监督式机器学习通常理解为逼近一个目标函数(f)(f),此函数映射输入变量(X)到输出变量(Y).
Y=f(X)
这种特性描述可以用于定义分类和预测问题和机器学习算法的领域。
从训练数据中学习目标函数的过程中,必须考虑的问题是模型在预测新数据时的泛化性能。泛化好坏是很重要的,因为我们收集到的数据只是样本,其带有噪音并且是不完全的。
机器学习中的泛化
在机器学习中,我们描述从训练数据学习目标函数的学习过程为归纳性的学习。
归纳与特别的样本中学习到通用的概念有关,而这就是监督式机器学习致力于解决的问题。这与推演不同,其主要是另一种解决问题和寻求从通常的规则中找寻特别的内容。
泛化即是,机器学习模型学习到的概念在它处于学习的过程中时模型 没有遇见过的样本时候的表现 。
好的机器学习模型的模板目标是从问题领域内的训练数据到任意的数据上泛化性能良好。这让我们可以在未来对模型没有见过的数据进行预测。
在机器学习领域中,当我们讨论一个机器学习模型学习和泛化的好坏时,我们通常使用术语:过拟合和欠拟合.
过拟合和欠拟合是机器学习算法表现差的两大原因。
统计拟合
在统计学中,拟合指的是你逼近目标函数的远近程度。
这个术语同样可以用于机器学习中,因为监督式机器学习算法的目标也是逼近一个未知的潜在映射函数,其把输入变量映射到输出变量。
统计学通常通过用于描述函数和目标函数逼近的吻合程度来描述拟合的好坏。
这类理论中的一些在机器学习中也是有用的(例如,计算残差),但是一些技巧假设我们已经知道了我们要逼近的函数。这和机器学习的场景就不同了。
如果我们已经知道了目标函数的形式,我们将可以直接用它来做预测,而不是从一堆有噪音的数据中把它费力的学习出来。
机器学习中的过拟合
过拟合指的是referstoa模型对于训练数据拟合程度过当的情况。
当某个模型过度的学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差,我们称过拟合发生了。这意味着训练数据中的噪音或者随机波动也被当做概念被模型学习了。而问题就在于这些概念不适用于新的数据,从而导致模型泛化性能的变差。
过拟合更可能在 无参数非线性模型 中发生,因为学习目标函数的过程是易变的具有弹性的。同样的,许多的无参数器学习算法也包括限制约束模型学习概念多少的参数或者技巧。
例如,决策树就是一种无参数机器学习算法,非常有弹性并且容易受过拟合训练数据的影响。这种问题可以通过对学习过后的树进行剪枝来解决,这种方法就是为了移除一些其学习到的细节。
机器学习中的欠拟合
欠拟合指的是模型在训练和预测时表现都不好的情况。
一个欠拟合的机器学习模型不是一个良好的模型并且由于在训练数据上表现不好这是显然的。
欠拟合通常不被讨论,因为给定一个评估模型表现的指标的情况下,欠拟合很容易被发现。矫正方法是 继续学习并且试着更换机器学习算法。虽然如此,欠拟合与过拟合形成了鲜明的对照。
机器学习中好的拟合
理想上,你肯定想选择一个正好介于欠拟合和过拟合之间的模型。
这就是我们学习的目标,但是实际上很难达到。
为了理解这个目标,我们可以观察正在学习训练数据机器学习算法的表现。我们可以把这个过程划分为分别是训练过程和测试过程。
随着时间进行,算法不断地学习,模型在训练数据和测试数据上的错误都在不断下降。但是,如果我们学习的时间过长的话,模型在训练数据上的表现将继续下降,这是因为模型已经过拟合并且学习到了训练数据中的不恰当的细节以及噪音。同时,测试数据集上的错误率开始上升,也即是模型的泛化能力在下降。
这个完美的临界点就处于 测试集上的错误率开始上升时 ,此时模型在训练集和测试集上都有良好的表现。