- 学習データと 検証データの分布が異なる
検証損失が下がらない
46 views (last 30 days)
Show older comments
事前学習モデルResNet101を用いたファインチューニングを行っています.
学習の進行状況について,エポック数を増やしても,学習損失の減少速度に比べ,検証損失が横ばい又は減少が遅く,中々学習が上手に進みません.
考える原因としてどのようなものが挙げられるでしょうか.
ご回答よろしくお願いします.
(学習オプション
Optimizer : sgdm
MinibatchSize : 256
MaxEpochs : 12)
0 Comments
Accepted Answer
Hiro Yoshino
on 9 Jun 2023
Edited: Hiro Yoshino
on 12 Jun 2023
結果だけを見ると、
ように思えます。データが少ないと思いましたが、学習データはどのくらいありますか?
7 Comments
Hiro Yoshino
on 14 Jun 2023
機械学習の目標は汎化誤差を最小にすることです。(しかしデータの確率密度分布が分からないので、期待値を計算することができなないため) 汎化誤差を経験誤差で代用します。
そもそも、検証データと学習データは同じ母集団からのサンプリングと見なせないと、学習後のモデルを評価することが出来ません。「分布が大きく異なる場合 ...」 というか、異なる想定ではないと言う事です。データを分けた時点で、異なる分布だとするのであれば、それは正しい分け方ではありません。
「結論として ...」というよりも、犬を分類したいのに、猫の画像データだけで学習して、犬の検証データを持ってきて”精度が上がらない!”と言っている様なもので、学習の方法の仮定に沿っていない状況だと思います。
データがまずしっかりした状態で、精度については検証データで評価していくのが普通かなと思います。エポック数、学習率などを操作して過学習にならないように適当なところで学習をストップさせるのが NN の学習方法です。
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!