見出し画像

【プログラミング】感情検知アプリ:振り返り#3日目:深層学習のモデル選び

皆さんこんばんは。タカダイです。

本日も「感情検知アプリ」開発の振り返りをしました。

これまで3日間で、9時間をアプリ開発に費やしました。


本日は、主に「ResNet50」というモデルを使い、深層学習を進めることに時間を充てました。

「ResNet50」は、50層もの神経回路網を使うので、深層学習に相当な時間が掛かります。

10エポック(1エポックで、約870枚の写真)の学習をするのに、5時間も掛かりました。全25エポックを学習させると、約10時間掛かることになります!

10エポックを終了した時点で、精度25%を行き来していました。

この状態は、「停滞」状態であり、このモデルでの深層学習ができていないと判断し、別のモデルを探すことにしました。ちなみに、精度目標は70%以上としています。

今回の経験を通して、「FER-2013」を使った感情検知で十分な精度が出ているモデルを使うことが妥当だという結論にいたりました。

その理由は、以下の通りです。

FER-2013」のデータセットは、解像度の低い画像で構成される
「ResNet50」が想定する入力画像サイズ(/解像度)は大きい
「ResNet18」は、18層で比較的短い時間で処理できる
「ResNet18」を使い、十分な精度が出ているモデルはない(見つからない)
 ↓
「FER-2013を使った感情検知で十分な精度が出ているモデル」を使うことにした

判断の根拠

当たり前だろ!というツッコまれるかもしれません。笑

しかし、素人プログラマーの私としては、この論理プロセスを経験することは大切でした。今後、同じようなアプリ開発をする際には、「ショートカット」としてこのプロセスを辿ることができるようになるからです。

それでは、本日の振り返りです。

2月19日の振り返り

本日の行動は、3時間をプログラミング作業に充てました。

結果として、
1)ResNet50に合わせてデータセットを更新
2)ResNet50を使うためにトレーニング用コードの更新
3)トレーニング用コードを実行(5時間)
4)実行中に、進行状況を評価し「停滞」状態にあると判断し、中断することを決定
5)解像度の不一致があると判断し、別のモデル(ResNet18 )で対応することを決定

を達成することができました。

振り返り後の新たな行動は、
● 一つの手法がうまくいかない場合、以下のループを「素早く」回す

  原因を探る
    ↓ 
対象法があるかを判断
    ↓
 代替方法を探す 
    ↓
 実現性の評価
    ↓ 
   試行

を実行する予定です。

それでは皆さん、本日も良い一日をお過ごしください!


この記事が参加している募集

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?