Deep Learning with Python 读书笔记(六)Overfitting和Underfitting

在机器学习中通过学习训练数据找出目标函数或近似函数的方法是一种归纳学习的方式。归纳学习就是通过学习个例来发现一般规律的方式,这恰恰是机器学习要解决的问题。模型的通用性是指一个机器学习模型对新数据的适用性或预测准确率的好坏。而机器学习的目标就是通过学习让模型获得很好的通用性,从而对新数据做出准确的预测。但是在实际中,对模型的优化往往会降低模型的通用性,因为优化的过程就是通过学习训练数据来提高模型的准确度;而提高模型的通用性就是提高模型对新数据的适用性。因此二者之间有着先天的对立。

在训练阶段刚刚开始的时候,随着模型针对训练数据损失值(loss value)的下降,模型针对测试数据的损失值也在下降。这个时候你的模型被称作是在‘欠拟合’ (underfitting)状态中,因为你的模型还可能在继续学习训练数据中新的关联模式,因此模型的预测准确率也很可能在继续提高之中。但是到了一定的时候,训练阶段经过了几次迭代之后,模型的通用性不再继续提高,模型预测的准确率开始趋向平稳甚至开始下降,这时候模型就开始进入‘过拟合’(overfitting)状态之中,因为模型开始学习训练数据中特有的模式,而这些训练数据特有的模式对新数据的预测毫无帮助。

防止模型过拟合的最好方法是获得更多的训练数据让模型来学习,但是很多时候我们无法获得更多的数据,因此接下来的一个次好方法就是调节(modulate)你的模型所能存储的信息或者增加模型对存储数据的限制条件。这样做的道理很简单,因为如果一个模型只能存储有限数量的模式,那么优化的过程就会强迫模型选择记忆最主要、最有用的模式,这样的模型往往会有较好的通用性。这个过程有个专用的名称,就是‘正则化’(regularization)。

猜你喜欢

转载自www.cnblogs.com/jointech/p/12508353.html