我有一个关于微控制器应用的研究项目。有一个带有2×2磁传感器和一个磁铁的板。目的是利用4个传感器(极左、远右、近左、近右)的数据计算磁体的位置(X,Y,Z)。传感器的输出电压为0.5伏特(没有磁场,输出电压为2.5伏特)。

现在我想训练一个神经元网络,从4个传感器输入,预测磁铁的x,y,z坐标。但我不知道正确的神经元网络类型(多层感知器、阿达林、霍普菲尔德等)和拓扑结构(每层有多少层和多少个隐神经元)。
上周,我用乐高积木来测量磁铁的“精确”位置,并保存了传感器数据。您可以在这里找到度量:xyz.csv。这是测量高度/z= 10.6毫米的节选。
Lt.Far Rt.Far Lt.Near Rt.Near X Y Z
2.45357 2.43891 2.43891 2.52688 -16 -16 10.6
2.45846 2.46334 2.51222 2.6784 -8 -16 10.6
2.48289 2.46334 2.63441 2.68328 0 -16 10.6
2.49267 2.45357 2.69306 2.54643 8 -16 10.6
2.46334 2.43402 2.56598 2.48778 16 -16 10.6
2.46334 2.51222 2.46823 2.65396 -16 -8 10.6
2.51711 2.64907 2.62463 3.14272 -8 -8 10.6
2.69306 2.72239 3.15738 3.38221 0 -8 10.6
2.74194 2.56598 3.41642 2.84457 8 -8 10.6
2.58065 2.45846 2.77615 2.53666 16 -8 10.6
2.48289 2.62952 2.46823 2.69795 -16 0 10.6
2.66862 3.18671 2.66373 3.33822 -8 0 10.6
3.24536 3.4262 3.33822 3.57282 0 0 10.6
3.46041 2.83969 3.63148 2.90323 8 0 10.6
2.81525 2.51222 2.90811 2.54643 16 0 10.6
2.49267 2.65885 2.45357 2.57576 -16 8 10.6
2.69306 3.26979 2.54154 2.81036 -8 8 10.6
3.37732 3.57282 2.81525 2.93255 0 8 10.6
3.5826 2.88368 2.88368 2.65396 8 8 10.6
2.8739 2.51711 2.6393 2.49756 16 8 10.6
2.47312 2.55621 2.42913 2.50244 -16 16 10.6
2.56598 2.76637 2.46334 2.54154 -8 16 10.6
2.81036 2.84946 2.50733 2.55621 0 16 10.6
2.87879 2.63441 2.52199 2.51711 8 16 10.6
2.64907 2.47801 2.48778 2.47312 16 16 10.6(前4列是以伏特为单位的传感器输入,最后3列是以mm为单位的位置)
我第一次尝试使用神经工作室来创建一个像这样的多层感知器网络:

但是当我开始训练时,总网络错误会非常,非常,非常缓慢地下降。
我希望在神经元网络方面有经验的人能给我一个网络类型和拓扑结构选择的建议。
另外,和:这里有一些测量图:
左边的-Voltage,接近感应器的电压:

-Voltage (左),靠近传感器(以伏特计),它依赖于所有被测点(左)与固定点(X=-8mm,Y=0mm,Z=1mm)之间的距离,而仅适用于y=0mm处XZ平面上的点:

发布于 2014-03-02 22:19:24
MLP应该可以。让它尽可能简单(但不要简单)。首先尝试一个隐藏层,尽可能少的神经元,例如从4-5-3开始(单个隐藏层有5个神经元)。训练和验证网络,并且只增加更多的层或神经元,只要它们提供价值。
请记住将您的培训集分为培训集和验证集,否则您将面临数据过度拟合的风险,特别是如果您选择了一个复杂的网络。只要在验证中获得较低的错误,就可以增加复杂性。如果您开始在培训集上看到较低的错误,但是在未见数据上没有差异/更高的错误,那么您就太适合了,应该回到一个更简单的网络。
还可以考虑标准化您的数据,因为它有助于培训,例如,创建一个坐标系统和电压参考系统,其中输入和输出都被缩放,以帮助培训算法收敛。这里有一篇关于规范化和编码的好文章。
发布于 2014-03-02 22:19:46
我通常不喜欢人们回答诸如“如何使用X来解决Z”这样的问题,比如“当你可以使用Y时为什么使用X”,所以我提前为这样做道歉。
在你的情况下,我只需要从4组3组的4个传感器的值中三角测量磁铁的位置,而不需要训练神经网络。
如果你的传感器贴上了这样的标签:
A o ---------------o B
|\ / |
| \ / |
| \ / |
| \ / |
| / \ |
| / \ |
| / \ |
|/ \ |
D o ---------------o C然后你有以下4组(A,B,C) (A,D,C) (D,A,B)和(B,C,D)。找出磁体的X,Y,Z坐标可归结为求解棱镜这是一个几何问题。
也就是说,如果你想用神经网络来完成这个任务,你就必须尝试不同的配置,直到你对结果感到满意为止。
其思想是利用训练集对网络进行训练,利用交叉验证集来探讨神经网络地形、学习系数等各种参数变化的影响。
https://stackoverflow.com/questions/22133916
复制相似问题