機械学習の初学者です。
先程モデルを学習し終えて、学習曲線をプロットしてみたのですが、
思っていた出力と微妙に異なっていてもやもやしています。
以下の画像をご覧ください。
2出力の回帰モデルで、それぞれtrainとvalidationのMSEをプロットしています。
train時は急速にlossが減少しその後は非常に安定しているのに対し、
validationのlossは、減少傾向はあるものの一貫して不安定なグラフのようにみえます。
そもそもvalidationだけ下がり方が緩やかすぎるようにも思えるのですが...
(学習率やバッチサイズの問題かと思い、値を調整してみても同じような傾向でした。
色々試した中で学習曲線の形が最も"まとも"だったものが上図になります)
これは、正しく学習できていると考えて良いのでしょうか?
実際にこのような話をやったことのない素人の考えですが,
train と validation とで用いるデータセットは異なるのでしょうから,
特定のデータ群について学習をさらに一歩(epoch?)進めることが,学習に用いないデータについて「も」良い方向に進むとは限らないわけで,それがガタガタしたグラフに表れているという話なのではないでしょうか.
学習に使うデータだけに対する誤差減少の勢いと,学習に使わないデータに対する誤差減少の勢いが異なる(前者の方が早く減る)のも自然なことに思えます.
ご意見いただきありがとうございます。
なるほど確かに言われてみれば、学習とは本来訓練データの誤差を小さくするというものなので
バリデーションに対する誤差のプロットがガタつくのも自然なことですね! ...回帰問題なのでなおさら。
(せっかくですので他の方のお考えもお聞きしたく、質問はこのまま継続させていただこうと思います)
> 正しく学習できていると考えて良いのでしょうか?
私ではこれにうまく答えられないので,「回答」とはしない形としました.
(有識者によるまともな回答を期待)
正しく学習できていると思います。
普通は以下のページの最後にあるような学習曲線が出てきて、そこから過学習をいかに減らせるかが工夫になります。それに比較すると質問者様の例は、きれいに学習できている方であると思います。
https://www.altus5.co.jp/blog/machine-learning/2016/11/28/over-learning/
ご回答ありがとうございます。参考記事も一通り拝見いたしました。
きれいに学習できているとのこと、安心いたしました!
回答1件
あなたの回答
tips
プレビュー