Bagging 是多个预测器的生成,它与单个预测器一样工作。Dropout 是一种教神经网络平均所有可能子网络的技术。看看最重要的 Kaggle 比赛,这两种技术似乎经常一起使用。除了实际实现之外,我看不到任何理论上的差异。谁能解释我为什么我们应该在任何实际应用程序中同时使用它们?当我们同时使用它们时,为什么性能会提高?
深度神经网络中的 Bagging 与 Dropout
数据挖掘
机器学习
神经网络
深度学习
2021-09-23 00:49:52
3个回答
Bagging 和 dropout 实现的效果并不完全相同,尽管两者都是模型平均的类型。
Bagging是一种跨整个数据集的操作,它在训练数据的子集上训练模型。因此,某些训练示例未显示给给定模型。
相比之下, Dropout应用于每个训练示例中的特征。确实,结果在功能上等同于以指数方式训练许多网络(使用共享权重!),然后对它们的输出进行同等加权。但是 dropout 在特征空间上起作用,导致某些特征对网络不可用,而不是完整的示例。因为每个神经元不能完全依赖一个输入,这些网络中的表示往往更加分散,网络不太可能过度拟合。
我在Max Out Networks中找到了两种网络的比较,上面写着:
Dropout 训练类似于 bagging (Breiman, 1994),其中许多不同的模型在数据的不同子集上进行训练。Dropout 训练与 bagging 的不同之处在于,每个模型只训练一个步骤,并且所有模型共享参数。为了让这个训练过程(dropout)表现得好像它正在训练一个集成而不是单个模型,每次更新都必须产生很大的影响,这样它才能使那个 μ 诱导的子模型很好地适应当前输入 v。
希望它会有用。
Dropout是一种正则化技术,用于避免在大型神经网络中过度拟合,特别是在训练后通过遗漏隐藏层中的一些神经元(因此将被遗漏的神经元命名为 dropout)。基本上,如果网络在训练期间真的学到了任何东西,那么丢弃一些神经元不应该对预测的精度产生负面影响。
Bagging也是一种有效的正则化技术,用于减少训练数据的方差,并通过使用在初始/更大训练数据集的不同数据子集上训练的多个副本来提高模型的准确性。
看到这个问题
其它你可能感兴趣的问题