文章代码来源:《deep learning on keras》,非常好的一本书,大家如果英语好,推荐直接阅读该书,如果时间不够,可以看看此系列文章。
在之前的例子中,我们注意到我们模型的表现都会在极少的训练批次后达到峰值,此后开始下降,即我们的模型会很快过拟合到训练数据。过拟合发生在每一个单独的机器学习问题中。学会如何解决过拟合问题对于掌控机器学习尤为重要。
在机器学习中最基础的主题就是优化和泛化的张力。“优化”代表着通过调整模型来在训练数据上表现最好,“泛化”则代表模型在未见过的数据上的表现。这场游戏的目标就是取得好的泛化,当然,你控制不了泛化,你只能基于训练数据调节模型。
在训练的一开始,优化和泛化是相关的:你在训练数据中的损失越低,你在测试函数中的损失也就越低。当这种情况发生时,你的模型就叫做欠拟合:这里还有可进步的空间;网络还没有将训练数据中的相关的数据建模完全。但是在训练数据进行相当次数的迭代以后,泛化就停止上升了,验证指标就停滞并开始下降:模型开始过拟合,比如说,它可能会开始学习一些对于训练数据很特别的特征,但是对于新来的数据可能完全不相关。
为了防止模型被训练数据中不相关的特征误导,最好地方法当然是弄更多的训练数据。一个模型用更多的数据去喂理所当然会有更好的泛化性。当增加数据行不通的时候,最好地方法是调节你模型存储的信息