主要内容

批次标准

独立地对每个通道的所有观测值进行归一化

描述

批处理标准化操作独立地对每个通道的所有观测值的输入数据进行标准化。为了加快卷积神经网络的训练速度并降低对网络初始化的敏感性,在卷积和非线性操作(如雷卢.

标准化后,操作将输入移动一个可学习的偏移量β并通过可学习的比例因子对其进行缩放γ.

这个批次标准函数将批处理规范化操作应用于dlarray数据使用dlarray对象允许您标记标注,从而使处理高维数据变得更容易。例如,您可以使用标签标记哪些标注对应于空间、时间、通道和批次标注'S',“不”,“C”“B”标签。对于未指定尺寸和其他尺寸,请使用“你”标签对于dlarray对于在特定标注上操作的对象函数,可以通过格式化dlarray对象,或使用“数据格式”选项

笔记

在批处理中应用批处理规范化分层图反对或数组,使用批处理规范化层.

实例

德利=批处理范数(dlX,抵消,缩放因子)将批处理规范化操作应用于输入数据dlX并使用指定的偏移和比例因子进行变换。

该函数在整个过程中正常化'S'(空间),“不”(时间),“B”(批次),以及“你”(未指定)设备的尺寸dlX对于中的每个通道“C”(通道)尺寸,独立。

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

[德利,波普穆,popSigmaSq]=批处理范数(dlX,抵消,缩放因子)还返回输入数据的总体平均值和方差dlX.

德利=批处理范数(dlX,抵消,缩放因子,,西格马斯克)使用平均值和方差应用批标准化操作西格马斯克分别地

实例

[德利,更新的,更新的SIGMASQ]=批处理范数(dlX,抵消,缩放因子,,西格马斯克)使用平均值和方差应用批标准化操作西格马斯克,并返回更新的移动平均值和方差统计信息。

使用此语法可在培训期间维护均值和方差统计数据的运行值。使用均值和方差的最终更新值进行预测和分类。

[___]=批处理范数(___,“数据格式”,FMT)将批处理规范化操作应用于具有指定格式的未格式化输入数据FMT使用任何先前的语法。输出德利是一个无格式的dlarray对象的标注顺序与dlX例如“数据格式”、“SSCB”指定格式为的二维图像输入数据“SSCB”(空间、空间、通道、批次)。

[___]=批处理范数(___,名称、值)指定除了先前语法中的输入参数之外,还使用一个或多个名称-值对参数的选项。例如,“平均衰减”,0.3设置移动平均计算的衰减率。

例子

全部崩溃

创建一个格式化的dlarray对象,该对象包含具有3个通道的128个28×28图像。请指定格式“SSCB”(空间、空间、通道、批次)。

miniBatchSize=128;输入大小=[28];numChannels=3;X=兰德(inputSize(1)、inputSize(2)、NumChannel、miniBatchSize);dlX=dlX阵列(X,“SSCB”);

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

尺寸(dlX)
ans=1×428 28 3 128
dims(dlX)
ans=‘SSCB’

初始化批量标准化的比例和偏移量。对于比例,指定一个1的向量。对于偏差,指定一个0的向量。

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

使用批次标准函数并返回小批量统计信息。

[dlY,mu,sigmaSq]=batchnorm(dlX,offset,scaleFactor);

查看输出的大小和格式德利.

尺寸(dlY)
ans=1×428 28 3 128
昏暗(dlY)
ans=‘SSCB’

查看小批量平均值.

亩=3×10.4998 0.4993 0.5011

查看小批量差异西格马斯克.

西格马斯克
西格马斯克=3×10.0831 0.0832 0.0835

使用批次标准函数用于规范化多批数据,并在每次规范化后更新整个数据集的统计信息。

创建三批数据。数据由10×10的随机数组和五个通道组成。每批包含20个观察值。第二批和第三批按乘以因子的比例缩放1.52.5,因此数据集的平均值随批次的增加而增加。

高度=10;宽度=10;通道=5;观测值=20;X1=rand(高度、宽度、通道、观测值);dlX1=dlarray(X1,“SSCB”);X2=1.5*rand(高度、宽度、通道、观测值);dlX2=dlarray(X2,“SSCB”);X3=2.5*rand(高度、宽度、通道、观测值);dlX3=dlarray(X3,“SSCB”);

创建可学习的参数。

偏移=零(通道,1);比例=一(通道,1);

使用规范化第一批数据dlX1批次标准.获取该批次的平均值和方差值作为输出。

[dlY1,mu,sigmaSq]=batchnorm(dlX1,offset,scale);

规范化第二批数据,dlX2使用西格马斯克作为输入,以批量获得数据的组合平均值和方差值dlX1dlX2.

[dlY2,datasetMu,datasetSigmaSq]=batchnorm(dlX2,offset,scale,mu,sigmaSq);

规范化最后一批数据,dlX3。更新数据集统计信息数据集数据集SIGMASQ批量获取所有数据的组合均值和方差值dlX1,dlX2dlX3.

[dlY3,datasetMuFull,datasetSigmaSqFull]=batchnorm(dlX3,offset,scale,datasetMu,datasetSigmaSq);

当每个批次标准化时,观察每个通道平均值的变化。

绘图([mu';datasetMu';datasetMuFull'])图例({“第一频道”,“第二频道”,“第三频道”,‘第四频道’,‘第五频道’},“位置”,‘东南’)xticks([1 2 3])xlabel(“批次数”)xlim([0.9 3.1])ylabel(“每通道平均值”)头衔(“数据集平均值”)

图中包含一个轴。标题数据集的轴平均包含5个line类型的对象。这些对象表示通道1、通道2、通道3、通道4和通道5。

输入参数

全部崩溃

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

如果dlX是一个无格式的dlarray或数字数组,则必须使用“数据格式”选项如果dlX是一个数字数组,则缩放因子抵消一定是个dlarray对象

dlX必须有一个“C”(通道)尺寸。

抵消β,指定为格式化的dlarray,无格式dlarray,或具有一个非Singleton维度的数值数组,其大小与“C”(通道)输入的尺寸dlX.

如果抵消是格式化的dlarray对象,则非Singleton标注必须具有标签“C”(频道)。

比例因子γ,指定为格式化的dlarray,无格式dlarray,或具有一个非Singleton维度的数值数组,其大小与“C”(通道)输入的尺寸dlX.

如果缩放因子是格式化的dlarray对象,则非Singleton标注必须具有标签“C”(频道)。

标准化的平均统计值,指定为与“C”输入数据的维度。

数据类型:仅有一个的|双重的

标准化的方差统计,指定为与“C”输入数据的维度。

数据类型:仅有一个的|双重的

名称-值对参数

指定可选的逗号分隔的字符对名称、值论据。名称是参数名和价值是对应的值。名称必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:名称1,值1,…,名称,值.

例子:“平均衰减”,0.3,“方差衰减”,0.5将多批数据的均值和方差的移动平均计算的衰减率设置为0.30.5分别地

未格式化输入数据的维度顺序,指定为逗号分隔对,由“数据格式”和字符向量或字符串标量FMT它为数据的每个维度提供了一个标签。

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

  • 'S'-空间的

  • “C”-渠道

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

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

  • “你”-未指明

可以指定多个标注'S'“你”。你可以使用标签“C”,“B”“不”最多一次。

您必须指定“数据格式”当输入数据不是格式化的dlarray.

例子:“数据格式”、“SSCB”

数据类型:烧焦|一串

用于防止被零除错误的方差偏移量,指定为逗号分隔对,由“ε”和数字标量。指定的值必须大于1e-5。默认值为1e-5.

数据类型:仅有一个的|双重的

移动平均值计算的衰减值,指定为介于01..

该函数使用以下命令更新移动平均值:

μ * = λ μ μ ^ + ( 1. λ μ ) μ ,

哪里 μ * 表示更新后的平均值更新的, λ μ 表示平均衰减值“卑鄙的堕落”, μ ^ 表示输入数据的平均值,以及 μ 表示平均值的当前值.

数据类型:仅有一个的|双重的

移动方差计算的衰减值,指定为介于01..

该函数使用以下命令更新移动方差值:

σ 2. * = λ σ 2. σ 2. ^ + ( 1. λ σ 2. ) σ 2. ,

哪里 σ 2. * 表示更新后的方差更新的SIGMASQ, λ σ 2. 表示方差衰减值“VarianceDecay”, σ 2. ^ 表示输入数据的方差,以及 σ 2. 表示方差的当前值西格马斯克.

数据类型:仅有一个的|双重的

输出参数

全部崩溃

标准化数据,作为dlarray具有与相同的基础数据类型dlX.

如果输入数据dlX是格式化的dlarray然后德利格式与dlX。如果输入数据不是格式化的dlarray然后德利是一个无格式的dlarray使用与输入数据相同的维度顺序。

输出的大小德利匹配输入的大小dlX.

每个通道输入数据的平均值,作为长度等于数据大小的数字列向量返回“C”输入数据的维度。

输入数据的每通道方差,作为长度等于数据大小的数字列向量返回“C”输入数据的维度。

更新的平均统计数据,作为长度等于数据大小的数字向量返回“C”输入数据的维度。

该函数使用以下命令更新移动平均值:

μ * = λ μ μ ^ + ( 1. λ μ ) μ ,

哪里 μ * 表示更新后的平均值更新的, λ μ 表示平均衰减值“卑鄙的堕落”, μ ^ 表示输入数据的平均值,以及 μ 表示平均值的当前值.

更新的方差统计信息,作为长度等于“C”输入数据的维度。

该函数使用以下命令更新移动方差值:

σ 2. * = λ σ 2. σ 2. ^ + ( 1. λ σ 2. ) σ 2. ,

哪里 σ 2. * 表示更新后的方差更新的SIGMASQ, λ σ 2. 表示方差衰减值“VarianceDecay”, σ 2. ^ 表示输入数据的方差,以及 σ 2. 表示方差的当前值西格马斯克.

算法

批处理规范化操作规范化元素x通过首先计算平均值来计算输入的μB和方差σB2.在每个通道的空间、时间和观测维度上独立进行。然后,它计算标准化激活,如下所示:

x ^ = x μ B σ B 2. + ϵ ,

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

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

Y = γ x ^ + β ,

偏移量在哪里β比例因子γ是在网络培训期间更新的可学习参数。

为了在训练后使用网络进行预测,批量标准化需要一个固定的均值和方差来标准化数据。这个固定的均值和方差可以从训练后的训练数据中计算出来,或者在训练期间使用运行统计计算来近似。

扩展能力

在R2019b中引入