主要内容

批处理规范化层

批处理规范化层

描述

批量标准化层独立地对每个通道的所有观测值中的一小批数据进行标准化。为了加快卷积神经网络的训练并降低对网络初始化的敏感性,在卷积层和非线性(如ReLU层)之间使用批量标准化层。

标准化后,层使用可学习的比例因子缩放输入γ并将其偏移一个可学习的偏移量β.

创造

描述

=batchNormalizationLayer创建一个批处理规范化层。

实例

=batchNormalizationLayer(名称、值)创建批处理规范化层并设置可选的受训男子,训练方差,ε,参数和初始化,学习率与正则化名称使用一个或多个名称-值对的属性。例如batchNormalizationLayer('Name','batchnorm'))创建一个名为“batchnorm”.

性质

全部展开

批量标准化

用于预测的平均统计值,指定为以下值之一:

  • 对于二维图像输入,大小为1×1×1的数字数组-数字通道

  • 对于三维图像输入,大小为1×1×1×1的数字数组-数字通道

  • 对于特征或序列输入,大小为的数字数组数字通道-by-1

如果“BatchNormalizationStatistics”培训选项是“移动”,然后软件使用运行估计值近似训练期间的批量标准化统计数据,并在训练后设置受训男子训练方差属性分别为均值和方差的移动估计的最新值。

如果“BatchNormalizationStatistics”培训选项是“人口”,然后在网络培训完成后,软件再次通过数据并设置受训男子训练方差分别从整个训练数据集计算的均值和方差的属性。

该层使用受训男子训练方差在预测过程中规范化输入。

用于预测的方差统计,指定为以下之一:

  • 对于二维图像输入,大小为1×1×1的数字数组-数字通道

  • 对于三维图像输入,大小为1×1×1×1的数字数组-数字通道

  • 对于特征或序列输入,大小为的数字数组数字通道-by-1

如果“BatchNormalizationStatistics”培训选项是“移动”,然后软件使用运行估计值近似训练期间的批量标准化统计数据,并在训练后设置受训男子训练方差属性分别为均值和方差的移动估计的最新值。

如果“BatchNormalizationStatistics”培训选项是“人口”,然后在网络培训完成后,软件再次通过数据并设置受训男子训练方差分别从整个训练数据集计算的均值和方差的属性。

该层使用受训男子训练方差在预测过程中规范化输入。

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

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

输入通道数,指定为“自动”或正整数。

此属性始终等于层输入的通道数。如果数字通道“自动”,则软件会在训练时自动确定通道数的正确值。

参数和初始化

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

  • “一个人”–用1初始化通道比例因子。

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

  • “窄正常”–通过从平均值为零、标准偏差为0.01的正态分布中独立采样,初始化通道比例因子。

  • 函数句柄–使用自定义函数初始化通道比例因子。如果指定函数句柄,则函数的形式必须为比例=函数(sz)哪里深圳是刻度的大小。有关示例,请参阅指定自定义权重初始化函数.

该层仅在以下情况下初始化通道比例因子:规模属性为空。

数据类型:烧焦|一串|功能手柄

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

  • “零”–用零初始化通道偏移。

  • “一个人”–使用1初始化通道偏移。

  • “窄正常”–通过从平均值为零、标准偏差为0.01的正态分布中独立采样来初始化信道偏移。

  • 函数句柄–使用自定义函数初始化通道偏移。如果指定函数句柄,则函数的形式必须为偏移量=func(sz)哪里深圳是刻度的大小。有关示例,请参阅指定自定义权重初始化函数.

该层仅在以下情况下初始化通道偏移:抵消属性为空。

数据类型:烧焦|一串|功能手柄

通道尺度因子γ,指定为数字数组。

通道比例因子是可学习的参数。当您培训网络时,如果规模那么,它是非空的列车网络使用规模属性作为初始值。如果规模那么是空的吗列车网络使用由指定的初始值设定项刻度初始化器.

训练时,,规模是以下内容之一:

  • 对于二维图像输入,大小为1×1×1的数字数组-数字通道

  • 对于三维图像输入,大小为1×1×1×1的数字数组-数字通道

  • 对于特征或序列输入,大小为的数字数组数字通道-by-1

通道偏移β,指定为数字数组。

通道偏移是可学习的参数。当您训练网络时,如果抵消那么,它是非空的列车网络使用抵消属性作为初始值。如果抵消那么是空的吗列车网络使用由指定的初始值设定项偏移初始化器.

训练时,,抵消是以下内容之一:

  • 对于二维图像输入,大小为1×1×1的数字数组-数字通道

  • 对于三维图像输入,大小为1×1×1×1的数字数组-数字通道

  • 对于特征或序列输入,大小为的数字数组数字通道-by-1

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

