1. 序章

人工ニューラルネットワークは、データ内の未知の関係をマッピングし、予測を行うための強力な方法です。 アプリケーションの主な領域の1つは、パターン認識の問題です。 これには、一般的な分類と機能の内挿問題、および時系列予測などの外挿問題の両方が含まれます。

まれに、ニューラルネットワーク、および一般的な統計手法が、データセットの生データに直接適用されます。 通常、ネットワークの最適化プロセスを促進し、良好な結果が得られる可能性を最大化することを目的とした準備が必要です。

このチュートリアルでは、これらの方法のいくつかを見ていきます。 これらには、このチュートリアルのタイトルで明示的に言及されている正規化手法だけでなく、標準化や再スケーリングなどの他の手法も含まれています。

これらすべての概念を多かれ少なかれ互換性のある方法で使用し、それらをまとめて正規化または前処理技術と見なします。

2. 定義

はじめに述べたさまざまな形式の前処理には、さまざまな利点と目的があります。

2.1. 正規化

ベクトル(たとえば、データセット内の列)の正規化は、ベクトルノルムからのデータの分割で構成されます。 通常、これを使用して、 min-max正規化と呼ばれる以下の変換を通じて、特定の所定の値に等しいベクトルのユークリッド距離を取得します。

   

どこ:

  • 元のデータです。
  • 正規化されたデータです。
  • それぞれ、元のベクトルの最大値と最小値です。
  • それぞれ、正規化されたデータの新しい範囲の上限値と下限値です。 一般的な値はまたはです。

上記の方程式は、正規化後に元のベクトルのすべての距離比を維持する線形変換です。

一部の作成者は、正規化と再スケーリングを区別しています。 後者の変換はデータ単位の変更に関連していますが、これを正規化の形式と見なします。

2.2. 標準化

標準化は、ローカリゼーションまたは距離の測定値に関連する量を減算し、スケールの測定値で除算することで構成されます。 最もよく知られている例は、おそらくz-scoreまたは標準スコアと呼ばれるものです。

   

どこ:

  • 人口の平均です。
  • 母集団の標準偏差です。

zスコアは、元のデータを変換して、平均が0で標準偏差が1の新しい分布を取得します。

一般に、母集団全体のこれらのパラメーターの値はわからないため、対応するサンプルを使用する必要があります。

   

   

ここで、はベクトルのサイズです。

2.3. バッチ正規化

深層学習で広く使用されているもう1つの手法は、バッチ正規化です。 ニューラルネットワークを適用する前に一度だけ正規化する代わりに、各レベルの出力が正規化され、次のレベルの入力として使用されます。 これにより、トレーニングプロセスの収束がスピードアップします。

2.4. 使用上の注意

最も適切な標準化手法の適用は、問題データの徹底的な調査を意味します。 たとえば、データセットに一部の機能の正規分布または多かれ少なかれ正規分布がない場合、zスコアは最適な方法ではない可能性があります。

問題の性質上、複数の前処理手法を適用することが推奨される場合があります。

3. 正規化に関するレビュー

ニューラルネットワークを適用する前に、正規化または一般的に何らかの形式のデータ前処理を適用する必要が常にありますか? この質問には2つの回答があります。

理論的・形式的な観点から、答えは次のとおりです。それは依存します。 データ構造や使用するネットワークの性質によっては、必要ない場合があります。

例を見てみましょう。 前のセクションで見たような線形再スケーリングを適用し、線形形式の活性化関数を備えたネットワークを使用するとします。

   

ここで、はネットワークの出力、は成分を含む入力ベクトル、はバイアスを含む重みベクトルの成分です。 この場合、正規化は厳密には必要ありません。

その理由は、線形活性化関数の場合、ベクトルの適切な値を選択することにより、入力ベクトルのスケールの変更を元に戻すことができるという事実にあります。 ネットワークのトレーニングアルゴリズムが十分に効率的である場合、データの正規化を必要とせずに、理論的に最適な重みを見つける必要があります。

