主要内容

layerNormalizationLayer

层归一化层

    描述

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

    归一化后,该层用一个可学习的比例因子对输入进行缩放γ然后用一个可学习偏移量平移它β

    创建

    描述

    = layerNormalizationLayer创建一个层规范化层。

    例子

    = layerNormalizationLayer (名称、值)设置可选的ε参数和初始化学习率和正则化,名字使用一个或多个名称-值参数的属性。例如,layerNormalizationLayer('名称',' layernorm ')创建一个带有name的层规范化层“layernorm”

    属性

    全部展开

    层正常化

    要添加到小批方差中的常数,指定为等于或大于的数值标量1 e-5

    该层在归一化之前将该常数添加到小批方差中,以确保数值稳定性并避免除零。

    输入通道数,指定为“汽车”或者一个正整数。

    这个属性总是等于输入到该层的通道数。如果NumChannels“汽车”,则软件在训练时自动确定正确的通道数值。

    参数和初始化

    函数初始化通道比例因子,指定为以下之一:

    • “的”-用1初始化通道比例因子。

    • “零”-用零初始化通道比例因子。

    • “narrow-normal”-通过从均值为零、标准差为0.01的正态分布中独立采样,初始化通道尺度因子。

    • 函数句柄——使用自定义函数初始化通道比例因子。如果指定了函数句柄,则该函数必须为Scale = func(sz),在那里深圳是秤的大小。有关示例,请参见指定自定义权重初始化函数

    层只初始化通道比例因子时规模属性为空。

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

    函数初始化通道偏移量,指定为以下之一:

    • “零”-用0初始化通道偏移量。

    • “的”-用1初始化通道偏移量。

    • “narrow-normal”-通过从均值为零、标准差为0.01的正态分布中独立采样,初始化通道偏移量。

    • 函数句柄——使用自定义函数初始化通道偏移量。如果指定了函数句柄,则该函数必须为Offset = func(sz),在那里深圳是秤的大小。有关示例,请参见指定自定义权重初始化函数

    层只初始化通道偏移时抵消属性为空。

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

    渠道规模因子γ,指定为数值数组。

    信道尺度因子是可学习的参数。当你训练一个网络时,如果规模非空吗trainNetwork使用规模属性作为初始值。如果规模那么是空的trainNetwork所指定的初始化式ScaleInitializer

    在训练时,规模是下列之一:

    • 对于2-D图像输入,大小为1 × 1 × -的数值数组NumChannels

    • 对于3-D图像输入,大小为1 × 1 × 1 × -的数值数组NumChannels

    • 对于特征或序列输入,一种大小的数字数组NumChannels1

    通道补偿β,指定为数值数组。

    信道偏移量是可学习的参数。当你训练一个网络时,如果抵消非空吗trainNetwork使用抵消属性作为初始值。如果抵消那么是空的trainNetwork所指定的初始化式OffsetInitializer

    在训练时,抵消是下列之一:

    • 对于2-D图像输入,大小为1 × 1 × -的数值数组NumChannels

    • 对于3-D图像输入,大小为1 × 1 × 1 × -的数值数组NumChannels

    • 对于特征或序列输入,一种大小的数字数组NumChannels1

    学习率和正则化

    缩放因子的学习率因子,指定为非负标量。

    该软件将该因子乘以全局学习率,以确定一层中尺度因子的学习率。例如,如果ScaleLearnRateFactor2,则该层中尺度因子的学习率为当前全局学习率的两倍。属性指定的设置来确定全局学习率trainingOptions函数。

    偏移量的学习率因子,指定为非负标量。

    该软件将该因子乘以全局学习率,以确定一层中偏移量的学习率。例如,如果OffsetLearnRateFactor2,则该层中偏移量的学习率为当前全局学习率的两倍。属性指定的设置来确定全局学习率trainingOptions函数。

    l2比例因子的正则化因子,指定为非负标量。

    软件将这个因子乘以全局L2正则化因子来确定一层中尺度因子的学习率。例如,如果ScaleL2Factor2然后是L2层中偏移量的正则化是全局L的两倍2正则化因子。可以指定全局L2正则化因子使用trainingOptions函数。

    l2偏移量的正则化因子,指定为非负标量。

    软件将这个因子乘以全局L2正则化因子来确定一层中偏移量的学习率。例如,如果OffsetL2Factor2然后是L2层中偏移量的正则化是全局L的两倍2正则化因子。可以指定全局L2正则化因子使用trainingOptions函数。

    层名,指定为字符向量或字符串标量。为数组输入时,trainNetworkassembleNetworklayerGraph,dlnetwork函数自动为层分配名称名字设置为

    数据类型:字符|字符串

    此属性是只读的。

    该层的输入数量。该层只接受单个输入。

    数据类型:

    此属性是只读的。

    输入层的名称。该层只接受单个输入。

    数据类型:细胞

    此属性是只读的。

    层的输出数量。这个图层只有一个输出。

    数据类型:

    此属性是只读的。

    输出层的名称。这个图层只有一个输出。

    数据类型:细胞

    例子

    全部折叠

    创建一个层规范化层的名称“layernorm”

    层= layerNormalizationLayer(“名字”“layernorm”
    layer = LayerNormalizationLayer with properties: Name: 'layernorm' NumChannels: 'auto'超参数Epsilon: 1.0000 -05 Learnable Parameters偏移量:[]比例:[]显示所有属性

    中包含一个层规范化层数组中。

    图层= [imageInputLayer([32 32 3])卷积2dlayer (3,16,“填充”,1) layerNormalizationLayer reluLayer maxPooling2dLayer“步”32岁的,2)convolution2dLayer (3“填充”,1) layerNormalizationLayer reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer
    带有图层的图层数组:1”的形象输入32 x32x3图像zerocenter正常化2”卷积16 3 x3的隆起与步幅[1]和填充[1 1 1 1]3“一层一层标准化规范化4”ReLU ReLU 5”麦克斯池2 x2马克斯池步(2 - 2)和填充[0 0 0 0]6”卷积32 3 x3的隆起与步幅[1]和填充[1 1 1 1]7“一层一层标准化规范化8”ReLU ReLU 9“完全连接10完全连接层”Softmax Softmax 11”分类输出crossentropyex

    算法

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

    x x μ l σ l 2 + ϵ

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

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

    y γ x + β

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

    参考文献

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

    R2021a中引入