20.7 可视化训练历史
问题描述
找到神经网络的损失(loss)或准确率分数的“甜蜜点(sweet spot)”。
解决方案
使用Matplotlib可视化测试集和训练集在每个epoch上的损失(见代码后的图):
我们还可以使用同样的方法来可视化每个epoch的训练集和测试集数据的准确率(见代码后的图):
讨论
一开始我们的神经网络是新的,性能会比较差。而随着神经网络从训练数据中学习,其在训练集和测试集上的误差都会逐渐降低。但是,在某个时间点之后,神经网络开始“记住”训练数据,并且产生过拟合。当出现这种情况时,训练集误差会减小而测试集误差会增大。因此,在很多情形下会有一个“甜蜜点”,到达这个点时,测试集误差(这是我们主要关注的误差)最小。我们的解决方案将每个epoch的训练集和测试集损失可视化,因此可以很直观地看到这种现象。你可以看到,测试集误差在第5个epoch附近时是最小的,在这之后训练集损失继续减小而测试集损失开始增大。从这个点开始,模型就将出现过拟合。
本书评论