最初の質問に対する2番目の答えは、実用的な観点から来ています。 この場合、答えは次のとおりです。常に正規化します。 理由はたくさんあり、次のセクションで分析します。

ターゲットの正規化

ニューラルネットワークは、最も異なる構造を持つことができます。 たとえば、一部の作成者は、隠れたレベルのユニットには非線形活性化関数を使用し、出力ユニットには線形関数を使用することを推奨しています。 この場合、ターゲットの観点から、前のセクションと同様の検討を行うことができます。

広く使用されている代替手段は、出力レベルのユニットを含む、ネットワーク内のすべてのユニットに同じタイプの非線形活性化関数を使用することです。 この場合、各ユニットの出力は次の形式の非線形変換によって与えられます。

   

一般的に使用される関数は、非線形関数に関するチュートリアルで学習した、以下に示すようなシグモイドファミリーに属する関数です。

一般的な選択肢は、画像が範囲内にある、、または画像が範囲内にあるロジスティック関数です。

ネットワーク出力にこのような非線形活性化関数を使用する場合、ターゲットは関数のイメージを構成する値と互換性のある範囲に配置する必要があります。 上で見た線形正規化を適用することにより、元のデータを任意の範囲に配置できます。

多くのトレーニングアルゴリズムは、パラメーターの変動の関数として、ある種のエラー勾配を調査します。 たとえば、最急降下法の形式であるデルタルールは、次の形式を取ります。

   

勾配消失問題、すなわち 効果的なトレーニングプロセスを妨げる可能性のある、活性化関数の漸近ゾーンの勾配のキャンセルにより、正規化間隔をさらに制限することができます。 一般的な範囲は、およびロジスティック関数です。 すべての著者がこのアプローチの理論的正当化に同意するわけではありません。

3.2. 入力の正規化

これまで見てきたように、非線形活性化関数を使用すると、ターゲットの元のデータを変換することをお勧めします。 ただし、入力を正規化する理由もあります。

最初の理由は、非常に明白ですが、複数の入力を持つデータセットの場合、通常、機能ごとに異なるスケールが使用されるためです。 複数のターゲットを持つデータセットについても同じことを考慮することができます。 この状況は、データの本質的な性質ではなく、単に元の測定尺度に起因する不均衡を伴う、一部の入力の最終結果に大きな影響を与える可能性があります。 同じ範囲内のすべての機能を正規化すると、このタイプの問題を回避できます。

もちろん、さまざまな入力の相対的な重要性に関する事前情報がある場合は、それぞれにカスタマイズされた正規化間隔を使用することを決定できます。 これは可能ですが、ありそうもない状況です。 一般に、機能の相対的な重要性は、いくつかの問題を除いて不明です。

入力の正規化を推奨するもう1つの理由は、前のセクションで説明した勾配問題に関連しています。 小さな範囲内で入力を再スケーリングすると、一般に小さな重み値が発生します。これにより、活性化関数の飽和領域に近いネットワークのユニットの出力の可能性が低くなります。 さらに、重みの変動の初期範囲を非常に狭い間隔(通常は)に設定できます。

4. 例

UCIリポジトリabalone 問題(リングの数)のターゲットに、範囲内の線形再スケーリングとzスコアによる変換を適用しました。 元のデータと2つの変換の特徴は次のとおりです。

   

以下に示す2つの変換を適用した後のデータの分布:

変換によって個々のポイントが変更されますが、歪度と尖度の定数値から明らかなように、データセットの統計的本質は変更されないことに注意してください。

5. データセットの標準化とパーティショニング

5.1. 問題の概要

ニューラルネットワークのパフォーマンスの分析は、典型的な相互検証プロセスに従います。 データは、通常、トレーニングセットとテストセットと呼ばれる2つのパーティションに分割されます。 ほとんどのデータセットはトレーニングセットを構成します。 一般的な比率はまたはです。

プロセスは次のとおりです。 選択したアルゴリズムを使用したトレーニングは、トレーニングセットのデータに適用されます。 このプロセスにより、ネットワークの重みと数学的パラメーターの最適値が生成されます。 ただし、エラー推定はテストセットで行われ、新しいデータでのネットワークの一般化機能の推定が提供されます。

