テストセットを検証セットとして使用しないでください。どうして?
検証セットは、モデルパラメーターが修正されたときに実行され、学習はトレーニングバッチのバックプロップを介してのみ行われます。
では、なぜ検証データを検証データとして使用できないのでしょうか?
テストセットを検証セットとして使用しないでください。どうして?
検証セットは、モデルパラメーターが修正されたときに実行され、学習はトレーニングバッチのバックプロップを介してのみ行われます。
では、なぜ検証データを検証データとして使用できないのでしょうか?
回答:
トレーニングセットのパフォーマンスがトレーニング済みモデルの実際のパフォーマンスを表していない理由はすでに理解していると思います。つまり、オーバーフィッティングです。トレーニング中に学習したパラメーターは、トレーニングセットに最適化されます。注意しないと、パラメータを最適化しすぎて、トレーニングセットで本当に非常に優れているが、完全には見えない現実世界のデータに一般化されないモデルにつながる可能性があります。
問題は、実際には、トレーニングメソッドの「パラメーター」だけでなく、学習例に指定する必要があることです。ハイパーパラメータもあります。ここで、これらのハイパーパラメーターはモデル学習の明示的な部分(学習率など)である可能性がありますが、他の選択肢を「ハイパーパラメーター」として表示することもできます。SVMまたはニューラルネットワークを選択しますか?早期停止を実装する場合、どの時点で停止しますか?
トレーニングセットのパラメーターの過剰適合と同様に、ハイパーパラメーターを検証セットに過剰適合させることができます。検証セットのメソッドの結果を使用してモデリングの方法を通知するとすぐに、トレーニング+検証セットの組み合わせに過剰適合する可能性があります。おそらく、この特定の検証セットは、SVMの方が一般的なケースよりも優れています。
これが、検証セットとテストセットを分離する主な理由です。モデルのフィッティング中にセットを使用する場合-「うーん、そのメソッドはうまくいかない、たぶん私は試してみる必要があります...」レベル-そのセットで得られる結果は一般的なものを完全に示すものではありません完全に新しいデータで得られる結果。それのは、なぜあなたはまでデータの一部を保持する非常にあなたが何をすべきか上の任意の意思決定をしている点を越え、終わり。