主要内容

groupnorm

为每个观察单独地在分组的信道子集上标准化数据

    描述

    分组归一化操作对每个观测数据分别在分组的通道子集上进行输入数据归一化。为了加快卷积神经网络的训练并降低对网络初始化的敏感性,在卷积和非线性操作之间使用群归一化,如线性整流函数(Rectified Linear Unit)

    归一化之后,该操作将输入移位一个可学习偏移量β然后用一个可学习的比例因子来衡量γ

    groupnorm函数将组归一化操作应用于dlarray数据。使用dlarray对象允许您标记维度,从而更容易处理高维数据。属性标记哪些维度对应于空间、时间、通道和批处理维度“S”“T”“C”,“B”标签,分别。对于未指定的维度和其他维度,使用“U”标签。为dlarray对象的函数在特定维度上操作时,可以通过格式化dlarray对象,或者使用DataFormat选择。

    请注意

    类中应用组规范化layerGraph对象或数组,使用groupNormalizationLayer

    例子

    海底= groupnorm (dlXnumGroups抵消scaleFactor对输入数据应用分组规范化操作dlX使用指定数量的组,并使用指定的偏移量和比例因子对其进行转换。

    的分组子集上的函数归一化“C”(通道)尺寸和“年代”(空间),“T”(时间)“U”的(未指明的)尺寸dlX对于每一个观察“B”(批量)尺寸,独立。

    对于未格式化的输入数据,使用“DataFormat”选择。

    例子

    海底= groupnorm (dlXnumGroups抵消scaleFactor、“DataFormat”FMT)将组规范化操作应用于未格式化的dlarray对象dlX的格式,由FMT.输出海底是未格式化的dlarray对象,其维度顺序与dlX.例如,“DataFormat”、“SSCB”指定二维图像输入格式的数据“SSCB”(空间,空间,通道,批次)。

    例子

    海底= groupnorm (___名称,值除以前语法中的输入参数外,还使用一个或多个名称-值参数指定选项。例如,‘ε’,3 e-5将方差偏移量设置为3 e-5

    例子

    全部折叠

    使用groupnorm通过信道组规范化输入数据。

    将输入数据创建为随机值的单个观测值,其高和宽分别为4和6通道。

    身高= 4;宽度= 4;通道= 6;观察结果= 1;X = rand(高度,宽度,通道,观测值);dlX = dlarray(X,“SSCB”);

    创建可学习的参数。

    偏移量= 0(通道,1);scaleFactor = ones(通道,1);

    计算分组归一化。把输入分成三组,每组两个通道。

    numGroups = 3;dlY = groupnorm(dlX,numGroups,offset,scaleFactor);

    输入参数

    全部折叠

    输入数据,指定为格式化的dlarray,一个未格式化的dlarray,或数值数组。

    如果dlX是未格式化的dlarray或数值数组,则必须使用“DataFormat”选择。如果dlX是数字数组吗scaleFactor抵消一定是dlarray对象。

    dlX必须有一个“C”(频道)维度。

    要通过的信道组数,指定为正整数,所有渠道的,或“channel-wise”

    numGroups 描述
    正整数 将传入通道划分为指定数量的组。指定的组数必须与输入数据的通道数精确相除。
    所有渠道的 将所有传入通道分组到一个组中。输入数据在所有通道上都是标准化的。这个操作也称为层归一化。另外,使用layernorm
    “channel-wise” 将所有传入通道视为单独的组。此操作也称为实例规范化。另外,使用instancenorm

    数据类型:||字符|字符串

    抵消β,指定为格式化的dlarray,一个未格式化的dlarray类的大小匹配的非单维度的数值数组“C”(通道)输入的维度dlX

    如果抵消是格式化的dlarray对象,则非单维度必须有标签“C”(通道)。

    比例因子γ,指定为格式化的dlarray,一个未格式化的dlarray类的大小匹配的非单维度的数值数组“C”(通道)输入的维度dlX

    如果scaleFactor是格式化的dlarray对象,则非单维度必须有标签“C”(通道)。

    名称-值参数

    的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

    例子:‘ε’,3 e-5将方差偏移量设置为3 e-5

    未格式化输入数据的维度顺序,指定为字符向量或字符串标量FMT它为数据的每个维度提供了一个标签。

    的格式时dlarray对象,每个字符为数据的每个维度提供一个标签,并且必须是以下之一:

    • “S”——空间

    • “C”——频道

    • “B”-批次(例如,样品和观察)

    • “T”-时间(例如序列的时间步长)

    • “U”——未指明的

    您可以指定多个有标记的维度“S”“U”.你可以使用标签“C”“B”,“T”最多一次。

    您必须指定DataFormat当输入数据未被格式化时dlarray

    数据类型:字符|字符串

    用于防止被零除错误的方差偏移量,指定为由逗号分隔的对组成‘ε’和一个大于或等于的数字标量1 e-5

    数据类型:|

    输出参数

    全部折叠

    规范化的数据,返回为dlarray.输出海底具有与输入相同的底层数据类型dlX

    如果输入数据dlX是格式化的dlarray海底尺寸标签和dlX.如果输入数据没有格式化dlarray海底是未格式化的dlarray具有与输入数据相同的维度顺序。

    算法

    分组规范化操作将元素规范化x首先计算平均值μG和方差σG2在空间,时间和分组子集的通道维度为每个观测独立。然后,计算归一化激活为

    x x μ G σ G 2 + ε

    在哪里ϵ是在方差很小时提高数值稳定性的常数。为了考虑均值和单位方差为零的输入对于分组归一化之后的操作不是最优的可能性,分组归一化操作使用转换进一步转移和缩放激活

    y γ x + β

    其中偏移量β还有比例因子γ是在网络训练期间更新的可学习参数。

    参考文献

    [1]吴宇欣,何开明。“组织正常化。”预印本已于2018年6月11日提交。https://arxiv.org/abs/1803.08494。

    扩展功能

    R2020b中介绍