MATLAB Answers

GoogleNetの​accuracyを改​善する方法につきまし​て

4 views (last 30 days)
ssk
ssk on 20 Feb 2019
Commented: ssk on 20 Feb 2019
プログラミング初心者です。
以下のリンクをもとにgooglenetでDICOM ファイルのclassificationを行いました
以下のコードを削除したり、optionでmaxepochの数やmini-batch sizeを調整しているのですが、なかなかaccuracyは上がらず55%です。
pixelRange = [-30 30];
scaleRange = [0.9 1.1];
imageAugmenter = imageDataAugmenter( ...
'RandXReflection',true, ...
'RandXTranslation',pixelRange, ...
'RandYTranslation',pixelRange, ...
'RandXScale',scaleRange, ...
'RandYScale',scaleRange);
augimdsTrain = augmentedImageDatastore(inputSize(1:2),imdsTrain, ...
'DataAugmentation',imageAugmenter);
alexnetでは90%近いaccuracyを出せているので、googlenetではなぜこういった問題が生じているかご存じでしたらご教示頂けますと幸いです。

  0 Comments

Sign in to comment.

Accepted Answer

Kenta
Kenta on 20 Feb 2019
maxepochやminibatchsizeのほかに、初期学習率や、モーメンタム、L2正則、learnratedropfactorなどがあります。
初期学習率やモーメンタムは変更されましたか?
また、学習曲線はどのようになっていますでしょうか?変更可能なパラメータがたくさんあって、迷ってしまいますが、学習曲線があれば、少し見当がつけられるかもしれません。
またalexnetで90%ほどの精度なのであれば、もしかしたら、うまく走っていないのかもしれません。
(実はファイルのなかでカテゴリが混在している、など)それか、カテゴリ間で画像枚数にかたよりがあれば、精度がさがることもあります。
ただ、私の経験では、alexnet, googlenetの精度はそこまで大きく変わらないような気もするのですが、もしかしたらネットワークやそのデフォルトの値で大きく変わるのかもしれません。
また、計算に少し時間はかかりますが、ベイズ的最適化でパラメータを決定するのも良いと思います。googlenetのファイルを関数として、ベイズ的最適化のコードに組み込めば、自動的にパラメータをしぼりこんでくれます。
https://jp.mathworks.com/help/deeplearning/examples/deep-learning-using-bayesian-optimization.html

  9 Comments

Show 6 older comments
ssk
ssk on 20 Feb 2019
スクリーンショット 2019-02-21 06.51.44.png
試しに50枚でやってみたのですが横ばいが続ききちんと学習できているとはいいがたいですね。。 dataaugmentationも含めて試してみます。
Kenta
Kenta on 20 Feb 2019
そうですか...報告ありがとうございます。
alexnetでうまくいったのなら、そちらに絞ってみてはどうでしょう。いろんな意味での、そのデータに対するネットワークの向き不向きもあると思いますので。
ssk
ssk on 20 Feb 2019
はい! ご丁寧にありがとうございました!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!