我应该如何处理神经网络分类器的可变输入大小?

人工智能 神经网络 分类 数据预处理
2021-10-20 11:58:47

我目前正在做一个项目,我在鞋里有一个传感器,可以记录X,Y,Z轴,来自加速度和陀螺仪传感器。每毫秒,我得到 6 个数据点。现在,目标是,如果我做了一个动作,比如跳跃或踢腿,我将使用传感器的输出来预测正在执行的动作。

问题:例如,如果我跳转,我可能会获得 1000 个数据点,但在另一次,我会获得 1200 个数量,这意味着输入的大小是不同的。

到目前为止,我研究过的神经网络要求输入大小是恒定的,以预测Y值,但是,在这种情况下,它不是。我已经对如何制作具有可变大小的神经网络进行了一些研究,但还没有找到一个可行的。将输入裁剪到一定大小不是一个好主意,因为那样我会丢失数据。另外,如果我只是通过添加额外的来调整较小的试验0s,它扭曲了模型。

关于可行的模型或如何更好地清理数据的任何建议?

1个回答

以不同的方式处理数据要简单得多。由于您使用的是时间数据,因此通常的做法是先验地定义一个最小时间步长,通常称为granularity,它必须大于您的传感器响应能力。使用此粒度值,您将能够将数据拆分为间隔,然后您可以将属于某个间隔的每个实例与您喜欢的函数组合起来。最常见的选择显然是对这些值进行平均,但求和则可能是一个选择或移动平均线。

不要以为这样会丢失信息,预处理也称为数据清洗是有原因的,而不是原始数据更好。

作为最后一点,我建议您研究“量化自我的机器学习”,关于使用传感器训练关于运动和身体测量(如心率)的预测模型的文献越来越多。您可能会发现有关此特定传感器应用程序的预处理的信息。