“BatchNormalizationStatistics”培训选项是“移动”,在每次迭代中,层使用

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

哪里 μ * 表示更新后的平均值, λ μ 表示平均衰减值, μ ^ 表示层输入的平均值,以及 μ 表示移动平均值的最新值。

如果“BatchNormalizationStatistics”培训选项是“人口”,则此选项无效。

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

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

“BatchNormalizationStatistics”培训选项是“移动”,在每次迭代中,层使用

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

哪里 σ 2. * 表示更新后的方差, λ σ 2. 表示方差衰减值, σ 2. ^ 表示层输入的方差,和 σ 2. 表示移动方差值的最新值。

如果“BatchNormalizationStatistics”培训选项是“人口”,则此选项无效。

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

学习率与正则化

比例因子的学习速率因子,指定为非负标量。

软件将该因子乘以全局学习率,以确定层中比例因子的学习率。例如,如果标度学习率因子2.,则层中比例因子的学习速率是当前全局学习速率的两倍。软件根据使用指定的设置确定全局学习速率培训选项作用

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

软件将该系数乘以全局学习率,以确定层中偏移的学习率。例如,如果补偿系数2.,则层中偏移的学习速率是当前全局学习速率的两倍。软件根据使用指定的设置确定全局学习速率培训选项作用

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

软件将该系数乘以全局L2.正则化因子,用于确定层中比例因子的学习速率。例如,如果比例因子2.,然后是L2.层中偏移的正则化是全局L的两倍2.正则化因子。您可以指定全局L2.使用正则化因子培训选项作用

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

软件将该系数乘以全局L2.正则化因子,用于确定层中偏移的学习速率。例如,如果补偿因子2.,然后是L2.层中偏移的正则化是全局L的两倍2.正则化因子。您可以指定全局L2.使用正则化因子培训选项作用

层名称,指定为字符向量或字符串标量。对于数组输入列车网络,assembleNetwork,分层图数据链路网络函数会自动将名称指定给具有名称着手''.

数据类型:烧焦|一串

此属性是只读的。

层的输入数。此层仅接受单个输入。

数据类型:双重的

此属性是只读的。

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

数据类型:单间牢房

此属性是只读的。

层的输出数。此层只有一个输出。

数据类型:双重的

此属性是只读的。

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

数据类型:单间牢房

例子

全部崩溃

创建一个名为“BN1”.

层=批处理规范化层(“姓名”,“BN1”)
layer=BatchNormalizationLayer,属性:名称:“BN1”NumChannel:“自动”TrainedMean:[]TrainedVariance:[]超参数平均衰减:0.1000方差衰减:0.1000ε:1.0000e-05可学习参数偏移量:[]比例:[]显示所有属性

将批处理规范化层包含在大堆

layers=[imageInputLayer([32 3])卷积2dLayer(3,16,“填充”,1)batchNormalizationLayer reluLayer MaxPoolig2Dlayer(2,“大步走”,2)卷积2层(3,32,“填充”,1)batchNormalizationLayer reluLayer fullyConnectedLayer(10)softmaxLayer classificationLayer]
layers=11x1层阵列,带层:1''图像输入32x32x3图像,带“零中心”规格化2''卷积16 3x3卷积,带跨步[1]和填充[1 1]3''批量规格化批量规格化4''ReLU ReLU 5''最大池2x2最大池,带跨步[2]和填充[0]6''卷积32 3x3带跨步[1]和填充[1 1]的卷积7''批量标准化批量标准化8''ReLU ReLU 9''完全连接10''完全连接层10''Softmax Softmax 11''分类输出crossentropyex

更多关于

全部展开

算法

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

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

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

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

Y = γ x ^ + β ,

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

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

如果“BatchNormalizationStatistics”培训选项是“移动”,然后软件使用运行估计值近似训练期间的批量标准化统计数据,并在训练后设置受训男子训练方差属性分别为均值和方差的移动估计的最新值。

如果“BatchNormalizationStatistics”培训选项是“人口”,然后在网络培训完成后,软件再次通过数据并设置受训男子训练方差分别从整个训练数据集计算的均值和方差的属性。

该层使用受训男子训练方差在预测过程中规范化输入。

参考文献

[1] Ioffe、Sergey和Christian Szegedy。“批量规范化:通过减少内部协变量变化来加速深度网络培训。”预印本,2015年3月2日提交。https://arxiv.org/abs/1502.03167.

扩展能力

C/C++代码生成
使用Matlab®编码器生成C和C++代码™.

GPU代码生成
使用GPU编码器为NVIDIA®GPU生成CUDA®代码™.

在R2017b中引入