神经网络输入建议

时间:2012-03-12 17:48:39

标签: java android artificial-intelligence neural-network accelerometer

我目前正在做一个涉及坑洞探测和神经网络的项目。到目前为止,我有一部Android手机读取加速度计读数,并将X,Y,Z轴以及幅度和当前时间戳写入CSV文件。然后使用min-max标准化对数据进行标准化,并使用CSV文件中的Y轴读数。我所面对的神经网络学习坑洞的问题是,我应该向反向传播神经网络提供哪些数据?我应该设置一个阈值,当Y轴到达这一点时,获得前面的5个点和5个点,然后用11个输入馈送网络?我不想过度推翻网络,也不想每次都将数据提供给不同的位置。

培训 - 我也开始收集所收集的数据并创建一个训练数据集 - 我应该把诸如正常/颠簸路面/减速带以及坑洼的读数等内容放入?训练集应该有多大?或者“数据越多越好”实际上是真的吗?

这就是坑洞数据的样子。

Pothole Graph

这就是speedbump数据的样子。

Speed Bump

收集的数据样本

 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

算法

我提出的算法是当Y轴达到某个阈值(例如 <7 )然后通过时,在样本数据上设置某个阈值,例如第12行之前的5分和之后的5分到NN。

2 个答案:

答案 0 :(得分:0)

我不确定你想要在NN之前和之后只传出5分。我想你想把所有数据传递给NN。您可以将数据标记为坑洞或非坑洞。

INPUT(FEATURES):X,Y和Z. 输出(目标):1(POTHOLE),0(没有POTHOLE)

X轴Y轴Z轴目标

-0.371827,8.513097,5.441484,0

-0.601749,7.976613,5.326523,0

-0.333506,8.053253,5.441484,0

-0.256866,8.206534,5.364844,0

0.049697,8.398136,5.364844,0

-0.371827,8.436457,5.211563,0

-0.256866,8.551417,5.709726,0

-0.256866,8.513097,5.403164,0

-0.333506,8.474776,5.709726,0

-0.563428,8.628057,5.594766,0

-0.563428,7.401808,4.713398,0

-1.981280,5.447472,4.106836,1

-0.180225,5.600753,5.403164,1

-0.984952,8.053253,4.445156,0

-1.214874,8.666378,5.671406,0

-0.525108,7.210207,3.870352,0

-1.138233,7.286847,5.824687,0

-0.601749,10.045910,5.288203,0

-0.180225,8.206534,5.173242,0

0.279619,7.861651,5.518125,0

0.202978,8.934620,5.824687,0

-0.065264,8.321495,5.364844,0

-0.065264,8.628057,5.709726,0

-0.716710,8.014933,5.748047,0

-0.141905,8.513097,5.441484,0

-0.026944,8.206534,5.594766,0

-0.601749,8.168214,5.058281,0

答案 1 :(得分:0)

我认为你应该发送每一点+ - 5.就像你在第20点时你会给你的n点数从15到25。 设置阈值是一个坏主意,因为坑洼振幅可能会从一个变为另一个。 在你的训练中,你应该考虑“小”和“大”的坑洼。

你能告诉我们你正在使用的nn库吗?