主要内容

batchNormalizationLayer

批归一化层

描述

一批标准化规范化的数据在所有观测mini-batch层每个通道独立。加快卷积神经网络的训练,减少对网络的初始化,使用批卷积层之间的归一化层和非线性,如ReLU层。

正常化后,鳞片层的输入可学的比例因子γ可学的抵消和变化β

创建

描述

= batchNormalizationLayer创建一个批处理标准化层。

例子

= batchNormalizationLayer (名称,值)创建一个批处理归一化层和设置可选的TrainedMean,TrainedVariance,ε,参数和初始化,学习速率、正规化,的名字使用一个或多个属性名称-值对。例如,batchNormalizationLayer('名称',' batchnorm ')创建一个批处理标准化层的名称“batchnorm”

属性

全部展开

批正常化

意味着数据用于预测,指定为以下之一:

  • 对二维图像输入,数字数组大小1-by-1-by -NumChannels

  • 3 d图像输入,数值数组的大小1-by-1-by-1-by -NumChannels

  • 功能或序列输入,数值大小的数组NumChannels1

如果“BatchNormalizationStatistics”训练方法是“移动”,那么软件接近批规范化使用运行估计和统计在训练,训练后,设置TrainedMeanTrainedVariance属性的最新值的均值和方差的估计,分别。

如果“BatchNormalizationStatistics”训练方法是“人口”网络训练完成后,软件通过数据和设置TrainedMeanTrainedVariance属性的均值和方差计算整个训练数据集,分别。

层使用TrainedMeanTrainedVariance在预测正常输入。

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

  • 对二维图像输入,数字数组大小1-by-1-by -NumChannels

  • 3 d图像输入,数值数组的大小1-by-1-by-1-by -NumChannels

  • 功能或序列输入,数值大小的数组NumChannels1

如果“BatchNormalizationStatistics”训练方法是“移动”,那么软件接近批规范化使用运行估计和统计在训练,训练后,设置TrainedMeanTrainedVariance属性的最新值的均值和方差的估计,分别。

如果“BatchNormalizationStatistics”训练方法是“人口”网络训练完成后,软件通过数据和设置TrainedMeanTrainedVariance属性的均值和方差计算整个训练数据集,分别。

层使用TrainedMeanTrainedVariance在预测正常输入。

常数添加mini-batch方差,指定为数字标量等于或大于1 e-5

层增加这个常数mini-batch方差标准化之前确保数值稳定,避免除零。

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

这个属性总是等于输入层的通道的数量。如果NumChannels“汽车”软件自动确定正确的值,那么在培训时间通道的数量。

参数和初始化

函数来初始化通道规模因素,指定为以下之一:

  • “的”——初始化通道规模的因素。

  • “零”——初始化通道规模因素与零。

  • “narrow-normal”——初始化通道规模因素独立抽样从正态分布的均值为零和标准偏差为0.01。

  • 函数处理——使用一个自定义函数初始化通道规模因素。如果你指定一个函数处理,那么必须表单的功能规模= func(深圳),在那里深圳规模的大小。例如,看到的指定自定义权重的初始化函数

层只初始化通道规模因素时规模属性是空的。

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

函数来初始化通道补偿,指定为以下之一:

  • “零”——初始化通道补偿为零。

  • “的”——初始化通道补偿的。

  • “narrow-normal”——初始化通道补偿独立抽样从正态分布的均值为零和标准偏差为0.01。

  • 函数处理——使用一个自定义函数初始化通道补偿。如果你指定一个函数处理,那么必须表单的功能抵消= func(深圳),在那里深圳规模的大小。例如,看到的指定自定义权重的初始化函数

层时才初始化通道补偿抵消属性是空的。

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

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

渠道规模因素是可学的参数。当你训练一个网络,如果规模非空的,那么trainNetwork使用规模属性的初始值。如果规模是空的,然后trainNetwork使用指定的初始化程序ScaleInitializer

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

  • 对二维图像输入,数字数组大小1-by-1-by -NumChannels

  • 3 d图像输入,数值数组的大小1-by-1-by-1-by -NumChannels

  • 功能或序列输入,数值大小的数组NumChannels1

通道补偿β,指定为一个数字数组。

通道补偿参数可学的。当你训练一个网络,如果抵消非空的,那么trainNetwork使用抵消属性的初始值。如果抵消是空的,然后trainNetwork使用指定的初始化程序OffsetInitializer

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

  • 对二维图像输入,数字数组大小1-by-1-by -NumChannels

  • 3 d图像输入,数值数组的大小1-by-1-by-1-by -NumChannels

  • 功能或序列输入,数值大小的数组NumChannels1

