加速度計のデータによって、歩行ノイズとダブルタップの違いを認識する必要があるAndroidデバイス用のアプリケーションを構築しています。私はニューラルネットワークを使用してこの問題を解決しようとしています。
最初はかなりうまくいき、立ったり座ったり、ゆっくりと歩き回ったりするなどのノイズからタップを認識するように教えました。しかし、通常の歩行に関しては、ノイズデータの大部分を供給したにもかかわらず、学習するようには見えませんでした。
私の質問:私のアプローチに重大な欠陥はありますか?問題はデータの不足に基づいていますか?
ネットワーク
25入力1出力の多層パーセプトロンを選択しました。これはバックプロパゲーションでトレーニングしています。入力は20msごとの加速度の変化であり、出力範囲は-1(タップなしの場合)から1(タップの場合)です。私はそこにある隠された入力のほとんどすべての構築を試みましたが、3-10で最も幸運でした。
トレーニングとJavaへのエクスポートにNeurophのeasyNeuronsを使用しています。
データ
私の合計トレーニングデータは、約50個のダブルタップと約3kのノイズです。しかし、私はまた、ダブルタップに比例した量のノイズでそれを訓練しようとしました。
データは次のようになります(+ 10から-10の範囲):
ダブルタップで座る:
早歩き:
繰り返しになりますが、ここでの私のアプローチに重大な欠陥はありますか?ウォーキングとダブルタッピングの違いを認識するために、より多くのデータが必要ですか?他のヒントはありますか?
アップデート
さて、多くの調整を行った後、私たちは、活発な散歩をしながらダブルタップを認識できるようになるまで、本質的な問題を煮詰めました。座って定期的に(社内で)歩くことで、かなりうまく解決できます。
活発な散歩
これは、私が最初に歩いてから停止し、静止してから、歩いて、歩いている間に5回のダブルタップを行ったテストデータです。
生データに興味のある方は、こちらから最新の(早歩き)データにリンクしました