5

私は、ニューラルネットワークをトレーニングするために生物学的データを前処理しようとしています。さまざまな正規化方法の広範な検索と繰り返しの提示にもかかわらず、どの方法をいつ使用するかについては賢明ではありません。特に、正に偏った入力変数がいくつかあり、最も適切な正規化方法があるかどうかを確認しようとしています。

また、これらの入力の性質がネットワークのパフォーマンスに影響を与えるかどうかについても心配し、データ変換(特にログ変換)を実験しました。ただし、一部の入力には多くのゼロがありますが、10進数の値が小さい場合もあり、log(x + 1)(または1から0.0000001までの任意の数値)の影響を大きく受け、結果の分布が正常に近づかないように見えます(どちらかが残ります)。歪んでいるか、最小値で鋭いピークを持つバイモーダルになります)。

これはニューラルネットワークに関連していますか?すなわち。偏ったデータを説明するために特定の機能変換/正規化方法を使用する必要がありますか、それともそれを無視して正規化方法を選択して先に進む必要がありますか?

この件に関するアドバイスをいただければ幸いです。

ありがとう!

4

2 に答える 2

2

入力ベクトルの特徴は性質が異なるため、特徴ごとに異なる正規化アルゴリズムを使用する必要があります。ネットワークは、パフォーマンスを向上させるために、すべての入力で統一されたデータによって供給される必要があります。

一部のデータが歪んでいると書いたように、アルゴリズムを実行して「正規化」できると思います。対数の適用が機能しない場合は、ランク変換などの他の関数やメソッドを試すことができます。

If the small decimal values do entirely occur in a specific feature, then just normalize it in specific way, so that they get transformed into your work range: either [0, 1] or [-1, +1] I suppose.

If some inputs have many zeros, consider removing them from main neural network, and create additional neural network which will operate on vectors with non-zeroed features. Alternatively, you may try to run Principal Component Analysis (for example, via Autoassociative memory network with structure N-M-N, M < N) to reduce input space dimension and so eliminate zeroed components (they will be actually taken into account in the new combined inputs somehow). BTW, new M inputs will be automatically normalized. Then you can pass new vectors to your actual worker neural network.

于 2012-11-09T17:44:01.703 に答える
0

これは興味深い質問です。正規化は、最適化プロセスを容易にするために、機能の値を1つのスケールに保つことを目的としています。

私は次のことを提案します:

1-データを正規化する必要があるかどうかを確認します。たとえば、変数または特徴の平均が同じスケールの値の範囲内にある場合、正規化せずに進行する可能性があります。MSVMpackは、SVMの実装に正規化チェック条件を使用します。ただし、そうする必要がある場合でも、正規化せずにデータに対してモデルを実行することをお勧めします。

2-機能の実際の最大値または最小値がわかっている場合は、それらを使用して機能を正規化します。この種の正規化は、値の偏りを維持すると思います。

3-該当する場合は、他の機能を使用して10進値の正規化を試してください。

最後に、さまざまな正規化手法を適用し、データの偏りを損なう可能性のあるzスコアを含むevey手法のMSEを比較することをお勧めします。

私はあなたの質問に答えて、そしていくらかのサポートを与えたことを望みます。

于 2012-11-09T15:41:40.453 に答える