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

训练误差和泛化误差

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

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

K折交叉验证

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

过拟合和欠拟合

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

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

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

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

权重衰减=L2范数正则化

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

丢弃法dropout

net = nn.Sequential(
        d2l.FlattenLayer(),
        nn.Linear(num_inputs, num_hiddens1),
        nn.ReLU(),
        nn.Dropout(drop_prob1),
        nn.Linear(num_hiddens1, num_hiddens2), 
        nn.ReLU(),
        nn.Dropout(drop_prob2),
        nn.Linear(num_hiddens2, 10)
        )
发布了105 篇原创文章 · 获赞 27 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/serenysdfg/article/details/104500350
今日推荐