機械学習 では、データから学習し、データに基づいて予測を行うことができるアルゴリズムの研究と構築が一般的なタスクです。[ 1 ]このようなアルゴリズムは、入力データから数学モデルを構築することによって、データ駆動型の予測や決定を行うことで機能します。 [ 2 ]モデルの構築に使用されるこれらの入力データは、通常、複数のデータセットに分割されます。特に、モデル作成のさまざまな段階で、トレーニングセット、検証セット、テストセットの 3 つのデータセットが一般的に使用されます。
モデルは最初にトレーニングデータセット[ 3 ]に適合されます。これは、モデルのパラメータ(人工ニューラルネットワークのニューロン間の接続の重みなど)を適合するために使用される例のセットです[ 4 ] 。モデル(ナイーブベイズ分類器など)は、勾配降下法や確率的勾配降下法などの最適化手法を使用して、教師あり学習法を使用してトレーニングデータセットでトレーニングされます。実際には、トレーニングデータセットは、入力ベクトル(またはスカラー)と対応する出力ベクトル(またはスカラー)のペアで構成されることが多く、回答キーは一般的にターゲット(またはラベル)と呼ばれます。現在のモデルはトレーニングデータセットで実行され、結果を生成し、トレーニングデータセットの各入力ベクトルに対して、その結果がターゲットと比較されます。比較の結果と使用されている特定の学習アルゴリズムに基づいて、モデルのパラメータが調整されます。モデルの適合には、変数選択とパラメータ推定の両方が含まれる場合があります。
続いて、適合したモデルを使用して、検証データセットと呼ばれる第 2 のデータセットの観測値に対する応答を予測します。[ 3 ]検証データセットは、モデルのハイパーパラメータを調整しながら、トレーニングデータセットに適合したモデルの偏りのない評価を提供します[ 5 ] (たとえば、ニューラルネットワークの隠れユニットの数 (層と層幅) [ 4 ] )。検証データセットは、早期停止による正則化に使用できます(検証データセットのエラーが増加したときにトレーニングを停止します。これは、トレーニングデータセットへの過学習の兆候です)。[ 6 ] この単純な手順は、トレーニング中に検証データセットのエラーが変動し、複数の局所的最小値を生成する可能性があるという事実により、実際には複雑になります。この複雑さにより、過学習が実際に始まった時期を判断するための多くのアドホックなルールが作成されました。[ 6 ]
最後に、テストデータセットは、トレーニングデータセットに適合したモデルの偏りのない評価を提供するために使用されるデータセットです。[ 5 ]テストデータセットのデータが一度も使用されたことがない場合(たとえば、交差検証の場合)、テストデータセットはホールドアウトデータセットと呼ばれます。一部の文献では、「テストセット」の代わりに「検証セット」という用語が使用されることがあります(たとえば、元のデータセットが2つのサブセットに分割された場合、テストセットは検証セットと呼ばれることがあります)。[ 5 ]
トレーニング、テスト、検証セットにおけるデータセットの分割サイズと戦略の決定は、問題と利用可能なデータに大きく依存します。[ 7 ]
トレーニングデータセットとは、学習プロセス中に使用される例のデータセットであり、例えば分類器のパラメータ(重みなど)を適合させるために使用されます。[ 9 ] [ 10 ]
分類タスクの場合、教師あり学習アルゴリズムは、トレーニングデータセットを調べて、優れた予測モデルを生成する最適な変数の組み合わせを決定または学習します。[ 11 ]目標は、新しい未知のデータによく一般化できるトレーニング済み(適合済み)モデルを作成することです。[ 12 ]適合済みモデルは、ホールドアウトデータセット(検証データセットとテストデータセット)からの「新しい」例を使用して評価され、新しいデータを分類する際のモデルの精度が推定されます。[ 5 ]過学習などの問題のリスクを軽減するために、検証データセットとテストデータセットの例はモデルのトレーニングに使用すべきではありません。[ 5 ]
訓練データから経験的な関係性を探索するほとんどの手法は、データに過剰適合する傾向があり、つまり、訓練データの中に見かけ上存在する関係性を特定し、それを悪用してしまう可能性がある。これらの関係性は、一般的には成り立たないものである。
訓練データセットに新しいデータが継続的に追加される場合、これは増分学習と呼ばれます。
検証データセットは、モデルのハイパーパラメータ(つまりアーキテクチャ)を調整するために使用される例のデータセットです。開発セットまたは「devセット」と呼ばれることもあります。 [ 13 ]人工ニューラルネットワークのハイパーパラメータの例としては、各層の隠れユニットの数があります。[ 9 ] [ 10 ]これは、テストセット(後述)と同様に、トレーニングデータセットと同じ確率分布に従う必要があります。
過学習を避けるため、分類パラメータを調整する必要がある場合は、トレーニングデータセットとテストデータセットに加えて、検証データセットを用意する必要があります。例えば、問題に最適な分類器を探す場合、トレーニングデータセットを使用してさまざまな候補分類器をトレーニングし、検証データセットを使用してそれらの性能を比較してどれを採用するかを決定し、最後にテストデータセットを使用して精度、感度、特異度、F値などの性能特性を取得します。検証データセットはハイブリッドな役割を果たします。つまり、テストに使用されるトレーニングデータですが、低レベルのトレーニングにも最終テストにも使用されません。
モデル選択に検証データセットを使用する基本的なプロセス(トレーニングデータセット、検証データセット、テストデータセットの一部として)は次のとおりです。[ 10 ] [ 14 ]
私たちの目標は、新しいデータに対して最高のパフォーマンスを発揮するネットワークを見つけることであるため、異なるネットワークを比較する最も簡単な方法は、トレーニングに使用したデータとは独立したデータを使用して誤差関数を評価することです。さまざまなネットワークは、トレーニングデータセットに関して定義された適切な誤差関数を最小化することによってトレーニングされます。次に、独立した検証セットを使用して誤差関数を評価することによってネットワークのパフォーマンスが比較され、検証セットに関して最小の誤差を持つネットワークが選択されます。このアプローチはホールドアウト法と呼ばれます。この手順自体が検証セットへの過学習につながる可能性があるため、選択されたネットワークのパフォーマンスは、テストセットと呼ばれる3番目の独立したデータセットでそのパフォーマンスを測定することによって確認する必要があります。
このプロセスの応用例として、早期停止があります。早期停止では、候補モデルは同じネットワークの連続的な反復であり、検証セットでの誤差が大きくなるとトレーニングが停止し、前のモデル(誤差が最小のモデル)が選択されます。
テストデータセットは、トレーニングデータセットとは独立したデータセットですが、トレーニングデータセットと同じ確率分布に従います。したがって、テストセットは、未知のデータに対する特定の分類器の性能(つまり汎化)を評価するためだけに用いられる例のセットです。 [ 9 ] [ 10 ]これを行うには、モデルを使用してテストセットの例の分類を予測します。これらの予測は、例の真の分類と比較され、モデルの精度が評価されます。[ 11 ]トレーニングデータセットと検証データセットに適合したモデルがテストデータセットにもよく適合する場合、過学習は最小限に抑えられています(下図を参照)。通常、テストデータセットよりもトレーニングデータセットまたは検証データセットの方が適合度が高い場合は、過学習を示しています。
データセットのサンプル数が少ない場合、通常はトレーニングセットと検証データセットに分割され、トレーニングセットでモデルをトレーニングし、検証セットを使用して精度を向上させるために改良しますが、このアプローチは過学習につながります。ホールドアウト法[ 15 ]も使用できます。これは、トレーニングセットでトレーニングした後、最後にテストセットを使用する方法です。クロスバリデーションやブートストラップなどの他の手法は、小規模なデータセットで使用されます。ブートストラップ法は、元のデータから復元抽出でランダムにサンプリングすることにより、同じサイズの多数のシミュレーションデータセットを生成し、ランダムなデータポイントをモデルのパフォーマンスを評価するためのテストセットとして使用できるようにします。クロスバリデーションは、データセットを複数のフォールドに分割し、1つのサブフォールドをテストデータとして使用します。残りのフォールドでモデルをトレーニングし、すべてのフォールドをクロスバリデーションして(結果を平均し、モデルを統合して)最終的なモデルのパフォーマンスを推定します。一部の情報源では、単一の分割を使用すると過学習やモデルのパフォーマンス推定値の偏りにつながる可能性があるため、使用しないように推奨しています。[ 12 ]
このため、データセットはトレーニング、検証、テストの3つのパーティションに分割されます。標準的な機械学習の手法では、トレーニングセットでトレーニングを行い、検証セットを使用してハイパーパラメータを調整します。検証プロセスでは、検証損失が最も低いモデルが選択され、そのモデルがテストデータセット(通常は保留)でテストされ、最終モデルが評価されます。テストセットの保留法は、各エポック後にテストセットを使用しないことで計算を削減します。テストデータセットは、未知のデータに対するモデルの最終的なパフォーマンスを正確かつ正直に評価するため、トレーニングモデルの検証やハイパーパラメータの微調整には決して使用すべきではありませんが、更新されたモデルのパフォーマンスを決定し、過学習やさらなるトレーニングの必要性、または早期停止を検出するために複数回使用できます。[16] クロスバリデーションなどの手法が使用され、テストセットが分離され、トレーニングデータセットがさらにフォールドに分割され、サブフォールドがモデルのトレーニング用の検証セットとして機能します。これは、モデルのバイアスと変動性を減らすのに効果的です。[ 5 ] [ 12 ]交差検証には、ネストされた交差検証など、多くの方法があります。

