質問: ### 前提・実現したいこと pythonで画像認識の機械学習をしている初心者です。 なぜこのような事がおこるのか、どうすればいいのかをご指導いただきたいです。 学習時、学習用画像に対するaccuracyが全く変動しない現象に悩まされています。 例えば、 ``` step 0 taining accuracy 0.30697 step 1 taining accuracy 0.30697 step 2 taining accuracy 0.30697 以下同様...... ``` といった様なことがおこります。 ### 試したこと 少し調べたところ、同じような質問ではバッチサイズや学習率等について触れられていたのでそれらを確認しました。 使っている画像は3クラス各400・400・200枚の計1000枚、バッチサイズは20と10と50を試しました。 学習率は1e-1から1e-2、1e-3......と1e-8まで試しました。 全ての組み合わせを試行したわけではありませんが、行ったケースでは全て上記のような結果になりました。 ネット上で参考にしているブログ等ですと人の顔の認識ばかりで、それに対し私が扱う画像は傾向が違う(事情により詳しくは言えませんが、布地や壁材の分類に近い)ので、学習率をもっと上げた方がいい、下げた方がいいというのもあるかもしれません。 念のため環境を載せておきます。 windows10 python3.6.6 tensorflow
回答: accuracyだけだと傾向がわかりづらいですが、変動がない場合は過学習しているなどの状況が考えられます。lossも確認してみてください。また、モデルの改善が必要かもしれません(dropout, batch normalizationを入れる、モデルが複雑すぎるなら単純にするなど)。 あと、accuracyだと状況が捉えづらいので、F1値でも出してみると把握しやすいかもしれません。 https://qiita.com/koshian2/items/81abfc0a75ea99f726b9 不均衡データだと一般的にうまく学習するのは難しいので、クラスの重みを与えるようにしてみてください。 https://qiita.com/Alshain/items/3415b14c077cbfdadaea