一、模型选择、过拟合和欠拟合
1.训练误差和泛化误差
训练误差:指模型在训练数据集上表现出的误差
泛化误差:指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。
2.K折交叉验证 (K-fold cross-validation) #当训练数据不够用时
由于验证数据集不参与模型训练,当训练数据不够用时,预留大量的验证数据显得太奢侈。
在K折交叉验证中,我们把原始训练数据集分割成K个不重合的子数据集,然后我们做K次模型训练和验证。每一次,我们使用一个子数据集验证模型,并使用其他K-1个子数据集来训练模型。在这K次训练和验证中,每次用来验证模型的子数据集都不同。最后,我们对这K次训练误差和验证误差分别求平均。
3.过拟合和欠拟合
欠拟合:模型无法得到较低的训练误差;
过拟合:模型的训练误差远小于它在测试数据集上的误差。
4.做了多项式拟合实验(这里就不做说明了,附网址:https://www.boyuai.com/elites/course/cZu18YmweLv10OeV/jupyter/jfPMOih2z9274kEy4id1j)
5. L2 范数正则化(regularization) #正则化防止过度拟合
L2范数正则化——权重衰减法:
L2范数正则化在模型原损失函数基础上添加L2L2范数惩罚项,从而得到训练所需要最小化的函数。L2L2范数惩罚项指的是模型权重参数每个元素的平方和与一个正的常数的乘积。以线性回归中的线性回归损失函数为例:
pytorch简洁实现
二、K折交叉验证的应用
我们在模型选择、欠拟合和过拟合中介绍了K折交叉验证。它将被用来选择模型设计并调节超参数。下面实现了一个函数,它返回第i折交叉验证时所需要的训练和验证数据。
在K折交叉验证中我们训练K次并返回训练和验证的平均误差。
做模型选择时:我们使用一组未经调优的超参数并计算交叉验证误差。可以改动这些超参数来尽可能减小平均测试误差。 有时候你会发现一组参数的训练误差可以达到很低,但是在K折交叉验证上的误差可能反而较高。这种现象很可能是由过拟合造成的。因此,当训练误差降低时,我们要观察K折交叉验证上的误差是否也相应降低。
三、卷积神经网络基础
CNN这章比ANN更加熟悉,个人认为平台上讲解的并不清晰,比较推荐吴恩达老师的深度学习课程。(附上网址:https://study.163.com/my#/smarts)这里就贴一页我的笔记吧:
算了不贴了,图片不能大于10M,可是没10M又看不清楚。那就欢迎讨论交流吧,嘿嘿,虽然我也比较小白~
网友评论