衰减值移动平均计算,指定为一个数值之间的标量01

“BatchNormalizationStatistics”训练方法是“移动”在每个迭代中,层更新移动平均值

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

在哪里 μ * 表示更新的意思是, λ μ 表示的意思是衰减值, μ ^ 表示层输入的均值 μ 表示移动平均值的最新值。

如果“BatchNormalizationStatistics”训练方法是“人口”没有影响,那么这个选项。

数据类型:|

移动衰减值方差计算,指定为一个数值之间的标量01

“BatchNormalizationStatistics”训练方法是“移动”在每个迭代中,层更新移动方差值使用

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

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

如果“BatchNormalizationStatistics”训练方法是“人口”没有影响,那么这个选项。

数据类型:|

学习速率、正规化

学习速率因子规模因素,指定为负的标量。

软件由全球学习速率繁殖这个因素来确定学习速率在一层规模因素。例如,如果ScaleLearnRateFactor2,那么学习速率的规模因素层是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions函数。

学习速率因子补偿,指定为负的标量。

软件由全球学习速率繁殖这个因素来确定补偿的学习速率在一层。例如,如果OffsetLearnRateFactor2,那么学习速率的补偿层是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions函数。

l2正则化因子规模因素,指定为负的标量。

由全球L软件繁殖这个因素2正则化因子来确定学习速率的一层规模因素。例如,如果ScaleL2Factor2,然后L2正则化的补偿层是全球L的两倍2正则化因子。您可以指定全球L2正则化因子使用trainingOptions函数。

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

由全球L软件繁殖这个因素2正则化因子来确定补偿的学习速率在一层。例如,如果OffsetL2Factor2,然后L2正则化的补偿层是全球L的两倍2正则化因子。您可以指定全球L2正则化因子使用trainingOptions函数。

图层名称,指定为一个特征向量或字符串标量。为数组输入,trainNetwork,assembleNetwork,layerGraph,dlnetwork函数自动分配层的名称的名字设置为

数据类型:字符|字符串

这个属性是只读的。

输入层的数量。这一层只接受一个输入。

数据类型:

这个属性是只读的。

输入层的名称。这一层只接受一个输入。

数据类型:细胞

这个属性是只读的。

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

数据类型:

这个属性是只读的。

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

数据类型:细胞

例子

全部折叠

创建一批标准化层的名字“BN1”

层= batchNormalizationLayer (“名字”,“BN1”)
层= BatchNormalizationLayer属性:名称:“BN1”NumChannels:“汽车”TrainedMean: [] TrainedVariance: [] Hyperparameters MeanDecay: 0.1000 VarianceDecay: 0.1000ε:1.0000 e-05可学的参数偏移:[]:[]显示所有属性

包括批处理标准化层数组中。

32 32层= [imageInputLayer ([3]) convolution2dLayer (3 16“填充”1)batchNormalizationLayer reluLayer maxPooling2dLayer (2“步”32岁的,2)convolution2dLayer (3“填充”1)batchNormalizationLayer reluLayer fullyConnectedLayer (10) softmaxLayer classificationLayer]
层= 11 x1层与层:数组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 crossentropyex十一”分类输出

更多关于

全部展开

算法

批处理规范化操作可实现元素x的输入,首先计算的意思μB和方差σB2在空间、时间和观察每个通道独立维度。然后,计算归一化激活

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

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

允许输入的可能性为零均值和单位方差不是最佳的操作遵循批正常化,批处理规范化操作进一步转变和尺度转换激活使用

y = γ x ^ + β ,

的偏移量β和规模因素γ在网络训练可学的参数更新。

进行预测和网络训练后,批规范化需要一个固定的均值和方差标准化数据。这个固定的均值和方差可以计算从训练数据训练后,或近似在训练使用运行统计计算。

如果“BatchNormalizationStatistics”训练方法是“移动”,那么软件接近批规范化使用运行估计和统计在训练,训练后,设置TrainedMeanTrainedVariance属性的最新值的均值和方差的估计,分别。

如果“BatchNormalizationStatistics”训练方法是“人口”网络训练完成后,软件通过数据和设置TrainedMeanTrainedVariance属性的均值和方差计算整个训练数据集,分别。

层使用TrainedMeanTrainedVariance在预测正常输入。

引用

[1]约飞,谢尔盖和基督教Szegedy。“批量标准化:加速深层网络培训通过减少内部协变量的转变。“预印本,2015年3月2日提交。https://arxiv.org/abs/1502.03167。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。

介绍了R2017b