テストとは、何かを試してそれについて知ることであり(「実験によって真実性、真正性、または品質を証明する」とCollaborative International Dictionary of Englishによる)、検証とは、何かが有効であることを証明することである(「確認する、有効にする」とCollaborative International Dictionary of Englishによる)。この観点から、テスト セットと検証セットという用語の最も一般的な使用法は、ここで説明したとおりである。しかし、産業界と学術界の両方で、内部プロセスはさまざまなモデルをテストして改善すること(開発セットとしてのテスト セット)であり、最終モデルは未知のデータで実際に使用する前に検証する必要があるもの(検証セット)であると考えることで、これらの用語が互換的に使用されることがある。「機械学習に関する文献では、『検証』セットと『テスト』セットの意味がしばしば逆転している。これは、人工知能研究に蔓延する用語の混乱の最も露骨な例である。」[ 17 ]それにもかかわらず、テストセットであろうと検証セットであろうと、最終セットは最終実験でのみ使用されるべきであるという重要な概念を維持しなければならない。

アルゴリズムのトレーニングにおける省略は、誤った出力の主な原因です。[ 18 ]このような省略の種類には、次のものがあります。[ 18 ]
特定の状況が考慮されなかった例として、ある少年が母親が夜間の室内照明下で顔を登録したために携帯電話のロックを解除できたケースがあるが、これはシステムのトレーニングに適切に含まれていなかった条件である。[ 18 ] [ 19 ]
比較的無関係な入力の使用には、アルゴリズムが対象物ではなく背景を使用して物体検出を行う状況が含まれる。例えば、草原にいる羊の写真で学習させた場合、草原にある別の物体が羊として解釈されるリスクが生じる。[ 18 ]
これらは同一分野の二つの側面と見なすことができ、両者は過去10年間で著しい発展を遂げてきた。
{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)