Machine learning 卷积神经网络的批量归一化
我是卷积神经网络的新手,对特征映射和如何对图像进行卷积以提取特征有一定的了解。我很高兴知道一些关于在CNN应用批量标准化的细节 我阅读了这篇文章,能够理解应用于数据的BN算法,但最后他们提到,当应用于CNN时,需要稍加修改: 对于卷积层,我们还希望规范化遵循卷积属性,以便以相同的方式规范化位于不同位置的同一特征映射的不同元素。为了实现这一点,我们在一个小批量中对所有位置的所有激活进行联合规范化。在Alg。1,我们假设B是跨越小批量元素和空间位置的特征图中所有值的集合,因此对于大小为m的小批量和大小为p×q的特征图,我们使用大小为m′=|B |=m·pq的有效小批量。我们在每个特征映射中学习一对参数γ(k)和β(k),而不是每个激活。阿尔格。2进行了类似的修改,以便在推理过程中,BN变换对给定特征映射中的每个激活应用相同的线性变换 当他们说的时候,我完全糊涂了 “以便以相同的方式规范化同一要素图中不同位置的不同元素” 我知道特征映射的含义,不同的元素是每个特征映射中的权重。但我无法理解位置或空间位置的含义 我根本不懂下面的句子 “在Alg.1中,我们将B设为特征图中跨越小批量元素和空间位置的所有值的集合”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的小批量和大
如果有人能详细解释并用更简单的术语解释我,我会很高兴的我对我说的话只有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个小批量大小的特征图,那么我们是否会尝试分别对每个特征图进行归一化?因此,新的最小批量是