主要内容

layernorm

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

    描述

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

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

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

    请注意

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

    例子

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

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

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

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

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

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

    例子

    全部折叠

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

    numChannels = 10;miniBatchSize = 128;sequenceLength = 100;X = rand(numChannels,miniBatchSize, sequencelth);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, sequencelth);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,或数值数组。

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

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

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

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

    任务 描述
    Channel-wise转换

    对象的大小匹配的非单维度的数组“C”(通道)输入的维度dlX

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

    Element-wise转换

    数组。“C”(通道)尺寸与“C”(通道)输入的维度dlX零或相同数量的“年代”(空间),“T”(时间)“U”(未指定的)输入的维度dlX

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

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

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

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

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

    任务 描述
    Channel-wise转换

    对象的大小匹配的非单维度的数组“C”(通道)输入的维度dlX

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

    Element-wise转换

    数组。“C”(通道)尺寸与“C”(通道)输入的维度dlX零或相同数量的“年代”(空间),“T”(时间)“U”(未指定的)输入的维度dlX

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

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

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

    名称-值参数

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

    例子:‘ε’,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”(时间)最多一次。比例因子不能有“B”(批)维度。

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

    例子:“ScaleFormat”、“SSCB”

    数据类型:字符|字符串

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

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

    • “S”——空间

    • “C”——频道

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

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

    • “U”——未指明的

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

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

    例子:“OffsetFormat”、“SSCB”

    数据类型:字符|字符串

    输出参数

    全部折叠

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

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

    算法

    层规范化操作规范化元素x首先计算平均值μl和方差σl2在空间,时间和通道维度为每个观测独立。然后,计算归一化激活为

    x x μ l σ l 2 + ϵ

    在哪里ϵ是在方差很小时提高数值稳定性的常数。

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

    y γ x + β

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

    参考文献

    [1]巴、吉米·雷、杰米·瑞安·基罗斯和杰弗里·e·辛顿。“层正常化。”预印本,2016年7月21日提交。https://arxiv.org/abs/1607.06450。

    扩展功能

    R2021a中引入