让我开始说我是神经网络,机器学习等的新手,到目前为止,我只做了一些非常简单的实验来学习,所以如果我问的是非常幼稚或冗长的问题,请也请耐心等待我。我最喜欢的编码语言是java,我正在与Weka一起玩。玩这个看起来像我的API这次,我非常清楚和完整,不仅要拥有一组理想的数据来训练和检查成功率,我不仅从软件开始,还从我为自己创建的现实世界问题开始。我创建的问题并希望通过神经网络解决,这是一个四脚蜘蛛状机器人,该机器人由具有一些ADC和伺服器帽的Raspberry PI控制。这种奇怪的机器人有4条腿,每条腿在3个零件中,每个零件都由伺服电机移动。我总共有4条腿* 3条腿零件= 12台伺服电机。在每个伺服电机上,我都装有一个3轴模拟加速度计(总共12个),可以从Raspberry PI中读取。我从这些加速度计中的每一个读取2条轴,以确定每个舵机的位置,即每条腿的每个腿段的位置。此外,“脚底”的4条腿各有一个按钮确定腿是否已到达地板并支撑蜘蛛网。蜘蛛构建博客在这里,针对那些感兴趣的人:https://thestrangespider.blogspot.com/该实验的目的是使蜘蛛能够在任何条件下保持平衡并水平放置。无论我将蜘蛛放在水平或倾斜的表面上,蜘蛛都应该能够用几句话将其身体水平调平。硬件平台已经准备就绪,我错过了一些细节,但让我们假设我可以使用PI4J API从Java Spring Boot应用程序读取所需的所有信号,以连接硬件(来自ADC的24个值(用于12个伺服器)和4个数字输入(是/否)。蜘蛛脚底)。目的是解决使用Weka内置的神经网络移动腿部伺服电机的问题,读取各种输入信号,直到系统到达成功条件(静态平衡,身体处于水平位置)。主要问题是如何以最佳方式使用所有数据来构建数据集,以及要使用的神经网络自适应校正反馈,直到蜘蛛达到其身体最终水平并处于静态平衡的成功状态。
要更深入地讨论这个话题,让我提供我的分析。
每条腿应执行以下步骤:
从随机位置(在腿部允许的角度范围内)开始,每次可以独立移动一个伺服器
每次移动后重新读取,所有腿段的位置,等待下一个静态条件
确定最后一步是否给整个系统带来了好处或不利。
如果由于最后一步而没有发生变化,请保持最新的变化/移动并继续
如果已达到最大角度,请下一步移动该角度的方向
现在检查系统成功与上一步是否接近,并确定下一个操作类型
对我来说,问题是一些悬而未决的问题,其中一个是如何从数据的角度来表示这个系统:
来自加速度计的数据全部来自同一腿的伺服器,它们是数据集群或机器人子系统的候选对象?
每个伺服器及其位置测量可以代替为主系统的子系统吗?
这些可以是多个问题,而不是真正的问题吗?
您将从神经网络的角度解决这个问题?
在研究了Weka分类和回归之后,我最终得出结论,该处理应该是回归问题。这也结束于一个太复杂的问题,该问题将需要使用多标签输出进行回归,而除了Weka之外,还需要在称为Meka的基础上再建一个框架。