【发布时间】:2012-03-29 03:40:09
【问题描述】:
我目前正在做一个涉及坑洞检测和神经网络的项目。到目前为止,我有一部 Android 手机可以读取加速度计读数并将 X、Y、Z 轴以及幅度和当前时间戳写入 CSV 文件。然后使用最小-最大归一化对数据进行归一化,并使用 CSV 文件中的 Y 轴读数。神经网络学习坑洞所面临的问题是,我应该向反向传播神经网络提供哪些数据?我是否应该设置一个阈值,当 Y 轴达到这一点时,获取前 5 个点和之后的 5 个点,然后向网络提供 11 个输入?我不想过度训练网络,也不想每次都向它提供不同位置的数据。
训练 - 我也开始收集收集的数据并创建训练数据集 - 我是否应该输入诸如正常/颠簸道路/减速带以及坑洼的读数之类的内容?训练集应该有多大?还是“数据越多越好”实际上是真的?
这是坑洞数据的样子。
这就是减速带数据的样子。
收集的数据样本
X-Axis Y-Axis Z-Axis Timestamp
-0.371827, 8.513097, 5.441484, 165401
-0.601749, 7.976613, 5.326523, 165601
-0.333506, 8.053253, 5.441484, 165801
-0.256866, 8.206534, 5.364844, 166001
0.049697, 8.398136, 5.364844, 166202
-0.371827, 8.436457, 5.211563, 166400
-0.256866, 8.551417, 5.709726, 166601
-0.256866, 8.513097, 5.403164, 166801
-0.333506, 8.474776, 5.709726, 167000
-0.563428, 8.628057, 5.594766, 167201
-0.563428, 7.401808, 4.713398, 167402
-1.981280, 5.447472, 4.406836, 167602 POTHOLE
-0.180225, 5.600753, 5.403164, 167800 POTHOLE
-0.984952, 8.053253, 4.445156, 168001
-1.214874, 8.666378, 5.671406, 168201
-0.525108, 7.210207, 3.870352, 168401
-1.138233, 7.286847, 5.824687, 168600
-0.601749, 10.045910, 5.288203, 168801
-0.180225, 8.206534, 5.173242, 169001
0.279619, 7.861651, 5.518125, 169200
0.202978, 8.934620, 5.824687, 169401
-0.065264, 8.321495, 5.364844, 169601
-0.065264, 8.628057, 5.709726, 169800
-0.716710, 8.014933, 5.748047, 170001
-0.141905, 8.513097, 5.441484, 170200
-0.026944, 8.206534, 5.594766, 170401
-0.601749, 8.168214, 5.058281, 170601
算法
我提出的算法是在样本数据上设置一定的阈值比如第12行,当Y轴达到某个阈值比如然后通过前面的5分,之后的5分给NN。
【问题讨论】:
-
我相信这会更适合这里,因为它不是编程问题:stats.stackexchange.com/questions
标签: java android artificial-intelligence neural-network accelerometer