pytorch学习笔记(十三)————过拟合&欠拟合

pytorch学习笔记(十三)————过拟合&欠拟合

  • 目录
    • 理想化情况
    • 真实情况
    • 模型学习能力
    • 欠拟合与过拟合
    • 总结

目录

理想化情况

1.场景一:线性模型——房价预测
pytorch学习笔记(十三)————过拟合&欠拟合_第1张图片
横坐标是房屋面积,纵坐标是房屋价格。可以看出这两者呈现线性关系
2.场景二:非线性模型——GPA
pytorch学习笔记(十三)————过拟合&欠拟合_第2张图片
老师给学生打分时,往往给大部分学生一般的成绩,成绩差或成绩好的则占少数。因此总体上趋近于高斯模型,呈现非线性关系

真实情况

pytorch学习笔记(十三)————过拟合&欠拟合_第3张图片
从以上两个例子中,我们都已经提前知道了问题中的具体模型,不知道的只有模型的参数,如期望,方差。然而在现实生活中,大部分要解决的问题是不知道具体模型的。如手写数字识别,我们既不知道他的模型,也不知道里面需要包含什么参数。那么如何解决这个问题呢?
pytorch学习笔记(十三)————过拟合&欠拟合_第4张图片
另外我们还要考虑到另一个因素的影响:噪声。并不是所有的数据集都是严格按照模型的,如房价关系的线性模型,房价与面积在呈线性关系的同时往往会有些许误差。我们可以认为误差服从高斯分布,因此为了尽量减少误差的影响,我们需要大量的数据集来训练模型。同时,如果数据集太少,可能被误认为不满足线性关系,而采用其他关系进行预测。

模型学习能力

pytorch学习笔记(十三)————过拟合&欠拟合_第5张图片
我们对利用数据训练模型时,往往会选择不同的模型,可能一次方,二次方。。。到n次方,不同类型,不同次方的模型,次方越高,模型波动越大越复杂。
那么如何衡量不同模型的学习能力?
pytorch学习笔记(十三)————过拟合&欠拟合_第6张图片
可以看出,只有一个参数的常数函数,学习能力最差,输出的是固定值,随着次方增加,参数越来越多,学习能力越来越强。
pytorch学习笔记(十三)————过拟合&欠拟合_第7张图片
最近的深度学习网络层次越来越深,参数也越来越大,也从侧面反映出模型的model capacity越来越强。

欠拟合与过拟合

接下来我们观察两种情况:
情景一:欠拟合
pytorch学习笔记(十三)————过拟合&欠拟合_第8张图片
我们用的模型复杂度小于真实数据模型的复杂度,就好像利用线性模型去预测非线性模型的GPA函数,这种情况会造成模型的表达能力不够,无法表达真实数据模型,这种情况叫做欠拟合。
pytorch学习笔记(十三)————过拟合&欠拟合_第9张图片
再举一个WGAN的例子,早期的WGAN对模型加了许多约束,导致生成的数据表达能力不够强,上面三幅图无法像下面三幅图一样表达许多精美的图片。
那么欠拟合如何体现出来,我们如何发现模型出现欠拟合?
pytorch学习笔记(十三)————过拟合&欠拟合_第10张图片
训练集准确度低
测试集准确度低

情景二:过拟合
pytorch学习笔记(十三)————过拟合&欠拟合_第11张图片
我们训练出的模型为了拟合所有数据变得过分复杂,为了降低loss,模型趋近于每一个点,训练模型复杂度大于真实数据集复杂度,这样会导致在训练集上的效果非常好,但是在测试集上的效果不好,这种情况叫做过拟合。
那么过拟合如何体现出来,我们如何发现模型出现过拟合?
pytorch学习笔记(十三)————过拟合&欠拟合_第12张图片
训练集准确度高
测试集准确度低
过拟合也可以叫做泛化能力低

总结

pytorch学习笔记(十三)————过拟合&欠拟合_第13张图片

你可能感兴趣的:(pytorch)