Machine learning 卷积神经网络的批量归一化

Machine learning 卷积神经网络的批量归一化,machine-learning,computer-vision,deep-learning,conv-neural-network,batch-normalization,Machine Learning,Computer Vision,Deep Learning,Conv Neural Network,Batch Normalization,我是卷积神经网络的新手,对特征映射和如何对图像进行卷积以提取特征有一定的了解。我很高兴知道一些关于在CNN应用批量标准化的细节 我阅读了这篇文章,能够理解应用于数据的BN算法,但最后他们提到,当应用于CNN时,需要稍加修改: 对于卷积层,我们还希望规范化遵循卷积属性,以便以相同的方式规范化位于不同位置的同一特征映射的不同元素。为了实现这一点,我们在一个小批量中对所有位置的所有激活进行联合规范化。在Alg。1,我们假设B是跨越小批量元素和空间位置的特征图中所有值的集合,因此对于大小为m的小批量和大

我是卷积神经网络的新手,对特征映射和如何对图像进行卷积以提取特征有一定的了解。我很高兴知道一些关于在CNN应用批量标准化的细节

我阅读了这篇文章,能够理解应用于数据的BN算法,但最后他们提到,当应用于CNN时,需要稍加修改:

对于卷积层,我们还希望规范化遵循卷积属性,以便以相同的方式规范化位于不同位置的同一特征映射的不同元素。为了实现这一点,我们在一个小批量中对所有位置的所有激活进行联合规范化。在Alg。1,我们假设B是跨越小批量元素和空间位置的特征图中所有值的集合,因此对于大小为m的小批量和大小为p×q的特征图,我们使用大小为m′=|B |=m·pq的有效小批量。我们在每个特征映射中学习一对参数γ(k)和β(k),而不是每个激活。阿尔格。2进行了类似的修改,以便在推理过程中,BN变换对给定特征映射中的每个激活应用相同的线性变换

当他们说的时候,我完全糊涂了 “以便以相同的方式规范化同一要素图中不同位置的不同元素”

我知道特征映射的含义,不同的元素是每个特征映射中的权重。但我无法理解位置或空间位置的含义

我根本不懂下面的句子 “在Alg.1中,我们将B设为特征图中跨越小批量元素和空间位置的所有值的集合”


如果有人能详细解释并用更简单的术语解释我,我会很高兴的

我对我说的话只有70%的把握,所以如果没有意义,请在投票前编辑或提及

关于
位置
空间位置
:它们表示图像或要素地图中像素的位置。特征映射可与表示概念的稀疏修改版本的图像进行比较

关于
,以便以相同的方式规范化位于不同位置的同一要素图的不同元素
: 有些归一化算法是局部的,因此它们依赖于它们的周围环境(位置),而不是图像中相距很远的东西。它们可能意味着,每个像素,无论其位置如何,都被视为一组元素,独立于其直接的特殊环境


关于Alg中的
。1,我们假设B是一个特征图中所有值的集合,跨越一个小批量的元素和空间位置
:它们得到一个小批量中每个训练示例的每个值的平面列表,并且这个列表组合了特征图上的任何位置

让我们从术语开始。请记住,卷积层的输出是一个4阶张量
[B,H,W,C]
,其中
B
是批次大小,
(H,W)
是特征映射大小,
C
是通道数。索引
(x,y)
,其中
0对马克西姆的答案进行了一些澄清

在Keras中看到您指定的轴是通道轴,我感到困惑,因为在通道上进行规范化是没有意义的,因为conv网络中的每个通道都被视为不同的“特征”。即,所有通道的标准化等同于以平方英尺为单位对卧室数量进行标准化(Andrew的ML课程中的多元回归示例)。这通常不是您想要的-您要做的是规范化每个特性本身。即,将所有示例中的卧室数量标准化为mu=0和std=1,并将所有示例中的平方英尺标准化为mu=0和std=1

这就是为什么您需要C均值和std,因为您需要每个通道/功能的均值和std

在亲自检查和测试之后,我意识到了这个问题:这里有一点混乱/误解。在Keras中指定的轴实际上是计算中而不是的轴。i、 e.除此参数指定的轴外,每个轴的平均值。这是令人困惑的,因为它与NumPy的工作方式完全相反,其中指定的轴是您进行操作的轴(例如np.mean、np.std等)

事实上,我建立了一个只有BN的玩具模型,然后手动计算BN——取所有3个第一维度[m,n_W,n_H]的平均值std,得到n_C结果,计算(X-mu)/std(使用广播),得到与Keras结果相同的结果

希望这能帮助像我一样困惑的人

  • 首先我们需要弄清楚,内核的深度是由前一个特征映射的通道数决定的,而这一层中的内核数决定了下一个特征映射(下一层)的通道数
  • 然后我们应该弄清楚,每个内核(通常是三维的)只会在下一层生成一个通道的特征映射
  • 第三,我们应该尝试接受这样的想法,即生成的特征图中的每个点(无论其位置如何)都是通过在前一层上滑动而由同一内核生成的。所以它们可以被看作是由这个核生成的一个分布,它们可以被看作是一个随机变量的样本。然后取平均值,得到平均值,然后得到方差。(它不是死板的,只是有助于理解) 这就是他们所说的“使同一特征地图的不同元素,在不同的位置,以相同的方式标准化”

  • 我只是想用一个例子来说明我的想法。所以基本上,如果我们有10个5x5大小的特征图和20个小批量大小的特征图,那么我们是否会尝试分别对每个特征图进行归一化?因此,新的最小批量是