主要内容

BatchnormalizationLayer.

批量归一化层

描述

批量归一化层独立地将每个通道的所有观察结果归一批数据。为了加速卷积神经网络的训练,降低对网络初始化的敏感性,在卷积层和非线性之间使用批量归一化层,例如Relu层。

在归一化之后,该图层以学习的比例因子缩放输入γ.并通过学习偏移来转移β

创建

描述

= BatchnormalizationLayer.创建批量归一化层。

例子

= BatchnormalizationLayer(名称,价值创建批量归一化层并设置可选训练有训练训练有素埃斯利昂参数和初始化学习速度和正规化, 和名称属性使用一个或多个名称值对。例如,BatchnormalizationLayer('姓名','batchnorm')使用名称创建批量标准化层'Batchnorm'

特性

展开全部

批量归一化

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

  • 对于2-D图像输入,一个大小的数字阵列1-by-1-by-NumChannels.

  • 对于3-D图像输入,1-×1-1-by-1-by-1-by-1-by-1-by-1的数字阵列数组NumChannels.

  • 对于特征或序列输入,大小的数字数组NumChannels.-By-1

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

如果是'BatchnormalizationStatistics'培训选项是'人口'然后在网络训练完成后,软件通过数据一次通过数据并设置训练有训练训练有素分别从整个训练数据集计算的平均值和方差。

该层使用了训练有训练训练有素在预测期间归一化输入。

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

  • 对于2-D图像输入,一个大小的数字阵列1-by-1-by-NumChannels.

  • 对于3-D图像输入,1-×1-1-by-1-by-1-by-1-by-1-by-1的数字阵列数组NumChannels.

  • 对于特征或序列输入,大小的数字数组NumChannels.-By-1

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

如果是'BatchnormalizationStatistics'培训选项是'人口'然后在网络训练完成后,软件通过数据一次通过数据并设置训练有训练训练有素分别从整个训练数据集计算的平均值和方差。

该层使用了训练有训练训练有素在预测期间归一化输入。

常数添加到迷你批处理差异,指定为等于或大于或大于的数字标量1E-5

在归一化之前,该图层将此常数增加到迷你批量方差,以确保数值稳定性,避免分割零。

输入通道数,指定为'汽车'或正整数。

此属性始终等于到图层的输入的通道数。如果NumChannels.等于'汽车',然后软件自动确定培训时间的通道数的正确值。

参数和初始化

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

  • '那些'- 用初始化频道比例因子。

  • 'zeros'- 用零初始化信道比例因子。

  • '窄正常'- 通过使用零平均值和标准偏差的正常分布独立采样来初始化信道比例因子。

  • 功能句柄 - 使用自定义功能初始化信道比例因子。如果指定函数句柄,则函数必须是表单Scale = Func(SZ), 在哪里SZ.是规模的大小。例如,看到指定自定义权重初始化功能

该层仅初始化信道比例因子规模财产是空的。

数据类型:char|细绳|function_handle.

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

  • 'zeros'- 用零初始化频道偏移量。

  • '那些'- 用初始化频道偏移量。

  • '窄正常'- 通过使用零平均值和标准偏差的正常分布独立采样初始化信道偏移。

  • 功能句柄 - 使用自定义功能初始化频道偏移量。如果指定函数句柄,则函数必须是表单Offset = Func(SZ), 在哪里SZ.是规模的大小。例如,看到指定自定义权重初始化功能

该图层仅初始化频道偏移量时抵消财产是空的。

数据类型:char|细绳|function_handle.

渠道规模因素γ.,指定为数字数组。

信道比例因子是可学习参数。培训网络时,如果规模是不是空的,然后Trainnetwork.用来规模属性作为初始值。如果规模是空的,然后Trainnetwork.使用指定的初始化程序SpaustInitializer.

在培训时间,规模是以下之一:

  • 对于2-D图像输入,一个大小的数字阵列1-by-1-by-NumChannels.

  • 对于3-D图像输入,1-×1-1-by-1-by-1-by-1-by-1-by-1的数字阵列数组NumChannels.

  • 对于特征或序列输入,大小的数字数组NumChannels.-By-1

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

频道偏移是可学习参数。培训网络时,如果抵消是不是空的,然后Trainnetwork.用来抵消属性作为初始值。如果抵消是空的,然后Trainnetwork.使用指定的初始化程序offsetInitializer

在培训时间,抵消是以下之一:

  • 对于2-D图像输入,一个大小的数字阵列1-by-1-by-NumChannels.

  • 对于3-D图像输入,1-×1-1-by-1-by-1-by-1-by-1-by-1的数字阵列数组NumChannels.

  • 对于特征或序列输入,大小的数字数组NumChannels.-By-1

移动平均计算的衰减值,指定为数字标量0.1

当。。。的时候'BatchnormalizationStatistics'培训选项是'移动',在每次迭代时,图层使用移动平均值更新

μ. * = λ. μ. μ. ^ + 1 - λ. μ. μ.

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

如果是'BatchnormalizationStatistics'培训选项是'人口',此选项无效。

数据类型:单身的|双倍的

移动方差计算的衰减值,指定为数字标量0.1

当。。。的时候'BatchnormalizationStatistics'培训选项是'移动',在每次迭代时,图层使用移动方差值更新

σ. 2 * = λ. σ. 2 σ. 2 ^ + 1 - λ. σ. 2 σ. 2

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

如果是'BatchnormalizationStatistics'培训选项是'人口',此选项无效。

数据类型:单身的|双倍的

学习速度和正规化

尺度因子的学习率因子,指定为非负标量。

该软件通过全局学习率乘以此因素来确定图层中的比例因子的学习率。例如,如果ScaleLearnratefactor.2然后,图层中的比例因子的学习率是当前全球学习率的两倍。该软件根据指定的设置确定全局学习速率培训选项功能。

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

该软件通过全局学习速率乘以此因素来确定层中偏移的学习速率。例如,如果offsetlearnratefactor.等于2然后,图层中偏移的学习率是当前全球学习率的两倍。该软件根据指定的设置确定全局学习速率培训选项功能。

L.2规模因子的正则化因子,指定为非负标量。

该软件将此因素乘以全球l2正则化因子确定图层中的比例因子的学习率。例如,如果尺寸尺寸是2,然后是l2图层中偏移的正则化是全球L的两倍2正则化因素。您可以指定全球l2正则化因子使用培训选项功能。

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

该软件将此因素乘以全球l2正规化因子确定层中偏移中的学习速率。例如,如果offsetl2factor.是2,然后是l2图层中偏移的正则化是全球L的两倍2正则化因素。您可以指定全球l2正则化因子使用培训选项功能。

图层名称,指定为字符向量或字符串标量。要在图层图中包含一个图层,必须指定非空,唯一的图层名称。如果您使用该图层培训系列网络名称设定为'',然后软件会自动为培训时间分配给图层的名称。

数据类型:char|细绳

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

数据类型:双倍的

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

数据类型:细胞

图层的输出数。此图层仅具有单个输出。

数据类型:双倍的

图层的输出名称。此图层仅具有单个输出。

数据类型:细胞

例子

全部收缩

使用名称创建批量归一化层'bn1'

tallay = batchnormalizationLayer('名称''bn1'
TALLES = BATCHNORMALIZALLAYER具有属性:名称:'BN1'NUMCHANNELS:'AUTO'训练:[]培训variance:[] virtparameters意味着:0.1000 variancecay:0.1000 epsilon:1.0000E-05学习参数偏移量:[]缩放:[]显示所有属性

包括批量归一化层大批。

图层= [ImageInputLayer([32 32 3])卷积2dlayer(3,16,'填充'1)BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(2,'走吧',2)卷积2dlayer(3,32,'填充',1)BatchnormalizationLayer Rublayer全连接列(10)SoftMaxLayer分类层]
图层= 11x1层阵列,带有图层:1''图像输入32x32x3图像,带有'zerocenter'归一化2''卷积16 3x3卷曲与步幅[1 1]和填充[1 1 1] 3'批量归一化批量归一化4''Relu Relu 5''最大池2x2 max汇集步进[2 2]和填充[0 0 0 0] 6''卷积32 3x3卷绕卷发[1 1]和填充[1 1 1 1] 7'批量归一化批量归一化8''Relu Relu 9''完全连接的10完全连接的层10''Softmax Softmax 11''分类输出Crossentropyex

更多关于

展开全部

算法

批量归一化操作将元素标准化X一世首先计算平均值的输入μ.B.和方差σ.B.2在每个通道的空间,时间和观察尺寸上独立地。然后,它计算规范化的激活

X 一世 ^ = X 一世 - μ. B. σ. B. 2 + ε.

在哪里ε.当方差非常小时,这是一个常数,提高数值稳定性。

为了允许具有零均值和单位方差的输入的可能性对于跟随批量归一化的操作而不是最佳,批量归一化操作进一步换档并使用转换缩放激活

y 一世 = γ. X ^ 一世 + β

哪里偏移β和规模因子γ.是在网络培训期间更新的可学习参数。

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

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

如果是'BatchnormalizationStatistics'培训选项是'人口'然后在网络训练完成后,软件通过数据一次通过数据并设置训练有训练训练有素分别从整个训练数据集计算的平均值和方差。

该层使用了训练有训练训练有素在预测期间归一化输入。

参考

[1] Ioffe,Sergey和Christian Szegedy。“批量标准化:通过减少内部协变速转移加速深度网络培训。”预印,arxiv:1502.03167(2015)。

扩展能力

C / C ++代码生成
使用MATLAB®Coder™生成C和C ++代码。

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

在R2017B中介绍