小言_互联网的博客

过拟合、欠拟合-《动手学深度学习pytorch》

543人阅读  评论(0)

训练误差和泛化误差

训练误差:在训练数据集上表现出的误差,

泛化误差:在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似,机器学习模型应关注降低泛化误差

K折交叉验证

原始训练数据集分割成K个不重合的子数据集。每一次,我们使用一个子数据集验证模型,并使用其他K-1个子数据集来训练模型。每次验证数据集都不同求平均。

过拟合和欠拟合

接下来,我们将探究模型训练中经常出现的两类典型问题:

  • 欠拟合:模型无法得到较低的训练误差
  • 过拟合:训练集误差很小,测试机反而很大

虽然有很多因素可能导致这两种拟合问题,在这里我们重点讨论两个因素:模型复杂度和训练数据集大小。

  • 容易欠拟合:模型复杂度太低
  • 容易过拟合;模型复杂度太高,训练数据集中样本数过少 泛化误差不会随训练数据集里样本数量增加而增大。因此,通常希望训练数据集大一些,例如深度学习模

权重衰减=L2范数正则化

    optimizer_w = torch.optim.SGD(params=[net.weight], lr=lr, weight_decay=wd) # 对权重参数衰减

丢弃法dropout


  
  1. net = nn.Sequential(
  2. d2l.FlattenLayer(),
  3. nn.Linear(num_inputs, num_hiddens1),
  4. nn.ReLU(),
  5. nn.Dropout(drop_prob1),
  6. nn.Linear(num_hiddens1, num_hiddens2),
  7. nn.ReLU(),
  8. nn.Dropout(drop_prob2),
  9. nn.Linear(num_hiddens2, 10)
  10. )

 


转载:https://blog.csdn.net/serenysdfg/article/details/104500350
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场