首页 > 解决方案 > 为什么我们在 Dropout 正则化中为每个训练示例删除不同的节点?

问题描述

在深度学习课程中,吴教授提到了如何实现Dropout 正则化

吴教授的实施:-

  1. 第一张图片讲述了 dropout 的实现和生成 d3 矩阵,即具有形状的第三层的 dropout 矩阵(#nodes,#training 示例)。

在此处输入图像描述

  1. 根据我的理解,D3 在一次迭代中看起来像这样,并随着每次迭代而不断变化(这里,我采用了 5 个节点和 10 个训练示例)

在此处输入图像描述

查询:我没有得到的一件事是为什么我们需要为每个训练示例删除不同的节点。相反,为什么我们不能对所有示例保持相同的丢弃节点并在下一次迭代中再次随机丢弃。例如,在第二张图像中,第二个训练示例通过 4 个节点,而第一个训练示例通过所有节点。为什么不是所有示例的节点都相同?

标签: pythondeep-learningneural-networkstatisticsdata-science

解决方案


我们在同一个批次中选择不同的节点,原因很简单,它会给出更好的结果。这是神经网络中几乎任何选择的基本原理。至于为什么它会给出更好的结果......

如果每个 epoch 有很多批次,你会发现差别很小(如果有的话)。我们有任何dropout 的原因是模型有时会表现出迷信的学习(在统计意义上):如果早期的一批训练样本,如果其中几个恰好具有某种特定的强相关性,那么模型将了解到早期的相关性(首要效应),并且需要很长时间才能消除它。例如,进行规范的狗对猫练习的学生通常会使用他们自己的数据集。一些学生发现该模型学会了将软椅上的任何东西识别为猫,将草坪上的任何东西识别为狗——因为这些是拍摄每种宠物的常见场所。

现在,想象一下你的洗牌算法在前三批中提取了几张这样的照片。您的模型将学习这种相关性。需要很多反例(院子里的猫,家具上的狗)来抵消最初的假设。Dropout 会禁用一个或另一个“已学习”节点,从而允许其他节点得到更强的训练。

广义的概念是有效的相关性很容易被重新学习;无效的可能会消失。这与重复其他实验的概念相同。例如,如果一个特定的实验在 p < .05(科学接受的典型标准)显示显着性,那么相关性可能偶然发生的可能性不超过 5%,而不是我们希望的功能联系寻找。这被认为有足够的信心继续前进。

然而,对于成千上万人的生活产生巨大的、彻底的改变还不够确定——比如说,用一种新药。在这些情况下,我们重复实验足够多的时间来获得所需的社会信心。如果我们在第二次独立实验中获得相同的结果,那么我们就有 1/400 的机会,而不是 1/20 的错误机会。

同样的想法也适用于训练模型:dropout 减少了我们学到一些不真实的东西的机会。


回到最初的问题:为什么 dropout 基于每个示例,而不是每次迭代。从统计上看,如果我们更频繁地退出,我们会做得更好,但时间跨度更短。如果我们在多次迭代中删除相同的节点,这会略微增加活动节点在少数节点处于非活动状态时出错的机会。

请注意,这主要是事后的理由:这不是事先预测的;相反,只有在发现了错误训练效果、找到了解决方案并研究了解决方案的机制之后,才能做出解释。


推荐阅读