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

被折叠的 条评论
为什么被折叠?



