MotoJapan's Tech-Memo

技術めも

【行動認識 #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で学習進捗を書き出すとこんな感じ


f:id:motojapan:20170811170435p:plain

  • 学習データ量が多いほど精度向上がわかる
  • 大体80 [epoch]目でどれも精度的な収束は落ち着きがわかる
    • 比較的データが多いほうが初期精度も高い


f:id:motojapan:20170811170803p:plain

  • データ量が少ないとOverfitによる乖離傾向が強くなる


confusion matrixはどうだろう。

testデータの左からfull/half/quarterの順

f:id:motojapan:20170811174843p:plain

  • 特に姿勢系のSITTING/LAYINGの精度劣化が著しい(これは結構面白い)

SITTING/LAYINGは、0.87->0.77に落ち込み、誤検出の漏れ先はほとんどが姿勢系

まとめ

  • 学習データ量が多いほど、汎化性能は高くなっている
    • いろいろな行動パターンが学習できている
  • 学習データ量が多いほど、収束タイミングは早くなっている
    • epochを回すのもいいがデータが多ければepochをそこまで回さなくてもよいかも
  • 姿勢系は遷移系に比べてデータが必要
    • 繰り返し動作と単発動作だと、繰り返しの方が特徴量抽出しやすいのかも

以上。