データ正規化は、ディープ ラーニング データの前処理において非常に重要なステップであり、ディメンションを統一し、小さなデータが飲み込まれるのを防ぐことができます。
正規化とは、すべてのデータを [0,1] または [-1,1] に変換することです。目的は、注文をキャンセルすることです。データの各次元間の桁違いの大きさの違いにより、入力データと出力データの桁違いの大きさの差による過剰なネットワーク予測エラーを回避できます。
後続のデータ処理の便宜のため、正規化により不必要な数値上の問題を回避できます。
プログラム実行時の収束を速くするために
次元を統一します。サンプルデータは評価基準が異なるため、次元化して評価基準を統一することがアプリケーションレベルでの要件と考えられます。
ニューロンの飽和を避けてください。つまり、ニューロンの活性化が 0 または 1 に近い場合、これらの領域では勾配がほぼ 0 になるため、逆伝播プロセス中に局所的な勾配が 0 に近くなり、ネットワークにとって非常に不利になります。トレーニング。
出力データ内の小さな値が飲み込まれないようにしてください。
線形正規化は、minimum- 最大正規化、離散正規化とも呼ばれます。 ## は元のデータの線形変換であり、データ値を [0,1] にマッピングします。
#差分の標準化は、元のデータに存在する関係を保持し、ディメンションやデータ値の範囲の影響を排除する最も簡単な方法です。コードは次のように実装されます。def MaxMinNormalization(x,Max,Min): x = (x - Min) / (Max - Min); return x
は元のデータの平均、 は元のデータの標準偏差であり、最も一般的に使用されます。標準化式
この方法では、元のデータの平均と標準偏差を与えて、データを標準化します。処理されたデータは標準正規分布に準拠します。つまり、平均は 0、標準偏差は 1 です。ここで重要なのは複合標準正規分布です。コードは次のように実装されます:def Z_ScoreNormalization(x,mu,sigma): x = (x - mu) / sigma; return x
のように行列乗算された後は、ネットワークの層数が深くなるにつれて、そのデータ分布は大きく変化する可能性があります。データの流通はどんどん変わっていきます。したがって、トレーニング効果を高めるニューラル ネットワークの中間層でのこの正規化プロセスは、バッチ正規化 (BN) と呼ばれます。 #2: BN アルゴリズムの利点
# # 勾配の消失を減らし、収束を高速化し、トレーニングの精度を向上させます。
3: バッチ正規化 (BN) アルゴリズム プロセス
アルゴリズム処理:1) 前層の出力データの平均値を計算します:
このうち、m はこのトレーニング サンプル バッチのサイズです。
2) 前の層の出力データの標準偏差を計算します:
3) 正規化して
を取得します。
式中の は、分母が 0 になるのを避けるために追加される 0 に近い小さな値です。
4) 再構築。上記の正規化プロセスの後に得られたデータを再構築し、次の結果を取得します。
ここで、、 は学習可能なパラメータです。
以上がPython の一般的な正規化方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。