【行動認識 #5】データ量別でCNNの性能差
これの続き
【行動認識 #4】Subjectを考慮してCNN層数別で性能差を確認 - MotoJapan's Tech-Memo
学習データ量別で確認してみる。
概要
もともとの総データ数は、7344件。
7344件 ⇒ ( 7344 x 128 [samples] / 50 [Hz] ) + 0.5 [overwrap rate] ⇒ 2.6 [hour]
これが100%⇒50%⇒25%と変化したときの精度差を確認。
結果
最終精度は下記
condition | accuracy | loss |
---|---|---|
full (100%) | 0.9276 | 0.9687 |
half (50%) | 0.9008 | 0.9108 |
quarter (25%) | 0.8597 | 1.2324 |
tensorboardで学習進捗を書き出すとこんな感じ
- 学習データ量が多いほど精度向上がわかる
- 大体80 [epoch]目でどれも精度的な収束は落ち着きがわかる
- 比較的データが多いほうが初期精度も高い
- データ量が少ないとOverfitによる乖離傾向が強くなる
confusion matrixはどうだろう。
testデータの左からfull/half/quarterの順
- 特に姿勢系のSITTING/LAYINGの精度劣化が著しい(これは結構面白い)
SITTING/LAYINGは、0.87->0.77に落ち込み、誤検出の漏れ先はほとんどが姿勢系
まとめ
- 学習データ量が多いほど、汎化性能は高くなっている
- いろいろな行動パターンが学習できている
- 学習データ量が多いほど、収束タイミングは早くなっている
- epochを回すのもいいがデータが多ければepochをそこまで回さなくてもよいかも
- 姿勢系は遷移系に比べてデータが必要
- 繰り返し動作と単発動作だと、繰り返しの方が特徴量抽出しやすいのかも
以上。