machine-learning - 向输出添加噪声如何避免训练点的过度拟合?

标签 machine-learning deep-learning neural-network artificial-intelligence

向输出数据添加噪声是否用作正则化技术,以避免训练数据过度拟合?

它如何减少泛化误差并帮助正则化,因为据我所知,正则化与我们模型的复杂性直接相关。

它与训练模型的复杂性有何关系?

最佳答案

为什么它可以防止过度拟合?

噪音会破坏信息。您的数据变得更难拟合,因此更难过度拟合。极端情况是纯噪声,您的分类器将学会忽略输入并预测每个类别的固定概率。这与过度拟合相反:在验证集上,您将达到与训练期间完全相同的性能。

为什么这有助于泛化?

通过添加噪声,您可以使用附加信息来增强训练集。您告诉神经网络,您添加的噪声类型不应对其预测产生太大影响。如果这是真的,那么它将更好地泛化,因为它已经了解了输入空间的更大部分。如果它是假的,它实际上会使泛化变得更糟,例如,如果您正在从 10 位输入学习 XOR 函数。

输出噪声

(更新:哦,您具体询问的是向输出添加噪声。我不知道这是否常见,但我知道它有何帮助:)

如果以高置信度做出错误预测,典型的损失函数(例如交叉熵)将会给予非常大的惩罚。在过度拟合期间,网络会发现许多完美的预测变量(复杂的模型将开始记住每个训练输入)。权重将被调整以无限制地增加信心。在输出中添加噪声可以防止这种情况发生,因为它会告诉网络它永远无法做出高确定性的预测。这将减轻对验证集错误的高额处罚。它还将防止破坏性的权重更新,这种更新只会增加错误的信心。

关于machine-learning - 向输出添加噪声如何避免训练点的过度拟合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59517929/

相关文章:

python - 在同一 Python 进程中运行多个 Tensorflow session 时出错

python - Keras根据阈值将中间层的输出设置为0或1

tensorflow - 深度神经网络: could a random batch size be useful for training?

python - 在 C++ 中使用 Tensorflow 检查点恢复模型

machine-learning - 在 Siamese 网络中使用 AlexNet 代替 LeNet 模型

machine-learning - 卷积网络的训练方法还叫深度学习吗?

c# - 在 ML.net 中发布训练模型。从 TaxiFareExample 更改模型的问题。 'Features' 必须是 R4 的已知大小向量,但类型为 : Vec<I4, 2>

python - 如何从单个输入值获取分类报告

excel - 如何在Excel中使用训练好的深度学习模型进行预测?

tensorflow - 如何使用FFT和神经网络对声音进行分类?我应该使用 CNN 还是 RNN?