BatchNormalizationLayer

BatchNormalizationLayer[]

データの平均と分散を学ぶことで入力データを正規化する,訓練可能なネットの層を表す.

詳細とオプション

  • BatchNormalizationLayerは,ネットワークの訓練を正規化して高速にするために,NetChainNetGraph等の中で使われることが多い.
  • 次の選択的パラメータを含めることができる.
  • "Epsilon" 0.001`安定性パラメータ
    InterleavingFalseチャネル次元の位置
    "Momentum" 0.9訓練中に使われる運動量
  • InterleavingFalseのとき,チャネル次元は入出力配列の最初の次元であるとみなされる.
  • InterleavingTrueのとき,チャネル次元は入出力配列の最後の次元であるとみなされる.
  • 次の学習可能配列を含むことができる.
  • "Biases"Automatic学習可能なバイアス配列
    "MovingMean"Automatic平均の移動推定
    "MovingVariance"Automatic分散の移動推定
    "Scaling"Automatic学習可能なスケーリング配列
  • Automatic設定でNetInitializeあるいはNetTrainが使われると,バイアス,スケーリング,移動平均,および移動分散の各配列が自動的に初期化される.
  • 次の訓練パラメータを含めることができる.
  • LearningRateMultipliersAutomatic配列のための学習率乗数
  • BatchNormalizationLayerは,LearningRateMultipliersが0あるいは"Momentum"が1ならば,NetTrainでの訓練中に"MovingVariance""MovingMean"の値を凍結する.
  • バイアス,スケーリング,移動分散,移動平均が設定されると,BatchNormalizationLayer[][input]は層を適用して明示的に出力を計算する.
  • BatchNormalizationLayer[][{input1,input2,}]は各 inputiを明示的に計算する.
  • NumericArrayが入力として与えられると,出力はNumericArrayになる.
  • BatchNormalizationLayerNetGraph等で使うために次のポートを開放する.
  • "Input"ベクトル,行列,または高階配列
    "Output"ベクトル,行列,または高階配列
  • より大きいネットの他の層から推測できない場合は,オプション"Input"->{n1,n2,}を使ってBatchNormalizationLayerの入力次元を固定することができる.
  • NetExtractを使って,バイアス,スケーリング,移動分散,移動平均の各配列をBatchNormalizationLayerオブジェクトから抽出することができる.
  • Options[BatchNormalizationLayer]は層を構築する際のデフォルトオプションのリストを与える.Options[BatchNormalizationLayer[]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
  • Information[BatchNormalizationLayer[]]は層についてのレポートを与える.
  • Information[BatchNormalizationLayer[],prop]BatchNormalizationLayer[]の特性 prop の値を与える.使用可能な特性NetGraphと同じである.

例題

すべて開くすべて閉じる

  (2)

BatchNormalizationLayerを作る:

ベクトルを取ってベクトルを返す,初期化されたBatchNormalizationLayerを作る:

この層を入力ベクトルに適用する:

スコープ  (4)

ポート  (2)

階数3の配列を取って階数3の配列を返す,初期化されたBatchNormalizationLayerを作る:

ベクトルを取ってベクトルを返す,初期化されたBatchNormalizationLayerを作る:

この層を入力ベクトルのバッチに適用する:

NetEvaluationModeを使ってBatchNormalizationLayerの訓練動作を使う:

パラメータ  (2)

"Biases"  (1)

"Biases"パラメータの初期値でBatchNormalizationLayerを作る:

"Biases"パラメータを抽出する:

NetInitializeによって選ばれた"Biases"のデフォルト値はゼロベクトルである:

"Scaling"  (1)

"Scaling"パラメータを0に,"Biases"パラメータをカスタム値的に指定して,初期化されたBatchNormalizationLayerを作る:

この層を任意の入力に適用すると"Biases"パラメータの値が返される:

NetInitializeによって選ばれた"Scaling"のデフォルト値は1のベクトルである:

オプション  (2)

"Epsilon"  (1)

"Epsilon"パラメータを明示的に指定してBatchNormalizationLayerを作成する:

"Epsilon"パラメータを抽出する:

"Momentum"  (1)

"Momentum"パラメータを明示的に指定してBatchNormalizationLayerを作成する:

"Momentum"パラメータを抽出する:

アプリケーション  (1)

BatchNormalizationLayerは,訓練を安定させ訓練速度を上げるために,ConvolutionLayerとそのアクティベーション関数の間に挿入されることが多い:

特性と関係  (1)

BatchNormalizationLayerは,通常の評価では次の関数を計算する:

単一のチャネルを含む例のベクトルについて,BatchNormalizationLayerを評価する:

手計算で同じ結果を得る:

考えられる問題  (3)

パラメータ"MovingVariance"に負の値を指定すると,評価中に数値エラーが起こる:

BatchNormalizationLayerは入出力すべての次元が分かるまで初期化することができない:

BatchNormalizationLayer"MovingMean"配列および"MovingVariance"配列は共有できない:

共有配列でBatchNormalizationLayerを作る:

これをデータで訓練する:

訓練されたバッチ正規化層を抽出する:

"Scaling"配列と"Biases"配列は共有されたが,"MovingMean"あるいは"MovingVariance"は共有されない:

Wolfram Research (2016), BatchNormalizationLayer, Wolfram言語関数, https://reference.wolfram.com/language/ref/BatchNormalizationLayer.html (2020年に更新).

テキスト

Wolfram Research (2016), BatchNormalizationLayer, Wolfram言語関数, https://reference.wolfram.com/language/ref/BatchNormalizationLayer.html (2020年に更新).

CMS

Wolfram Language. 2016. "BatchNormalizationLayer." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/BatchNormalizationLayer.html.

APA

Wolfram Language. (2016). BatchNormalizationLayer. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BatchNormalizationLayer.html

BibTeX

@misc{reference.wolfram_2024_batchnormalizationlayer, author="Wolfram Research", title="{BatchNormalizationLayer}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/BatchNormalizationLayer.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_batchnormalizationlayer, organization={Wolfram Research}, title={BatchNormalizationLayer}, year={2020}, url={https://reference.wolfram.com/language/ref/BatchNormalizationLayer.html}, note=[Accessed: 22-November-2024 ]}