11/26 進捗報告

VGG16のFineTuningを引き続き行っていました。

Loss
MAE

収束はしていそうですが、学習後に検証を行ったところ、決定係数R2は前回からあまり改善できていない状況です。

現在は、VGG16を3つ使用したアンサンブル学習を行っています。
GoogleColab上に画像データのフォルダを解凍するようにしたところ、batch_sizeが64で学習できたため、アンサンブル学習も問題なくできそうです。

どういったデータを入力値として増やすのに適切か考え、今週にも新しく学習に取りかかりたいです。

11/19 進捗報告

今週は数種類のパターンで学習を行っていました。
(batch_size : 16, train : 7660枚, test : 3284枚)

  1. EfficientNet B2
  2. Xception (FineTuning, float)
  3. Xception (FineTuning, uint)
  4. Vgg16 (FineTuning)

以上の4パターンで学習を行いました。
以下が学習結果です。

  1. EfficientNet B2
efficient_loss
efficient_mae

2. Xception ( 糖度データ 小数値 )

xception_loss
xception_mae

4. Vgg16

vgg16_loss
vgg16_mae

今まで指標にしていたMAEだけで見るとVGG16かXceptionが良いと思われます。

一部残していたデータを用いて精度検証を行いました。
MSEとMAE、決定係数 R2 を算出しました。

No.NameMAEMSER2
1EfficientNet B23.04912.171-3.316191625399121
2Xception
(float32)
2.0925.918-1.0984957912248525
3Xceptiom
(uint8)
1.53.661-0.24255871847602561
4Vgg161.6374.470-0.585332572479959

R2を算出したところ、マイナス値になってしまっており、結構悪いと思われます。
糖度データを四捨五入して学習した時の方が精度が良いため、他のモデルでも試してみたいと思います。

次の予定としては、学習回数がまだまだ少ないため、VGG16モデルでの学習を続けるとともに、新たに桃部分のヒストグラムを入力値としたモデルを作成し、マルチモーダル、アンサンブルを行ってみようかなと思っています。

また、損失関数を自作(RMSE)に変えたところ、学習時間が同一モデルで1epochあたり2時間から1時間半に減りました。
GoogleColabの同時実行可能なノートブックが最高2つ(GPU, TPU ひとつずつ)だったため、複数モデルの学習が同時並行できそうです。

11/12 進捗報告

Xceptionモデルでの学習を引き続き行っていました。
トレーニングデータのLossが1.0程度まで下がり、MAEが1.0を切ったため、学習を止めました。
分類の学習の時にはテストデータの精度(Accuracy)も1epochごとにトレーニングデータのロスなどと同時に表示されていたのですが、MAEにしたところ表示されなくなったため、確認ができませんでした。

現在、画像の水増し(水平反転、ノイズ、ぼかし)を行い、6倍(約11000枚)に増やし、Xceptionモデルでの学習を行っています。
画像が圧倒的に増えたため、1epochが2時間かかっており、数日間放置するしかないかと見ています。
Google Colabのノートブックを1つ増やし、別のモデルでの学習や画像数を絞った学習を並行して行おうかなと考えてます。

11/5 進捗報告

中間発表前から学習を行っていたResNetモデルですが、200epochほど学習を行っても、100epoch後からLossやMAEがあまり変わらないため、中断しました。

今は植物図鑑でも使用したXceptionなどの他のモデルを試しています。
Xceptionでの学習ですが、クラッシュを避けるためbatchSizeを16に変更し
5epochの段階でval_loss, val_maeがResNetの学習よりも早く下がっているのでこのまま学習を行う予定です。

前回の進捗報告の際に教えていただいたGCPでの実行ですが、調査したところ64GBのGPUを1ヶ月借りると712ドル超はかかるそうです。
以下がComputeEngineのGPU価格です。

https://cloud.google.com/compute/gpus-pricing?hl=ja

今後精度が出ない場合には検討したいと思います。