模型泛化 | 正则化 | 权重衰退 | dropout

模型的泛化能力

机器学习的目标是发现模式(pattern)。

所以这需要确定模型是真正发现了泛化的模式还是简单的记住了数据。

先讲个小故事,我们大三那年参加比赛,用机器学习写了个语言识别,虽然准确率很低,只有50%。当时比赛一个评委不信那是机器学习写的,一口咬定我们是写的数据库比对……

泛化和记住数据有什么区别呢?

就好像给AB两个学生一堆数学资料让他学习。期末考试的时候,如果出原题,两个人都能答100分,这个你没办法区别他们学的好坏。但是如果重新出题,A不及格B90分,那你就可以确定:A只是死记硬背记住原题,而B是真正地理解了解题思路。

A就是记住数据,B就是泛化。


训练误差和泛化误差

训练误差(training error)是指:我们的模型在训练数据集上计算得到的误差。

泛化误差(generalization error)是指:当我们将模型应用在同样从原始样本的分布中抽取的无限多的数据样本时,我们模型误差的期望。

泛化误差我们无法准确计算,因为面对未知的期末考试题,你永远不可能知道自己能得几分。

模型复杂性

训练样本可以理解为给你多少学习资料。而模型规模可以理解为你的背题能力。记住是背题能力不是理解能力。现在可以认为背题能力+理解能力=1背题能力+理解能力=1。当你的精力都去背题了,你就无暇顾及去理解了。

当我们的训练样本和模型规模相匹配的时候,我们或许能可以让训练误差和泛化误差相接近。

但是当模型过于复杂而样本很少的时候,我们预计训练误差会下降,但泛化误差会增大。(过拟合)

你可能感兴趣的:(python,深度学习,神经网络,计算机视觉,cnn,python)