検証用データ "ValidationData" の有無で "trainnet" の推論結果が異なるのはなぜですか?

8 次查看(过去 30 天)
深層学習モデルを "trainnet" で学習しています。"trainingOptions" の "ValidationData" を指定した場合と指定しない場合で、同じ学習データ・ネットワーク構造・パラメータにもかかわらず、推論結果に大きな違いが出ます。特に "ValidationData" を指定した場合は予測精度が高くなりますが、指定しない場合は精度が下がります。どのような理由が考えられますか?

采纳的回答

MathWorks Support Team
MathWorks Support Team 2026-2-18,0:00
この現象は、"trainnet" で "trainingOptions" の "ValidationData" を指定した場合、学習後に返されるネットワークの重みが異なるため発生します。"ValidationData" を指定すると、"OutputNetwork" プロパティの既定値が "best-validation" となり、学習中にバリデーション損失が最小となった時点のネットワークが返されます。一方、"ValidationData" を指定しない場合は、"last-iteration"(最終エポック時点)のネットワークが返されます。
そのため、同じ学習条件でも推論結果が異なる場合があります。両者の結果を揃えたい場合は、"trainingOptions" の "OutputNetwork" を明示的に "last-iteration" に設定してください。設定例は以下の通りです。
options = trainingOptions("adam", ...
"ValidationData", dsVal, ...
"OutputNetwork", "last-iteration", ...
... % その他のオプション
);
この設定により、"ValidationData" の有無によらず、最終エポック時点のネットワークで推論できます。

更多回答(0 个)

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!