私は pylearn2 ライブラリを使用して畳み込みニューラル ネットワークをトレーニングしていますが、すべてのエポック中に、検証エラーが一貫してテスト エラーよりも高くなります。出来ますか?もしそうなら、どのような状況で?
2 に答える
コメントを回答に移動します。以前の回答を変更するのは間違っているようでした
完全なデータセットは適切にシャッフルされていない可能性があるため、テスト セットの例は分類しやすい場合があります。
訓練/有効/テストサブセット間で再配布された例で実験を再度行うと、これが当てはまるかどうかが示されます。
トレーニング セットは、ネットワークに供給される画像のセットです。エラーは相手側で計算され、ネットワークのパラメーターはこれらのエラーに基づいて調整されます。検証セットは、ネットワークに供給される画像のセットです。エラーは計算されますが、ネットワークのパラメーターは調整されません。
基本的に、検証を使用して、ネットワークがトレーニングされていない画像に対してどの程度うまく機能するかを確認します。
このビューでは、ほとんどの場合、 onvalid_y_misclassよりも onの方がエラーが大きくなることが予想されtrain_y_miscalssます。
イメージ セットの説明については、こちらを参照してください。
編集:pylearn2表記を使用した例
列車セットのサイズ:700例; 有効なセットのサイズ:300例
いくつかのトレーニング (たとえば 5 エポック) の後、ネットワークはトレーニング セットの例と有効なセット650の例を突き止めます。700200300
その結果、5 エポック後:
train_y_misclass = (700 - 650) / 700 = 0.07142857142
valid_y_misclass = (300 - 200) / 300 = 0.33333333333
valid_y_misclass>train_y_misclassこれは想定内です。