最小二乗法によるパラメータ同定奮闘記7〜新しい実験データにSVM適用〜

研究アーカイブとして記事を書きます.
さてさて,そろそろ佳境に入ってきても良い頃ですが,最小二乗法を使って時系列データをこねくり回すのも7週間目になりました.
アニメーションを作りながら,モデルパラメータを実験的に定めたり,


(その中で帯域制限フィルタリング,ゼロパディングなども実施)
サポートベクターマシンでモデルパラメータの判別を試みたり

ということをやってきました.
ある程度,何らかしらの形にはなってきたと思うので,解析するデータを増やしてみてざっと調べてみないといけないと思います.

解析データの拡張

集中時の解析データを100マス計算だけではなく,キーボードタイピング,およびスマホアプリゲームを導入します.
(作業をしている時の脳波のデータです.)
そして,これらデータはラボの後輩くんがくれたデータなんですけど,卒業しちゃったのです.

100マス計算

キーボードタイピング

スマホアプリゲーム

データ評価の手法

生データに対して,以下の手法によりデータ解析を行います.

  1. 1秒分の解析窓を用意
  2. 周波数分解能を上げるため,ゼロパディング
  3. 4-30 Hzに帯域制限
  4. Duffing振動子のモデルパラメータを実験的に同定
  5. SVMにより分類器の作成
  6. 分類器の評価

分類器の評価結果

以上で行なった分類器の評価までの結果をいちよう載せておきます.
一回ざっとプログラムを試しただけですが...

結果〜!
被験者1 被験者2 被験者3 被験者4
100マス計算 63.3 96.7 80.0 93.3
タイピング 43.3 56.7 73.3 80.0
スマホアプリゲーム 66.7 96.7 63.3 76.7

タイピングのデータは総じて結果が正解率が低いですが,被験者1に関しては,50%を下回りましたね...笑
2分の1を下回るなんて面白すぎる...笑
内側の周波数帯域の取り方や,ゼロパディングの量,その他諸々を見直し,もう一度やり直します.

他もタイピングとスマホゲームに関しては,正解率が低かったので,周波数ピークを特徴量として追加してます.

タイピングデータ

タイピングデータの特徴量増加バージョン!
被験者1 被験者2 被験者3 被験者4
パラメータのみ 43.3 56.7 73.3 80.0
パラメタ+第1ピーク 43.3 46.7 70.0 96.7
パラメタ+第2ピーク 40.0 63.3 60.0 93.3
パラメタ+第3ピーク 53.3 66.7 66.7 96.7

被験者1の場合,第3ピークまで入れると,正解率は上がるけど,やっぱりどのデータもそこまで顕著に増加しない感じですね.たまたまなのかな.

スマホゲーム

スマホゲームの特徴量増加バージョン!
被験者1 被験者2 被験者3 被験者4
パラメータのみ 66.7 96.7 63.3 76.7
パラメタ+第1ピーク 63.3 96.7 53.3 60.0
パラメタ+第2ピーク 56.7 96.7 63.3 80.0
パラメタ+第3ピーク 53.3 96.7 66.7 66.7

被験者1に関しては,周波数ピークを入れると逆に正解率が低下しました.
つまり,今回のSVMの結果から言えることは,

  • 周波数ピークの値では特徴量として適切ではない
  • 各帯域の相対的なパワーならいけるかも
  • モデルパラメタの値がおおよそ支配的ではあるが判別には完璧ではない

まとめと今後の方向性として

最後にモデルパラメタのマッピングを載せていきます.

青が安静で,赤が集中時のデータです.
色をつけると,なんとなーく分類できているようにも見えますが,SVMでは制度が出ないものなのですね.
ここでちょっと気になるのは,青の安静時の分布状態ですね.
タスク条件を無視して安静時と集中時で抜き出してみましょう.

この時の青の安静時の分布がある程度同じところでないと意味ないので,ここら辺の評価手法も今後色々と考えていかないといけないところです.
(平均や分散などデータ出しましたが,多くなるので割愛...)

今後やるべき課題

今後この研究内容の方向性としてやるべきこととしては,4つあります.

  1. 手法の細かい見直し(修正)
  2. 分布を評価する手法を検討
  3. SVMの特徴量設計
  4. SVM自体の改良,もしくはニューラルネットワークを組む

手法の細かい見直しは,解析窓の工夫とか,ゼロパディングとか,モデルとかいろんな経験的にちょっとずつ直していくものです.

他には,分布を評価する手法をどうにか導入したいですね.
またちょっと本を読みます.

そして,周波数ピークではうまく特徴量が追えないので,他の方法を模索します.
(原因はわかってますが,ちょっとここでは書ききれません笑,別に出し惜しんでるわけではないですが,,,)

あとはサポートベクターマシン自体の改良か,そろそろニューラルネットワークのプログラムを組むか,といった感じでかね.

ではー!