テストセットで同等の結果を提供する2つのネットワーク間では、トレーニングセットでエラーが最も高いネットワークが推奨されます。 ニューラルネットワークのアプリケーションに慣れていない読者は、このステートメントに驚かれるかもしれません。

その理由は、アルゴリズムの一般化能力が新しいデータでのパフォーマンスの尺度であるという事実にあります。 ネットワークがトレーニングセットに準拠するほど、つまり、単一ポイントの内挿でより効果的であるほど、新しいパーティションでの内挿が不十分になることを経験的に示すことができます。

一部の作成者は、データセットをトレーニングセット、検証セット、テストセットの3つのパーティションに分割することを提案しています。 検証セットでトレーニングプロセス中にネットワークの品質を測定しますが、ネットワークの一般化機能を提供する最終結果はテストセットで測定されます。 これは二重交差検定と見なすことができます。

5.2. 実際の前処理

正規化はトレーニングセットに適用する必要がありますが、テストデータにも同じスケーリングを適用する必要があります。 つまり、トレーニングデータで使用したスケールとオフセットを保存し、それを再度使用することを意味します。 初心者によくある間違いは、トレーニングデータとテストデータを別々に正規化することです。

理由は明白に見えるはずです。 正規化には、問題変数の新しい測定単位の定義が含まれます。 トレーニングセットまたはテストセットに属するかどうかにかかわらず、各レコードを同じ単位で表現する必要があります。これは、両方を同じ法則で変換する必要があることを意味します。

最終結果は、少なくとも3つの異なるパーティションのテストセットの結果の統計分析で構成する必要があります。 これにより、特に有利または不利なパーティションの結果を平均化できます。

5.3. データセットの統計構造

メイントピックに戻りましょう。 簡単にするために、2つのパーティションのみに分割することを検討します。 以下の考慮事項は、zスコアなどの標準化手法に適用されます。

前処理の一般的なルールはすでに上で述べています。正規化または前処理では、トレーニングセットのテストセットに属する情報を使用しないでください。 この基準は妥当なように見えますが、2つのパーティションの基本的な統計パラメータの違いを暗黙的に意味します。

この違いは経験的な考察によるものですが、理論的な理由によるものではありません。 これは、母集団とサンプルの違いから生じます。

トレーニングセットとテストセットの合計を同じ統計法則によって生成された単一の問題と見なすと、違いを観察する必要はありません。 この状況では、トレーニングセットまたはデータセット全体の正規化は実質的に無関係である必要があります。

残念ながら、これは純粋に理論的な関心の可能性です。 このようなケースは、理論的には、母集団全体、つまり、無限限界で非常に多数の測定値がある場合に発生する可能性があります。

ただし、実際には、母集団のサンプルを使用します。これは、2つのパーティション間の統計的な違いを意味します。 経験的な観点からは、2つの異なる統計法則によって生成された2つのパーティションを考慮することと同じです。

この場合、データセットセット全体の正規化により、テストセットの情報の一部がトレーニングセットに導入されます。 この後者のパーティションからのデータは、必要に応じてネットワークに完全に知られることはなく、最終結果を歪めます。

5.4. トレーニングセットの正規化に関連する問題

したがって、上記のすべての考慮事項は、上記のルールを正当化します。正規化プロセス中に、テストセットからの情報でトレーニングセットを汚染してはなりません。

このルールの必要性は、サンプルの平均と標準偏差を明示的に使用するzスコアを使用してデータを標準化する場合に直感的にわかります。 ただし、線形再スケーリングにも問題があります。

データセットをランダムな方法でトレーニングセットとテストセットに分割し、ターゲットに対して次の条件の一方または両方が発生するとします。

   

   

ニューラルネットワークが、間隔内の画像を使用して、すべてのユニットの活性化関数として使用するとします。 ターゲットの変動範囲がの出力と互換性があるように、この範囲のデータを正規化する必要があります。 ただし、トレーニングセットのみを正規化すると、テストセット内のターゲットのデータの一部がこの範囲外になります。

