ニューラルネットワークでのデータの正規化と標準化


40

ニューラルネットワーク(ANN)を使用して複雑なシステムの結果を予測しようとしています。結果(依存)値の範囲は0〜10,000です。異なる入力変数には異なる範囲があります。すべての変数には、ほぼ正規分布があります。

トレーニングの前にデータをスケーリングするさまざまなオプションを検討します。1つのオプションは、各変数の平均値と標準偏差値を個別に使用して累積分布関数計算することにより、入力(独立)変数と出力(従属)変数を[0、1]にスケーリングすることです。この方法の問題は、出力でシグモイド活性化関数を使用すると、極端なデータ、特にトレーニングセットで見られないデータが失われる可能性が高いことです。

別のオプションは、zスコアを使用することです。その場合、極端なデータの問題はありません。ただし、出力では線形活性化関数に制限されています。

ANNで使用されている他の受け入れられている正規化手法は何ですか?このトピックのレビューを探しましたが、有用なものが見つかりませんでした。


Zスコアの正規化が時々使用されますが、バイエルの答えの別の名前かもしれませんが、面白い感じがしますか?
osknows

ホワイトニング部分を除いて同じです。
バイエルジ

1
確率(分類ではなく回帰)ではなく(現状のまま)値を予測する場合は、常に線形出力関数を使用する必要があります。
seanv507

マイケル・ジャラーによるランク・ガウス。それはランクであり、それをガウスにします。
user3226167

回答:


32

標準的なアプローチは、平均が0で分散が1になるように入力をスケーリングすることです。また、線形無相関化/ホワイトニング/ pcaは非常に役立ちます。

取引のトリックに興味がある場合は、LeCunの効率的なbackpropペーパーをお勧めします。


1
もちろん、データが(単一の)正規分布に従っていない場合、盲目的にデータを正規化しようとしないでください。stats.stackexchange.com/a/816/4581
user4581

24
ニューラルネットワークを使用する必要があります。そうしないと、隠れたユニットがすぐに飽和し、それらの勾配がゼロに近くなり、学習が不可能になります。モデリングに関するものではなく(ニューラルネットワークは入力データの分布を想定していません)、数値的な問題です。
バイエルジ

私はかなり混乱しています。このリンク(machinelearningmastery.com/…)は、使用しているアルゴリズムがガウス分布(NNの場合ではない)を前提としている場合に、標準化が役立つことを示しています。それ以外の場合、正規化を使用する必要があります。誰かが私を啓発できますか?
ihebiheb

21

1-最小-最大正規化は、スケーリング係数を除くスコアの元の分布を保持し、すべてのスコアを共通の範囲[0、1]に変換します。ただし、この方法は堅牢ではありません(つまり、この方法は外れ値に対して非常に敏感です。

2-標準化(Zスコアの正規化)最も一般的に使用される手法で、与えられたデータの算術平均と標準偏差を使用して計算されます。ただし、平均値と標準偏差はどちらも外れ値の影響を受けやすく、この手法は正規化されたスコアの一般的な数値範囲を保証しません。さらに、入力スコアがガウス分布ではない場合、この手法は出力で入力分布を保持しません。

3-中央値とMAD:中央値と中央値の絶対偏差(MAD)は、外れ値や分布の極端な裾の点に影響されません。したがって、堅牢です。ただし、この手法は入力分布を保持せず、スコアを共通の数値範囲に変換しません。

4- tanh-estimators:Hampelらによって導入されたtanh-estimators。堅牢で非常に効率的です。正規化は

タンエスティメータ ここで、μGHとσGHは、それぞれ、Hampel推定器によって与えられる真のスコア分布の平均と標準偏差の推定値です。

したがって、tanh-estimatorsをお勧めします。

参照 https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt


このtanh推定量に関する情報を見つけるのに苦労しています。誰もこれにいくらか光を当てることができますか?
ベンオゴレク

最後に、正規化のためのtanh推定量を説明する良い仕事をする論文を見つけました:wjscheirer.com/papers/wjs_eccv2010_fusion.pdf。これらは、汎用の正規化オプションとして実行可能とは思えません。「[タン推定量]は、適応Zスコアに比べて計算がはるかに複雑です...分布の中央値スコアからの3つの異なる間隔のテールポイントは、アドホックな方法で定義する必要があります。これらのパラメーターは難しい場合があります実験的に決定し、誤って選択した場合、tanh-estimatorsの有効性を制限します。 "
Ben Ogorek

8

重回帰を実施する際に、予測変数をいつ中央に配置し、いつ標準化する必要があるかについて、同様の回答をここで行いました。しかし、答えがここに行くことができるのは十分に異なる文脈だと思った。

すばらしいusenetリソースがありますhttp://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html

データを正規化/標準化/再スケーリングしたい場合の問題と考慮事項の一部を簡単に説明します。機械学習の観点から主題を扱い、あなたの質問がMLであるため、ある程度の関連性があります。


ここに各リンクの要点を書く必要があります。追加の「ナビゲーション」は必要ありません
leoschet

2

できる

  • 最小-最大正規化(範囲[−1,1]に収まるように入力/ターゲットを正規化する)、または
  • 平均標準偏差の正規化(入力/ターゲットを正規化して、平均値と単位分散/標準偏差がゼロになるようにします)

1

あなたが作業している場合はpythonsklearn持っているこの行うための方法自分で使用して、異なる技術preprocessing(そのドキュメントの例で、プラスの気の利いたパイプライン機能)モジュールを:

import sklearn

# Normalize X, shape (n_samples, n_features)
X_norm = sklearn.preprocessing.normalize(X)

0

まあ、[0,1]は標準的なアプローチです。ニューラルネットワークの場合、0-1の範囲で最適に機能します。最小-最大スケーリング(または正規化)は従うアプローチです。

異常値については、ほとんどのシナリオでそれらをクリップする必要があります。異常値は一般的ではないため、異常値がモデルに影響を与えないようにします(異常検出が解決している問題でない限り)。68-95-99.7の経験則に基づいてクリップするか、ボックスプロットを作成して観察し、それに応じてクリップすることができます。

MinMax式- (xi - min(x)) / (max(x) - min(x)) または使用可能sklearn.preprocessing.MinMaxScaler


-1

「受け入れられた」とは、あなたにとって最も効果的なものであり、それを受け入れます。

私の経験では、分布のジョンソンファミリから各連続フィーチャへの分布のフィッティングはうまく機能します。これは、分布が非常に柔軟で、ほとんどの単峰性フィーチャを標準正規分布に変換できるためです。マルチモーダル機能にも役立ちますが、ポイントは通常、機能を可能な限り最も望ましい形式にすることです(標準のガウス分布データは、作業に最適です-ほとんどすべての機能と互換性があり、時には最適です)統計/ MLメソッドが利用可能)。

http://qualityamerica.com/LSS-Knowledge-Center/statisticalinference/johnson_distributions.php

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.