了解剔除层如何通过改善泛化、鲁棒性和模型性能来防止神经网络中的过度拟合。
剔除层是神经网络(NN)中一种强大而简单的正则化技术,用于消除过拟合。当模型对训练数据(包括噪声和特异性)学习得太好时,就会出现过拟合,从而损害其泛化到新的、未见数据的能力。Geoffrey Hinton 和他的同事在2014 年发表的一篇突破性论文中提出了 "丢弃"(dropout)技术,其核心理念是在每个训练步骤中随机 "丢弃"--或暂时移除--神经元及其连接。这可以防止神经元过度依赖彼此,迫使网络学习更稳健和冗余的表征。
在模型训练过程中,丢弃层会随机地将上一层中一部分神经元的激活度设为零。剔除率 "是一个超参数,用于定义神经元被剔除的概率。例如,0.5 的丢弃率意味着在给定的训练迭代中,每个神经元被忽略的概率为 50%。这个过程可以看作是训练大量共享权重的精简网络。
通过不断改变网络结构,"剔除 "可以防止出现复杂的共同适应,即一个神经元的输出高度依赖于其他几个特定神经元的存在。相反,我们鼓励每个神经元成为更独立、更有用的特征检测器。在测试或推理阶段,剔除层被关闭,所有神经元都被使用。为了补偿比训练期间更多神经元处于活动状态这一事实,该层的输出会按比例降低剔除率。这样可以确保每个神经元的预期输出在训练和测试期间保持一致。像PyTorch和TensorFlow这样的框架会在其剔除层实现中自动处理这种缩放。
Dropout 广泛应用于人工智能(AI)和机器学习(ML)的各个领域:
Dropout 是深度学习中用于正则化的几种技术之一。其他技术包括
总之,Dropout 层是一种简单而强大的正则化技术,对于从高级计算机视觉到 NLP 等各种应用中训练稳健的深度学习模型至关重要。