自我理解:

泛化能力,能够通过已知的知识去解决新问题的能力,越是能够解决这些新问题就可以称之为泛化能力好;如果不能解决,则称之为泛化能力差。

-----------------------------------------------------------------------------------------------------------------

例子:

  小明和小李都上了高三。小明头脑机灵,一边刷着五年高考三年模拟一边总结做题规律,而小李一门心思刷题,一套完了又一套,刷的试卷堆成山了却没有对错题进行总结。高考结束成绩公布,小明超出一本线几十分,而小李却勉强上了二本线。这是为什么呢?

  原来高考试题一般是新题,谁也没做过,平时的刷题就是为了掌握试题的规律,能够举一反三、学以致用,这样面对新题时也能从容应对。这种对规律的掌握便是泛化能力。

  在这个例子中,小明善于总结做题规律,可以说是他的泛化能力好;而小李只知道刷题却没有掌握做题规律,可以说是他的泛化能力差。

--------------------------------------------------------------------------------------------------------------------

 

机器学习(深度学习)的根本问题是优化和泛化之间的对立。

  优化(optimization)是指调节模型以在训练数据上得到最佳性能(即机器学习中的学习),而泛化(generalization)是指训练好的模型在前所未见的数据上的性能好坏。

机器学习的目的当然是得到良好的泛化,但你无法控制泛化,只能基于训练数据调节模型。

----------------------------------------------------------------------------------------------------------------------

根据泛化能力强弱,可以分为:

泛化能力实验NLP_泛化

 

  • 欠拟合:模型不能在训练集上获得足够低的误差;
  • 拟合:测试误差与训练误差差距较小;
  • 过拟合:训练误差和测试误差之间的差距太大;
  • 不收敛:模型不是根据训练集训练得到的。

--------------------------------------------------------------------------------------------------------------------

 

在机器学习中,可以用Bias(偏差)、Variance(方差)衡量欠拟合、刚好拟合、过拟合。

对于Bias:

  • Bias衡量模型拟合训练数据的能力(训练数据不一定是整个 training dataset,而是只用于训练它的那一部分数据,例如:mini-batch);
  • Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度;
  • Bias 越小,拟合能力越高(可能产生overfitting);反之,拟合能力越低(可能产生underfitting)。

对于Variance:

  • Variance描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散,模型的稳定程度越差;
  • Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性;
  • Variance越小,模型的泛化的能力越高;反之,模型的泛化的能力越低。

泛化能力实验NLP_拟合_02

 

 

泛化能力实验NLP_泛化_03

 

左图是高偏差,对应欠拟合;右图是高方差,对应过拟合,中间是Just Right,对应刚好拟合。

 

-----------------------------------------------------------------------------------------------------------------------

对于过拟合,可以理解为:

  过拟合指的是给定一堆数据,这堆数据带有噪声,利用模型去拟合这堆数据,可能会把噪声数据也给拟合了,这点很致命,一方面会造成模型比较复杂(想想看,本来一次函数能够拟合的数据,现在由于数据带有噪声,导致要用五次函数来拟合,多复杂!),另一方面,模型的泛化性能太差了(本来是一次函数生成的数据,结果由于噪声的干扰,得到的模型是五次的),遇到了新的数据让你测试,你所得到的过拟合的模型,正确率是很差的。

 

---------------------------------------------------------------------------------------------------------------------

泛化能力实验NLP_泛化_04

 

模型的容量(capacity):通常指模型中可学习参数的个数(或模型复杂度)。

  训练刚开始的时候,模型还在学习过程中,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大。这个时候,模型还没有学习到知识,处于欠拟合状态,曲线落在欠拟合区域。

  随着训练的进行,训练误差和测试误差都下降。随着模型的进一步训练,在训练集上表现的越来越好,终于在突破一个点之后,训练集的误差继续下降,而测试集的误差上升了,此时模型的方差较大,就进入了过拟合区间。 它通常发生在模型过于复杂的情况下,如参数过多等,会使得模型的预测性能变弱,并且增加数据的波动性。虽然模型在训练时的效果可以表现的很完美,基本上记住了数据的全部特点,但这种模型在未知数据的表现能力会大减折扣,因为简单的模型泛化能力通常都是很弱的。

  因此,所使用的模型应该具有足够多的参数,以防欠拟合,即模型应避免记忆资源不足。在容量过大与容量不足之间要找到一个折中,即最优容量。

--------------------------------------------------------------------------------------------------------------------