モデルの検証前または検証内で機能の正規化を実行しますか?


52

機械学習の一般的なグッドプラクティスは、予測変数の特徴の正規化またはデータの標準化を行うことです。つまり、データを中心に減算し、平均値を分散(または標準偏差)で割って正規化します。自己封じ込めと私の理解のために、これを行って主に2つのことを達成します。

  1. 数値の安定性のために、余分な小さなモデルの重みを避けます。
  2. 共役勾配などの最適化アルゴリズムの迅速な収束を確保し、1つの予測子次元の大きさが他の予測子次元よりも大きい場合、収束が遅くならないようにします。

通常、データはトレーニング、検証、テストセットに分割されます。文献では、通常、特徴の正規化を行うには、予測変数のセット全体の平均と分散(または標準偏差)を使用することがわかります。ここで見た大きな欠点は、それを行うと、実際にはトレーニング予測変数に将来の情報、つまり平均と分散に含まれる将来の情報が導入されることです。

したがって、トレーニングデータの正規化を行い、平均と分散を保存します。次に、トレーニング平均と分散を使用して、検証およびテストデータセットの予測変数に特徴の正規化を適用します。これに根本的な欠陥はありますか?誰もがより良い代替案を推奨できますか?


回答:


46

あなたのアプローチは完全に正しいです。多くの場合、データ変換は「前処理」として過小評価されますが、モデルのパフォーマンスを最適化するための変換は、モデル構築プロセスの一部として扱うことができるため、十分に強調することはできません。

推論:モデルは、一般的にモデルが構築された時点では利用できない未表示のデータに適用されます。検証プロセス(データ分割を含む)はこれをシミュレートします。そのため、モデルの品質(および一般化力)の適切な推定値を取得するには、正規化パラメーター(平均および分散)の計算をトレーニングセットに制限する必要があります。

なぜこれが常に文学で行われるわけではないのか推測することができます。1つの引数は、平均と分散の計算が小さなデータの変動にそれほど敏感ではないということです(ただし、これは基本サンプルサイズが十分に大きく、データが極端な外れ値なしでほぼ​​正規分布している場合にのみ当てはまります)。


これは少しわかりにくいです。OPは、検証およびテストデータセットの機能の正規化を行っていると言います。あなたの返事はまず彼のアプローチが正しいと言っています。次に、「正規化パラメーターの計算をトレーニングセットに制限する必要がある」と言いますが、これは彼がやっていることではありません。したがって、あなたの応答は、彼がしていることを正しいことを伝え、それ以外の場合は提案することによって矛盾します。ここに何が欠けていますか?
mahonya 14年

4
OPが行うことは彼の最後の段落で説明されており、これはまさに私が言ったことです。もちろん、トレーニングセットに適用されている場合、テスト/検証セットに正規化が適用されます。重要な点は、この正規化のパラメーターは、セット全体ではなく、トレーニングデータのみで計算されていることです。お役に立てれば。
ステフェン14年

ああ、どうもありがとう。私はあなたの答えを誤解しました。私はあなたがトレーニングセットのみに正規化の「適用」を提案していたが、明らかにあなたが提案したものではなかった。
mahonya

2

機能の正規化とは、同じスケールで異なる機能を作成することです。スケーリングは、1つ以上のフィーチャが他のフィーチャよりもはるかに大きな値をとるときに必要な多くの余分な反復を回避することにより、勾配降下を高速化します(スケーリングなしでは、視覚化されるコスト関数は大きな非対称性を示します)。

テストデータが来るときに、トレーニングセットの平均値と変数を使用することは理にかなっていると思います。しかし、データサイズが非常に大きい場合、トレーニングセットと検証セットの両方をほぼ正規分布と見なすことができるため、平均値と変数をほぼ共有します。


1
データの正規化が勾配降下を高速化できる理由は、正規化しないとrssが楕円形の輪郭を持つため、学習率が固定されていると、勾配降下が収束するためにさらに反復が必要になる可能性があるためです。一方、スケーリングでは、rssには円の輪郭(対称)があるため、勾配降下は高速で収束します。私は正しいですか?
アボカド

1

あなたが説明した方法論は、他の人が言ったように健全です。トレーニングセットの機能で実行するのとまったく同じ変換をテストセットの機能で実行する必要があります。

機能を正規化するもう1つの理由は、特定の変数のスケールの違いに敏感な特定のプロセスのパフォーマンスを向上させることであると付け加える価値があると思います。たとえば、主成分分析(PCA)は分散の最大割合をキャプチャすることを目的としており、その結果、特徴の正規化が最初に実行されない場合、最大分散を示す変数により多くの重みを与えます。


非常に良い点!私の研究から、PCAを計算する前に常に入力行列を正規化したことを思い出します。
スカイウォーカー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.