machine-learning - 在输出中添加噪声如何避免对训练点的过度拟合?
问题描述
是否将噪声添加到用作正则化技术的输出数据中以避免过度拟合训练数据?
它如何减少泛化错误并帮助正则化,因为据我所知,正则化与我们模型的复杂性直接相关。
它与训练模型的复杂性有什么关系?
解决方案
为什么它可以防止过拟合?
噪音会破坏信息。您的数据变得更难拟合,因此更难过度拟合。极端情况是纯噪声,您的分类器将学会忽略输入并预测每个类的固定概率。这与过度拟合相反:在您的验证集上,您将达到与训练期间完全相同的性能。
为什么这有助于泛化?
通过添加噪声,您可以使用附加信息来扩充训练集。你告诉你的神经网络,你添加的那种噪音不应该改变它的预测。如果这是真的,那么它会更好地泛化,因为它已经了解了输入空间的更大部分。如果它是假的,它实际上会使泛化变得更糟,例如,如果你正在从 10 位输入学习 XOR 函数。
输出噪声
(更新:哦,您是在专门询问如何在输出中添加噪音。我不知道这是否常见,但我知道它有什么帮助:)
典型的损失函数(例如交叉熵)如果以高置信度做出错误预测,将会给它们带来非常大的惩罚。在过拟合期间,网络会发现很多完美的预测变量(复杂的模型会开始记住每个训练输入)。将调整权重以无限增加置信度。在输出中添加噪声可以防止这种情况发生,因为它告诉网络它永远无法做出高质量的预测。这将减轻对验证集错误造成的高额惩罚。它还将防止只会增加虚假信心的破坏性重量更新。
推荐阅读
- python-3.x - 有没有办法等待按钮被按下,但如果按钮没有被按下,那么程序返回?
- jquery - 如何使用 jQuery 访问前一个输入元素
- docker - Using browsersync with docker (laradock)
- heroku - Heroku login - JSONError: Unexpected end of JSON input while parsing near ' '
- image-processing - 什么是图像处理中的联合直方图和边缘直方图?
- python - 有没有办法分离用户输入的元素?(即 - 输入日期为 mm/dd/yyy)
- angular - 使用 ngFor 在 JSON 中打印子值
- macos - 在同一台机器上运行 Elm 0.18 和 0.19
- ios - 无法在 iMessage 扩展中显示 Documents 目录中的贴纸
- powerbi - 在高级容量上上传的 Power BI 模型能否增长到超过 12 GB?