上一篇,我们一步步搭建了一个深层的神经网络,来实现图片的分类。结果显示,随着网络层数加深,隐藏层数增加,网络性能会有所提升。但是,单纯地通过增加网络层数也不一定能取得很好的效果,且模型容易发生过拟合。本文将主要来谈谈神经网络中的过拟合问题以及如何避免过拟合。
什么是过拟合
任何机器学习模型,包括神经网络都可能存在过拟合(Overfit)问题。下面用一张图来说明:
上图中,分别用三个模型来拟合实际的样本点(红色 x 表示样本)。第一个模型是一条直线,模型简单,但是预测值与样本 Label 差别较大,这种情况称之为欠拟合(Underfit)。第三个模型是一个高阶多项式,模型过于复杂,虽然预测值与样本 Label 完全吻合,但是该模型在训练样本之外的数据上拟合效果可能很差,该模型可能把噪声也学习了。这种情况称之为过拟合(Overfit),即模型过于拟合训练样本的数据而泛化能力很差。第二个模型是二次曲线,模型复杂度中等,既能对训练样本有较好的拟合效果,也能保证有不错的泛化能力。这是我们构建神