主要内容

layernorm

为每个观察独立地规范化所有渠道的数据

    描述

    层归一化操作对每个观测的所有通道的输入数据进行了独立的归一化。为了加快循环和多层感知器神经网络的训练,降低网络初始化的敏感性,可在可学习的操作后使用层归一化,如LSTM和全连接操作。

    归一化之后,该操作将输入偏移一个可学习的偏移量β用一个可学习的比例因子进行缩放γ

    layernorm函数将层归一化操作应用于dlarray数据。使用dlarray对象允许对维度进行标记,从而使处理高维数据更加容易。方法标识哪些维度对应于空间、时间、通道和批处理维度“S”“T”“C”,“B”标签,分别。对于未指定的和其他维度,请使用“U”标签。为dlarray对象函数对特定维度进行操作时,可以通过格式化dlarray对象直接调用,或使用DataFormat选择。

    请注意

    将层规范化应用于layerGraph对象或数组,使用layerNormalizationLayer

    例子

    Y= layernorm (X抵消scaleFactor)对输入数据应用层归一化操作X并使用指定的偏移量和比例因子对其进行转换。

    函数归一化“年代”(空间),“T”(时间),“C”(频道),“U”的(未指明的)尺寸X对于每一个观察“B”(批)尺寸,独立。

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

    Y= layernorm (X抵消scaleFactor、“DataFormat”FMT)将层规范化操作应用到未格式化的dlarray对象X指定的格式FMT.输出Y是未格式化的dlarray的对象,其维度顺序与X.例如,“DataFormat”、“SSCB”指定格式为二维图像输入的数据“SSCB”(空间,空间,渠道,批处理)。

    要指定缩放和偏移的格式,请使用“ScaleFormat”而且“OffsetFormat”选项,分别。

    Y= layernorm (___名称,值)除先前语法中的输入参数外,还使用一个或多个名称-值对参数指定选项。例如,‘ε’,1的军医设置值为1的军医

    例子

    全部折叠

    创建一个格式化的dlarray对象,该对象包含128个长度为100、有10个通道的序列。指定格式“认知行为治疗”(渠道、批次、时间)。

    numChannels = 10;miniBatchSize = 128;sequenceLength = 100;X = rand(numChannels,miniBatchSize,sequenceLength);dlX = dlarray(X,“认知行为治疗”);

    查看输入数据的大小和格式。

    大小(dlX)
    ans =1×310 128 100
    dim (dlX)
    ans = 'CBT'

    对于每个观察通道的层归一化,分别用0和1的向量初始化偏移量和缩放量。

    offset = 0 (numChannels,1);scaleFactor = ones(numChannels,1);

    方法应用层归一化操作layernorm函数。

    dlY = layernorm(dlX,offset,scaleFactor);

    查看输出的大小和格式海底

    大小(海底)
    ans =1×310 128 100
    dim(海底)
    ans = 'CBT'

    要执行基于元素的层归一化,请指定与输入数据相同大小的偏移量和缩放因子。

    创建一个格式化的dlarray对象,该对象包含128个长度为100、有10个通道的序列。指定格式“认知行为治疗”(渠道、批次、时间)。

    numChannels = 10;miniBatchSize = 128;sequenceLength = 100;X = rand(numChannels,miniBatchSize,sequenceLength);dlX = dlarray(X,“认知行为治疗”);

    查看输入数据的大小和格式。

    大小(dlX)
    ans =1×310 128 100
    dim (dlX)
    ans = 'CBT'

    对于元素层归一化,分别使用0和1数组初始化偏移量和缩放量。

    offset = 0 (numChannels,sequenceLength);scaleFactor = ones(numChannels,sequenceLength);

    方法应用层归一化操作layernorm函数。指定偏移和缩放格式为“CT”(频道,时间)使用“OffsetFormat”而且“ScaleFormat”选项,分别。

    dlY = layernorm(dlX,offset,scaleFactor,“OffsetFormat”“CT”“ScaleFormat”“CT”);

    查看输出的大小和格式海底

    大小(海底)
    ans =1×310 128 100
    dim(海底)
    ans = 'CBT'

    输入参数

    全部折叠

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

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

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

    抵消β,指定为格式化的dlarray,一个未格式化的dlarray,或数字数组。

    偏移量的大小和格式取决于转换的类型。

    任务 描述
    Channel-wise转换

    类的大小匹配的非单例维度的“C”(通道)输入的尺寸X

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

    Element-wise转换

    数组中的“C”(通道)尺寸,尺寸与“C”(通道)输入的尺寸X和0或相同数量的“年代”(空间),“T”(时间)“U”(未指定的)输入的尺寸X

    每个维度的大小必须为1,或者其大小必须与输入中的相应维度相匹配X.对于任何重复的维度,例如,多重“年代”(空间)尺寸,尺寸必须匹配相应的尺寸X或者都必须是单例的。

    该软件自动扩展任何单例维度,以匹配输入中的单个观察的大小X

    对于元素明智的转换,如果抵消是数字数组还是未格式化数组dlarray方法指定偏移量格式“OffsetFormat”选择。

    比例因子γ,指定为格式化的dlarray,一个未格式化的dlarray,或数字数组。

    偏移量的大小和格式取决于转换的类型。

    任务 描述
    Channel-wise转换

    类的大小匹配的非单例维度的“C”(通道)输入的尺寸X

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

    Element-wise转换

    数组中的“C”(通道)尺寸,尺寸与“C”(通道)输入的尺寸X和0或相同数量的“年代”(空间),“T”(时间)“U”(未指定的)输入的尺寸X

    每个维度的大小必须为1,或者其大小必须与输入中的相应维度相匹配X.对于任何重复的维度,例如,多重“年代”(空间)尺寸,尺寸必须匹配相应的尺寸X或者都必须是单例的。

    该软件自动扩展任何单例维度,以匹配输入中的单个观察的大小X

    对于元素明智的转换,如果scaleFactor是数字数组还是未格式化数组dlarray,则必须使用“ScaleFormat”选择。

    名称-值参数

    指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

    在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

    例子:‘ε’,1的军医将方差偏移值设置为1的军医

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

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

    • “S”——空间

    • “C”——频道

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

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

    • “U”——未指明的

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

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

    数据类型:字符|字符串

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

    数据类型:|

    未格式化比例因子的尺寸顺序,指定为逗号分隔的对,由“ScaleFormat”和字符向量或字符串标量。

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

    • “S”——空间

    • “C”——频道

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

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

    • “U”——未指明的

    对于层归一化,比例因子必须有“C”(频道)维度。您可以指定多个标记的维度“年代”“U”.你可以使用标签“T”(一次)最多一次。比例因子不能有a“B”(批)维度。

    您必须指定“ScaleFormat”用于元素的规范化scaleFactor数值数组或a是否未格式化dlarray

    例子:“ScaleFormat”、“SSCB”

    数据类型:字符|字符串

    未格式化偏移量的维度顺序,指定为逗号分隔的一对,由“OffsetFormat”和字符向量或字符串标量。

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

    • “S”——空间

    • “C”——频道

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

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

    • “U”——未指明的

    对于层归一化,偏移量必须有“C”(频道)维度。您可以指定多个标记的维度“S”“U”.你可以使用标签“T”(一次)最多一次。偏移量不能有“B”(批)维度。

    您必须指定“OffsetFormat”用于元素的规范化抵消是数字数组还是未格式化数组dlarray

    例子:“OffsetFormat”、“SSCB”

    数据类型:字符|字符串

    输出参数

    全部折叠

    规范化数据,返回为dlarray.输出Y是否与输入具有相同的基础数据类型X

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

    算法

    层归一化操作对元素进行归一化x通过先计算均值来计算输入μl和方差σl2在空间,时间和通道维度上为每个观测独立。然后,它计算归一化激活为

    x x μ l σ l 2 + ϵ

    在哪里ϵ是一个常数,当方差非常小时,它可以提高数值的稳定性。

    为了考虑均值和单位方差为零的输入对于层归一化之后的操作不是最优的可能性,层归一化操作使用转换进一步转移和缩放激活

    y γ x + β

    偏移量在哪里β还有规模因子γ是在网络训练过程中更新的可学习参数。

    参考文献

    Ba, Jimmy Lei, Jamie Ryan Kiros和Geoffrey E. Hinton。“层正常化。”预印本,2016年7月21日提交。https://arxiv.org/abs/1607.06450。

    扩展功能

    版本历史

    在R2021a中引入

    Baidu
    map