行业知识
深度学习
2026-11-02 07:30:14
来源:互联网转载
除了���重衰退法调整过拟合,还有丢弃法调整模型得过拟合现象
过拟合:
丢弃法如果直接丢弃会导致新期望的不确定性,为了防止这个不确定被模型学到,所以要保证丢弃后的期望和丢弃前的期望一样(个人观点)
顾名思义,丢弃一些元素,单保持整体期望不变,让模型自己去权衡哪些元素是最重要得部分,从而着重选择那些元素
过拟合是因为模型学习过多无用杂质,用丢弃法,丢弃的可能是重要特征,或者杂质,通过丢弃的结果,让模型权衡哪些部分是最重要的,从而学习更稳健的特征
丢弃法在含隐藏层的模型中应用非常广泛
实例代码:
完整代码:
import torchfrom torch import nnfrom d2l import torch as d2limport matplotlib.pyplot as pltnum_inputs, num_outputs, num_hiddens1, num_hiddens2 = 784, 10, 256, 256def evaluate_loss(net, data_iter, loss): metric = d2l.Accumulator(2) net.eval() # 评估状态 for X, y in data_iter: out = net(X) # y = y.float() l = loss(out, y) metric.add(l.sum(), l.numel()) return metric[0] / metric[1]def dropout_layer(X, dropout): assert 0