instanceNormalizationLayer
インスタンス正規化層
説明
インスタンス正規化層は、各チャネル全体におけるデータのミニバッチの正規化を、各観測値について個別に行います。畳み込みニューラル ネットワークの学習の収束性能を上げ、ネットワークのハイパーパラメーターに対する感度を下げるには、畳み込み層の間にあるインスタンス正規化層と、ReLU 層などの非線形性を使用します。
正規化後、この層は、学習可能なスケール係数 γ だけ入力をスケーリングし、それを学習可能なオフセット β だけシフトします。
作成
説明
layer = instanceNormalizationLayer
は、インスタンス正規化層を作成します。
layer = instanceNormalizationLayer(Name,Value)
は、インスタンス正規化層を作成し、1 つ以上の名前と値のペアの引数を使用してオプションの Epsilon
、パラメーターと初期化、学習率および正則化、および Name
プロパティを設定します。複数の名前と値の引数を指定できます。各プロパティ名を引用符で囲みます。
例: instanceNormalizationLayer('Name','instancenorm')
は、'instancenorm'
という名前のインスタンス正規化層を作成します。
プロパティ
例
アルゴリズム
インスタンス正規化演算は、各観測値の各チャネルについて、空間次元と時間次元における平均 μI と分散 σI2 をまず個別に計算することで、入力の要素 xi を正規化します。その後、正規化された活性化を次のように計算します。
ここで、ϵ は、分散が非常に小さいときに数値安定性を向上させる定数です。
ゼロ平均と単位分散をもつ入力がインスタンス正規化後の演算に最適ではない可能性を考慮して、インスタンス正規化演算は、次の変換を使用して活性化のさらなるシフトとスケーリングを行います。
ここで、オフセット β とスケール係数 γ は、ネットワークの学習中に更新される学習可能なパラメーターです。
バージョン履歴
R2021a で導入