同じ分布の2つのデータセットを使用しているときに、いつデータを正規化するのですか?


7

2つのデータセットD1とD2があるとします。両方とも同じ基礎となる分布Xからサンプリングされています。ニューラルネットワークをトレーニングするためにそれらを使用したいと思います。特徴はすべて範囲[0;の符号なし整数です。2 ^ 64]。

機能のスケールが大きく異なるため、シグモイド関数と組み合わせてzスコアの正規化を使用することにしました。つまり、Zスコアの正規化されたデータをロジスティック関数に送り、特徴を[0; 1]範囲。

この時点では、どの時点でデータを正規化するかわかりません。

1.)D1を使用して、D1のみを考慮して得られるmean_1とstd_dev_1で正規化します。D2のプロセスを繰り返し、mean_2とstd_dev_2を使用して正規化します。次に、2つのデータセットを使用してネットワークを順次トレーニングします。

2.)D1とD2を追加してセットD3を取得し、データセット全体(mean_3とstd_dev_3)を計算して正規化します(D1 + D2)。次に、それを使用してネットワークをトレーニングします。

ここで2つの質問:

a)2つの方法で同様の結果が得られますか?D2がD1より後に利用可能になる可能性があり、データセット全体でネットワークを再トレーニングする必要があるかどうかを知る必要があるため、私にとって特に重要です。

b)訓練されたネットワークで推論を行う場合、新しい入力を正規化するためにどのパラメーターを使用する必要がありますか?たとえば、mean_3とstd_dev_3を使用する必要がありますか?

編集:2つのデータセットの組み合わせの平均と標準偏差は、元のデータセットの平均と標準偏差から計算できることがわかりました。つまり、(理論的には)それらを順次トレーニングし、それらの分布パラメーターを組み合わせて推論の入力を正規化することができます。


なぜこの質問には賞金があるのに満足のいく答えがまだないのですか?データセットD1とD2に関する詳細情報を提供する必要があると思います。ソース(物理的なプロセス)と形式は何ですか(これは数値の1次元配列ですか?)。目標を知ること(例:バイナリ分類ですか?)も役立ちます。
ハンス・

@hans:データは基本的にネットワークトラフィックのメタデータです(たとえば、平均パケット数/秒)。私がやろうとしていることは、トラフィックの異常を見つけることです。完全に細かいネットワークでは、通常のトラフィックにいくつかの明確なパターンがあり、異常がこのパターンからの逸脱を引き起こすという考えでした。
DocDriven 2018

回答:


3

すべての個人に同じ変換を適用する必要があります。

方法1は使用しないでください。それはバイアスされます。これを実現する簡単な方法は、同じ機能を持つ2人の個人がD1 そして D2。変換されたデータセットでもこれらの2つの個人を同一にする必要がありますが、メソッド1ではこれを許可していません。

方法2は問題ありません。順次トレーニングする場合、別のオプションは、mean_1およびstd_dev_1によって誘導された変換をすべてのデータポイントに適用することです。ただし、将来のデータポイントがデータと大幅に異なる場合、問題が発生する可能性があることに注意してください。D1


'(...)は、D1とD2に同じ機能を持つ2人の人物がいると想像してください。これら2人の個人も、変換されたデータセットで同一である必要があります。多くの場合、反対のことを行います(特にデータセットが小さい場合)。データを拡張するため、NNの例がわずかに異なる場合があります。
ハンス・

@hans:それで、あなたが言っていることは、方法1が実行可能であるということですか?
DocDriven 2018

@DocDrivenこの引数を使用してメソッド1を拒否することはできません。
ハンス・

1

D1とD2が本当に同じ分布からのものである場合、D1に少なくとも数百のデータポイントがある限り、平均と標準偏差に大きな変動が見られないはずなので、D1に基づいてすべてのデータを正規化することはできません問題の多くを引き起こします。独自の平均値と標準偏差に基づいてデータの各サブセットを正規化するということは、オーバーフィッティングが全体のサンプルサイズよりもサブセットのサンプルサイズからより多く従うことを意味し、ある意味で、「どのサブサンプルがこれを実行したか」という偽の機能を導入しています。データポイントはどこから来るのですか?」さまざまな手段とstdでデータを正規化しても、収束にかかる時間ほどニューラルネットトレーニングの結果に影響を与えないはずです。後者が心配な場合は、1つの結果を初期値として使用することを検討してください。次。


私はあなたの最後の発言を理解していません。何のためにどの初期値を取るべきですか?
DocDriven 2018

@DocDrivenニューラルネットを初期化するときは、重みの初期値をシードする必要があります。オーバーフィットなどのリスクはありますが、以前のトレーニングのウェイトを使用してシードを追加すると、再トレーニングを高速化できます。
2018

1

いくつかの注意:

  1. 両方のデータセットが同じ分布からのものである場合、両方の手順で同じ結果が得られます(D1とD2の平均と分散が同じであるため)。しかし、明らかにそうではありません。

  2. 各データセットの実際の平均と分散を確認します。それらが同じである場合-それは問題ではありません。それらが異なる場合は、各データセットを独自の平均と分散で正規化します(方法1)

  3. シャッフルされたデータセットでトレーニングする D=D1¯D2¯、バーは正規化を意味します。最初に1つのデータセットをトレーニングし、次に別のデータセットをトレーニングすると、多くの問題が発生する可能性があるため、注意して行う必要があります(壊滅的な忘却を参照)。

  4. 新しい入力がD2と同じソースからのものである場合、D2の平均と分散でそれらを正規化します。

  5. 正規化された値にシグモイドを適用する必要がない場合があります。


これを明確にしていただきありがとうございます。ポイント1.)に関して、2つのデータセットは同じ分布からのものである:それらは同じですが、平均と分散が母集団の平均と分散に必ずしも正確に等しいとは限りません。たとえば、わずかな違いがあります。これは、新しい入力を正規化するパラメーター(ポイント4)が問題にならないことを意味しますか?
DocDriven 2018

@DocDrivenその通りです、小さな違いがあるかもしれません。データセットが大きい場合、違いは小さく、無関係です。データセットが小さい場合、主な問題はデータセットのサイズとそれを拡張する方法です。彼らは正確にどのくらいの大きさですか?
ハンス

セットあたり約1000〜2000サンプル。だから私は違いが小さいはずだと思います。
DocDriven 2018

1
では、セットはどう違うのですか?たとえばCVドメインでは、異なるカメラで2セットの画像を作成した場合、それを個別に正規化します。しかし、同じカメラで2つのセットを完成させたが、それ以外の日には、それらをマージして一緒に正規化します。
ハンス・
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.