【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退

目录

5.1 模型选择

5.1.1 训练误差和泛化误差

5.1.2 K-折交叉验证

5.2 过拟合和欠拟合

5.3 权值衰退


5.1 模型选择

5.1.1 训练误差和泛化误差

1、训练误差:模型在训练集(train)上的误差

2、泛化误差:模型在新数据集(测试集test)上的误差

3、在训练集上表现好不代表能在测试集上表现好

4、真正意义上的测试数据集是一套与训练数据集完全不相同的数据集,我们在实际操作中,测试数据集更多指的是验证数据集(例如拿出50%的训练数据做验证)。

5.1.2 K-折交叉验证

1、在没有足够多数据时使用(常用)

2、算法:

【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第1张图片

 其中k值常取5或10

5.2 过拟合和欠拟合

1、定义:下图可以比较直观的看出过拟合与欠拟合的定义,蓝色的点代表数据,左图是欠拟合,右图是过拟合。

【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第2张图片

【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第3张图片 正常 【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第4张图片 欠拟合 【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第5张图片 过拟合

正常train和test的损失会不断接近,欠拟合是两者的损失差值不怎么变化,过拟合是二者差值先变小然后变大或者一直变大 。

图中epoch指迭代周期(使用梯度下降法完成一次参数更新,称为一次迭代,多次迭代去趋于最优解),这个知识在之前写的博客【动手学习深度学习】3线性神经网络_sumshine_的博客-CSDN博客 3.1.1.4. 随机梯度下降 中有我自己可以理解的解释。

 2、模型容量与数据间的关系

(1)模型容量也可以理解为模型复杂度,一般来说变量越多的模型,越复杂
(2)低容量的模型难以拟合训练数据
(3)高容量的模型可以记住所有的训练数据

模型容量与数据间的拟合如下图所示:

【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第6张图片

 3、模型容量的影响

【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第7张图片

 4、估计模型容量

(1)难以在不同的种类算法之间比较,例如树模型与神经网络

(2)一个给定的模型,容量影响的因素为:参数个数、参数值的选择范围

 5、VC维——统计学习理论的一个核心思想

对于一个分类模型,VC等于一个最大的数据集的大小,不管如何给定标号,都存在一个模型来对它进行完美分类。

6、数据复杂度

【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第8张图片

5.3 权值衰退

                            ——处理过拟合的方法

简单理解权值衰退就是使限制w的值,使曲线平滑

【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第9张图片 绿线引用了权值衰退 

1、使用均方范数作为柔性限制(罚)

【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第10张图片

 【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第11张图片

就是说,l2正则项会对大数值的权值进行惩罚,鼓励权值分散,将所有额特征运用起来,而不是依赖其中的少数特征

【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第12张图片 罚的引入最优解的影响演示
其中:绿线是损失函数的取值, 黄线是惩罚项的取值, 两者都是圈越大取值越大
可以看出引入惩罚项之后最优解变化了

2、参数更新法则

【动手学习深度学习】 5 模型选择+过拟合和欠拟合+权值衰退_第13张图片

总结:
权重衰退通过L2正则项使得模型参数不会过大,从而控制模型复杂度
正则项权重是控制模型复杂度的超参数
3、代码实现

torch.optim.SGD([
        {"params":net[0].weight,'weight_decay': wd},
        {"params":net[0].bias}], lr=lr)

其实就是指定weight_decay这个参数(这个英文单词的意思就是重量衰减)

老师课上讲的经验:一般取e^-1 e^-2 e^-3  没效果就算了,换其他的方法

你可能感兴趣的:(知识学习)