主要内容

このページの翻訳は最新ではありません。ここをクリックして,英语の最新版を参照してください。

batchNormalizationLayer

说明

バッチ正规化层は,ミニバッチ全体で各入力チャネルを正规化します。畳み込みニューラルネットワークの学习速度を上げ,ネットワークの初期化に対する感度を下げるには,畳み込み层の间にあるバッチ正规化层と,RELU层などの非线形性を使用します。

この層はまず,ミニバッチの平均を減算し,ミニバッチの標準偏差で除算することにより,各チャネルの活性化を正規化します。さらに,学習可能なオフセットβだけ入力をシフトし,それを学習可能なスケール係数γだけスケーリングします。

作作者

说明

= batchNormalizationLayerは,バッチ正規化層を作成します。

= batchNormalizationLayer ('姓名',价值は,バッチ正規化層を作成し,名前と値のペアを使用して,オプションのバッチ正规化パラメーターと初期化学习率および正则化,および姓名の各プロパティを設定します。たとえば,batchNormalizationLayer( '姓名', 'batchnorm')は,“batchnorm”という名前のバッチ正规化层を作成します。複数の名前と値のペアを指定できます。各プロパティ名を引用符で囲みます。

プロパティ

すべて展開する

バッチ正规化

各チャネルの入力の平均。次のいずれかとして指定します。

  • 2次元イメージ入力の场合,サイズが1×1×NumChannelsの数値配列

  • 3次元イメージ入力の场合,サイズが1×1×1×NumChannelsの数値配列

  • 特徴入力またはシーケンス入力の場合,サイズがNumChannels行1列の数値配列

ネットワーク学习の完了后に,学习データセット全体の入力の平均が计算されます。层は(ミニバッチの平均の代わりに)TrainedMeanを使用して,予測時に入力を正規化します。

各チャネルの入力の分散。次のいずれかとして指定します。

  • 2次元イメージ入力の场合,サイズが1×1×NumChannelsの数値配列

  • 3次元イメージ入力の场合,サイズが1×1×1×NumChannelsの数値配列

  • 特徴入力またはシーケンス入力の場合,サイズがNumChannels行1列の数値配列

ネットワーク学习の完了后に,学习データセット全体の入力の分散が计算されます。层は(ミニバッチの分散の代わりに)TrainedVarianceを使用して,予測時に入力を正規化します。

ミニバッチの分散に加算する定数。1E-5以上の数値スカラーとして指定します。

層は,正規化の前にミニバッチの分散にこの定数を加算して,数値安定性を確保し,ゼロ除算を回避します。

入力チャネル数。'汽车'または正の整数として指定します。

このプロパティは,常に层への入力のチャネル数に等しくなります。NumChannels'汽车'に等しい場合,学習時にチャネル数の正しい値が推測されます。

パラメーターと初期化

チャネルスケール係数を初期化する関数。次のいずれかに指定します。

  • “的”- 1でチャネルスケール系数を初期化します。

  • “零”- 0でチャネルスケール係数を初期化します。

  • “narrow-normal”- 平均0,标准偏差0.01の正规分布から个别にサンプリングを行って,チャネルスケール系数を初期化します。

  • 关数ハンドル - カスタム关数でチャネルスケール系数を初期化します关数ハンドルを指定する场合,关数は规模= func(深圳)という形式でなければなりません。ここで,SZ.はスケールのサイズです。例については,カスタム重み初期化関数の指定を参照してください。

この层では,规模プロパティが空の場合にのみチャネルスケール係数が初期化されます。

データ型:字符|细绳|function_handle

チャネルオフセットを初期化する関数。次のいずれかに指定します。

  • “零”- 0でチャネルオフセットを初期化します。

  • “的”- 1でチャネルオフセットを初期化します。

  • “narrow-normal”- 平均0,标准偏差0.01の正规分布から个别にサンプリングを行って,チャネルオフセットを初期化します。

  • 关数ハンドル - カスタム关数でチャネルオフセットを初期化します关数ハンドルを指定する场合,关数は偏移量= FUNC(SZ)という形式でなければなりません。ここで,SZ.はスケールのサイズです。例については,カスタム重み初期化関数の指定を参照してください。

この层では,抵消プロパティが空の场合にのみチャネルオフセットが初期化されます。

データ型:字符|细绳|function_handle

チャネルスケール系数γ。数値配列として指定します。

チャネルスケール係数は学習可能なパラメーターです。ネットワークの学習時に,规模が空ではない场合,trainNetwork规模プロパティを初期値として使用します。规模が空の场合,trainNetworkScaleInitializerによって指定された初期化子を使用します。

学習時、规模は次のいずれかです。

  • 2次元イメージ入力の场合,サイズが1×1×NumChannelsの数値配列

  • 3次元イメージ入力の场合,サイズが1×1×1×NumChannelsの数値配列

  • 特徴入力またはシーケンス入力の場合,サイズがNumChannels行1列の数値配列

チャネルオフセットβ。数値配列として指定します。

チャネルオフセットは学习可能なパラメーターです。ネットワークの学习时に,抵消が空ではない场合,trainNetwork抵消プロパティを初期値として使用します。抵消が空の场合,trainNetworkOffsetInitializerによって指定された初期化子を使用します。

学習時、抵消は次のいずれかです。

  • 2次元イメージ入力の场合,サイズが1×1×NumChannelsの数値配列

  • 3次元イメージ入力の场合,サイズが1×1×1×NumChannelsの数値配列

  • 特徴入力またはシーケンス入力の場合,サイズがNumChannels行1列の数値配列

学习率および正则化

スケール係数の学習率係数。非负のスカラーとして指定します。

この係数にグローバル学習率が乗算されて,層のスケール係数の学習率が決定されます。たとえば,ScaleLearnRateFactor2の场合,层のスケール系数の学习率は现在のグローバル学习率の2倍になります。关数trainingOptionsで指定された设定に基づいて,グローバル学习率が决定されます。

オフセットの学習率係数。非负のスカラーとして指定します。

この系数にグローバル学习率が乘算されて,层のオフセットの学习率が决定されます。たとえば,OffsetLearnRateFactor2の场合,层のオフセットの学习率は现在のグローバル学习率の2倍になります。关数trainingOptionsで指定された设定に基づいて,グローバル学习率が决定されます。

スケール系数の大号2正则化系数。非负のスカラーとして指定します。

この係数にグローバルL2正則化係数が乗算されて,層のスケール係数の学習率が決定されます。たとえば,ScaleL2Factorが2の場合,層のオフセットのL2正则化はグローバル大号2正则化系数の2倍になります。グローバル大号2正则化系数は,关数trainingOptionsを使用して指定できます。

オフセットのL2正则化系数。非负のスカラーとして指定します。

この係数にグローバルL2正则化系数が乘算されて,层のオフセットの学习率が决定されます。たとえば,OffsetL2Factorが2の場合,層のオフセットのL2正则化はグローバル大号2正则化系数の2倍になります。グローバル大号2正则化系数は,关数trainingOptionsを使用して指定できます。

层の名前。文字ベクトルまたは串スカラーとして指定します。层グラフに层を含めるには,空ではない一意の层の名前を指定しなければなりません。この层が含まれる系列ネットワークに学习させて姓名“”に设定すると,学习时に层に名前が自动的に割り当てられます。

データ型:字符|细绳

层の入力の数。この层は単一の入力のみを受け入れます。

データ型:双倍的

层の入力名。この层は単一の入力のみを受け入れます。

データ型:细胞

层の出力の数。この层には単一の出力のみがあります。

データ型:双倍的

层の出力名。この层には単一の出力のみがあります。

データ型:细胞

すべて折りたたむ

'BN1'という名前のバッチ正规化层を作成します。

层= batchNormalizationLayer('姓名''BN1'
层= BatchNormalizationLayer与属性:名称: 'BN1' NumChannels: '自动' TrainedMean:[] TrainedVariance:[]超参数的Epsilon:1.0000e-05可学习参数offset:[]缩放:[]显示所有属性

配列にバッチ正规化层を含めます。

layers = [imageInputLayer([32 32 3])]'填充',1)batchNormalizationLayer reluLayer maxPooling2dLayer(2,“跨越论”,2)convolution2dLayer(3,32,'填充',1)batchNormalizationLayer 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 '' Batch Normalization Batch normalization 8 '' ReLU ReLU 9 '' Fully Connected 10 fully connected layer 10 '' Softmax softmax 11 '' Classification Output crossentropyex

详细

すべて展開する

アルゴリズム

バッチ正规化は,まずミニバッチと各入力チャネルについて平均μB.と分散σB.2を計算することによって,その入力x一世を正规化します。その后,正规化された活性化を以下のように计算します。

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

ここでϵ(プロパティ埃斯利昂)は,ミニバッチの分散が非常に小さい场合に数値の安定性を改善します。ゼロ平均と単位分散を持つ入力がバッチ正规化层の后の层に最适ではない可能性を考虑して,バッチ正规化层はさらに以下のように活性化のシフトとスケーリングを行います。

y 一世 = γ X ^ 一世 + β

ここで,オフセットβとスケール系数γ(抵消プロパティおよび规模プロパティ)は学习可能なパラメーターであり,ネットワークの学习中に更新されます。

ネットワークの学習が終了したら,バッチ正規化層は学習セット全体の平均と分散を計算し,これらをTrainedMeanプロパティおよびTrainedVarianceプロパティに格纳します。学习済みネットワークを使用して新しいイメージについて予测を実行する场合,この层はミニバッチの平均と分散ではなく,学习済みの平均と分散を使用して活性化を正规化します。

参照

[1]约费,塞吉,和Christian Szegedy。“批量标准化:通过减少内部协变量移加速深网络的训练”。预印本,arXiv: 1502.03167(2015)。

拡張機能

C / c++コード生成
MATLAB®编码器™を使用してÇおよびC ++コードを生成します。

GPUコード生成
GPU编码器™を使用してNVIDIA GPU®のためのCUDA®コードを生成します。

R2017bで導入