YOLOでの学習状況の質問

YOLOを学習させた際に、学習の結果が以下の画像のようになりました。
学習オプションは、
trainingOptions('sgdm', ...
'MiniBatchSize', 64, ....
'InitialLearnRate',1e-3, ...
'MaxEpochs',30,...
'CheckpointPath', tempdir, ...
'Shuffle','never');
となっています。
この後、テストデータで検証を試みるものの、全く認識ができません。謎なことに、学習データで検証してもbboxesが空になってしまいます。
(ちなみに、学習データ数は5000枚以上になっています。)
ここで質問ですが、画像のように学習状況が適切にできているように見えても、実際は学習できない場合があるのでしょうか。
まだまだ不勉強なため、大雑把な質問となってしまい申し訳ございませんが、何か教えていただければ幸いです。

 Accepted Answer

Kenta
Kenta on 14 Jul 2020
Edited: Kenta on 14 Jul 2020

0 votes

こんにちは、matlabのバージョンはいくつでされていますか?2019aなどの少し前のものでされていますか?もし、そうであれば、最新の2020aにアップデートしてやってみればよいかもしれません。もしくは、単に、すべてのセルに対して物体がない、というような判断を下すように学習が進んでしまっているのかもしれないな、とも思ったのですが、それにしては十分Lossが小さくなっている気もします。

12 Comments

HY
HY on 14 Jul 2020
何度も大変ありがとうございます。
バージョンですが2019bを使用しています。アップデートで解決できる場合もあるのですね!時間がかかるかもしれませんが、確認してみます。
また、適合率や再現率が以下の画像のようになっているのですが(見づらくてすみません)、0の値になっているカテゴリは、適切に学習できていないということなのでしょうか?
Kenta
Kenta on 14 Jul 2020
はい、一度2020aでもやってみて、結果を教えてもらえるとうれしいです。
そうですね、ほかの非負の値も結構小さいので、あまり学習はうまくいっていないようです。
HY
HY on 14 Jul 2020
遅くなるかもしれませんが、アップデート確認してみます。
うまくいってなさそうですね、、、、泣
YOLOv2深層学習を使用したオブジェクトの検出のドキュメンテーションでは、学習オプションが'MiniBatchSize', 16, 'InitialLearnRate',1e-3,'MaxEpochs',20,...で、学習時間7分で(GPUの性能によると思いますが)、認識精度が9割以上になっていますが、これは単純に検出する物体のサイズが大きいためなのでしょうか。単にエポック数をあげて解決できるようならいいのですが、、、。
関係ない質問までしてすみません。
Kenta
Kenta on 15 Jul 2020
はい、またアップデートのほうも試してみてください。
ちなみにデータは自前のデータでされていますか?それともmatlabのドキュメントにあるデータでやっていますか?
HY
HY on 15 Jul 2020
自前で用意しています。 (faster rcnnでは、7〜8割での認識はできていました。)
宜しくお願い致します。
Tohru Kikawada
Tohru Kikawada on 15 Jul 2020
Kentaさんのご指摘のとおり、新しいバージョンでお試しすることをお勧めいたします。古いバージョンですと下記のような不具合が修正されていない可能性があります。
HY
HY on 15 Jul 2020
ご回答ありがとうございます。
確かに標識のサイズがバラバラであるので、エラーが発生してそうです。 確認してみます。
Kenta
Kenta on 15 Jul 2020
Kikawadaさま、URLのほうありがとうございます。こちら、私の意図していたもので助かりました。
HYさま、URLにあるとおり、2019bの初期では、入力のサイズなどによっては、うまく作動しないことがあって(すぐに改善されましたが)今回はそれにあたるかもしれないと思いました。アノテーションのbounding boxの縦横ではなく、ネットワーク構造の話です。
HY
HY on 15 Jul 2020
すみません、英論文に損失関数とbounding boxのサイズエラーについて書いてあったので混同してしまいました。
ネットワークの構造の話だったのですね。 ありがとうございます。
Kenta
Kenta on 16 Jul 2020
>論文に損失関数とbounding boxのサイズエラーについて書いてあったので混同してしまいました
なるほど、YOLO v2は小さいものに弱いともとの論文でも言っているのでそれも誤差要因ですね。
とはいえ、faster RCNNではうまくいっているようですので、極端にYOLOで精度が0になるのは、他の要素が大きいかと思います。
まずはバージョンをアップさせて試してみてください。
HY
HY on 16 Jul 2020
はい、明日アップデートできそうなので、試してみます。
みなさま、誠にありがとうございました。
Kenta
Kenta on 16 Jul 2020
はい、うまくいくといいですね!

Sign in to comment.

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Asked:

HY
on 14 Jul 2020

Commented:

on 16 Jul 2020

Community Treasure Hunt

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

Start Hunting!