検証セット: 別のパーティション

前のモジュールでは、データセットをトレーニング セットとテストセットにパーティショニングする方法を紹介しました。このパーティショニングにより、あるサンプルセットでトレーニングしてから、別のサンプルセットでモデルをテストできます。2 つのパーティションを使用する場合、ワークフローは次のようになります。

3 つのステージで構成されるワークフローの図1. トレーニング セットでモデルをトレーニングします。2. テストセットでモデルを評価する3. テストセットの結果に応じてモデルを微調整する1、2、3 を反復して、最終的にはテストセットに対して最も優れたモデルを選択します。

図 1. 考えられるワークフローは次のうちどれですか。

この図における「モデルの微調整」とは、学習率の変更、特徴の追加または削除、まったく新しいモデルをゼロから設計するなど、思いつくモデルの調整をすべて行うことを意味します。このワークフローの最後で、テストセットで最適なモデルを選択します。

データセットを 2 つのセットに分割するのは良いアイデアですが、万能薬ではありません。次の図に示すように、データセットを 3 つのサブセットに分割することで、過学習の可能性を大幅に低減できます。

3 つの部分に分割された水平バー: 70% がトレーニング セット、15% が検証セット、15% がテストセット

図 2. 1 つのデータセットを 3 つのサブセットにスライスする。

検証セットを使用して、トレーニング セットから得られた結果を評価します。次に、モデルが検証セットに「合格」した、テストセットを使用して評価を再確認します。次の図は、この新しいワークフローを示しています。

ワークフローは図 1 とほぼ同じですが、テストセットに対してモデルを評価する代わりに、検証セットに対してモデルを評価します。トレーニング セットと検証セットがほぼ一致したら、テストセットとモデルを比較します。

図 3. ワークフローの改善。

今回の改善されたワークフローの内容は次のとおりです。

  1. 検証セットに対して最も性能が高いモデルを選択する。
  2. そのモデルをテストセットに照らして再確認します。

テストセットの公開が少なくなるため、より適切なワークフローになります。