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