したがって、これらのデータの場合、適切な近似値を見つけることは不可能です。 パーティショニングが特に好ましくなく、範囲外のデータの割合が大きい場合、テストセット全体で高いエラーを見つけることができます。

5.5. 問題の可能な解決策

いくつかの方法で問題の解決を試みることができます。

  • データセット全体が範囲内にあることを確認するために、トレーニングセットの正規化間隔を狭めます。 このアプローチでは、問題が完全に解決されるわけではありません。
    • テストセットデータの一部は、活性化関数の漸近領域に分類される場合があります。 これらのレコードは、勾配消失問題の影響を受けやすい可能性があります。
    • トレーニングは、トレーニングセットデータでカバーされる画像領域でのみ有効になります。 ネットワークは、補間の代わりに外挿を実行することを余儀なくされます。これは、一般的に、より単純な問題です。
  • データ内の距離関係を維持する線形再スケーリングの場合、データセット全体を正規化することを決定する場合があります。 これは上記のポイントに相当します。
  • 一般に、正規化と標準化の両方の最善のアプローチは、十分な数のパーティションを実現することです。 このアプローチは、前のサブセクションで強調した収差を滑らかにします。

6. パワートランスフォーム

ニューラルネットワークは、さまざまな種類の問題を解決するように設計できます。 入力とターゲットを直接マッピングできますが、モデルの最適なパラメーターを取得するために使用されることもあります。

科学の多くのモデルは、ガウス分布を利用しています。 モデルの正規性の仮定は、経験的データのデータセットでは適切に表現されていない可能性があります。 このタイプの状況は、問題の表現におけるデータの不完全性または高ノイズレベルの存在から導き出すことができます。

このような場合、単調変換またはべき乗変換を実行することにより、元のデータを問題の仮定に近づけることができます。 結果は、歪度と尖度の値が変更された、新しいより正規分布のようなデータセットです。 これは標準化の一形態と考えることができます。

Box-CoxとYeo-Johnsonの変換について学習します。

6.1. ボックスコックス変換

Box-Coxのパラメーターへの変換は、次の式で与えられます。

   

尤度関数の対数を最大化する値です。

   

対数が存在すると、負の値を持つデータセットへの適用が妨げられます。 この場合、ポジティブデータの再スケーリングまたは2つのパラメーターバージョンの使用が必要です。

   

6.2. Yeo-Johnson Transform

Yeo-Johnson変換は次のように与えられます。

   

Yeo-Johnsonの変換は、Box-Coxの変換に関するいくつかの問題を解決し、ネガティブデータセットに適用する際の制限が少なくなります。

どちらの方法でも、線形再スケーリングを実行できます。これにより、変換を保持し、ドメインを任意の活性化関数の出力に適合させることができます。

7. 実際の例

[X54X] UCIリポジトリのアワビ問題(リングの数)のターゲットに両方の変換を適用しました。 元のデータの分布はです:

Box-Cox変換の場合:

Yeo-Johnson変換の場合:

変換前後の数値結果を下の表に示します。 正規性の基準は歪度と尖度です

   

8. 結論

このチュートリアルでは、データの前処理と正規化の手法をいくつか見てきました。 結果の品質は、アルゴリズムの品質だけでなく、データの準備に注意を払うことにも依存します。 このプロセスが表面的に実行された場合に発生する可能性のあるいくつかの議論と問題を示しました。

厳密には「標準化手法」の範疇には入らないが、場合によっては不可欠となる他の形式の前処理があります。 主成分分析(PCA)は、たとえば、元のデータセットからのほとんどの情報を保持することによって、つまり、制御された形式の特定の量の情報。

PCAおよび他の同様の手法により、次元の呪いの名の下に知られている収差の影響を受けやすい問題にニューラルネットワークを適用できます。 高次元の問題におけるすべての決定境界を特定できるようにするための不十分な量のデータの提供。