検証用データ "ValidationData" の有無で "trainnet" の推論結果が異なるのはなぜですか?
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 18 de Feb. de 2026 a las 0:00
Respondida: MathWorks Support Team
el 18 de Feb. de 2026 a las 23:30
深層学習モデルを "trainnet" で学習しています。"trainingOptions" の "ValidationData" を指定した場合と指定しない場合で、同じ学習データ・ネットワーク構造・パラメータにもかかわらず、推論結果に大きな違いが出ます。特に "ValidationData" を指定した場合は予測精度が高くなりますが、指定しない場合は精度が下がります。どのような理由が考えられますか?
Respuesta aceptada
MathWorks Support Team
el 18 de Feb. de 2026 a las 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 comentarios
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!