検証損失が下がらない

46 views (last 30 days)
YoSa Akida
YoSa Akida on 7 Jun 2023
Commented: YoSa Akida on 15 Jun 2023
事前学習モデルResNet101を用いたファインチューニングを行っています.
学習の進行状況について,エポック数を増やしても,学習損失の減少速度に比べ,検証損失が横ばい又は減少が遅く,中々学習が上手に進みません.
考える原因としてどのようなものが挙げられるでしょうか.
ご回答よろしくお願いします.
(学習オプション
Optimizer : sgdm
MinibatchSize : 256
MaxEpochs : 12)

Accepted Answer

Hiro Yoshino
Hiro Yoshino on 9 Jun 2023
Edited: Hiro Yoshino on 12 Jun 2023
結果だけを見ると、
  • 学習データと 検証データの分布が異なる
ように思えます。データが少ないと思いましたが、学習データはどのくらいありますか?
  7 Comments
Hiro Yoshino
Hiro Yoshino on 14 Jun 2023
機械学習の目標は汎化誤差を最小にすることです。(しかしデータの確率密度分布が分からないので、期待値を計算することができなないため) 汎化誤差を経験誤差で代用します。
そもそも、検証データと学習データは同じ母集団からのサンプリングと見なせないと、学習後のモデルを評価することが出来ません。「分布が大きく異なる場合 ...」 というか、異なる想定ではないと言う事です。データを分けた時点で、異なる分布だとするのであれば、それは正しい分け方ではありません。
「結論として ...」というよりも、犬を分類したいのに、猫の画像データだけで学習して、犬の検証データを持ってきて”精度が上がらない!”と言っている様なもので、学習の方法の仮定に沿っていない状況だと思います。
データがまずしっかりした状態で、精度については検証データで評価していくのが普通かなと思います。エポック数、学習率などを操作して過学習にならないように適当なところで学習をストップさせるのが NN の学習方法です。
YoSa Akida
YoSa Akida on 15 Jun 2023
説明ありがとうございます.検証データに関して,少し分布に偏りがあるので,改善して適切な学習を行いたいと思います.

Sign in to comment.

More Answers (0)

Categories

Find more on Statistics and Machine Learning Toolbox 入門 in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!