我正在做一个神经网络项目作为我的最后一年本科项目。 该项目的想法:一个非常简单的机器人,带有2个电机,两个红外和碰撞传感器将使用计算机中的神经网络遍历环境。 主要要求是用适当的GUI观察神经网络的学习过程和演化过程。 (主要目的是观察神经网络,其变化不是驱动机器人)。机器人将在项目的早期阶段使用串行通信与计算机通信,然后使用WLAN ..
我的问题是哪种语言可用于实现计算机(神经网络)中的组件。必须考虑的事情是: 易于实现神经网络, 性能(虽然机器人任务看起来很简单,但观察神经网络的进化可能涉及到一些数学也会改变GUI), 易于连接硬件(串行和WLAN)
到目前为止,我已经考虑过JAVA和C#..我也请求您的意见......请在选择语言时提供有关项目和我考虑方面的反馈意见。(换句话说......我还应该怎么做?在做出决定之前先看看)
谢谢。
答案 0 :(得分:15)
(主要目的是观察 神经网络,它的变化不是 驾驶机器人)。
神经网络是一种学习者类型,其形式不易被人类理解(如果有的话)。可视化网络及其权重并不是真正有趣或有益。你会更好地在训练期间的各个点保存神经网络的状态 - 开始,中间和结束,比如说 - 然后用三者来展示机器人的行为。希望表明,随着培训的进展,绩效得到改善(无论您选择哪种客观指标)。您可能希望在N个时间间隔后显示一些显示机器人“性能”等级的图表 - 最终您应该达到渐近线,或者甚至开始看到性能跟踪,因为过度训练会成为一种负担。 (至少,如果我在学术环境中审查你的项目,那就是我想看到的。)
我的问题是哪个是最好的 可用于实现的语言 计算机中的组件(神经网络 网络
人工神经网络可以用任何语言编写。使用您最熟悉的语言,或者至少使用与您当前设置“兼容”的语言。 (例如,如果您已经有一个机器人使用C#通过串行连接与Windows机器通信,那么为什么不使用现有的设置作为您项目的基础?您已经完成了一半!)。如果是Java或C#,那就去吧。你没理由需要学习一门新语言。事实上,我建议不为您的项目学习一门新语言。你会更喜欢花时间研究你有趣的问题,而不是试图找出一些新语言的尘埃落定的角落。
答案 1 :(得分:2)
我同意Shaggy的观点,即足以驱动机器人的网络复杂的视觉表现可能不会是一个有趣的景象。
您是否看过类似的现有项目?一些快速的谷歌搜索显示The Zero Dimension - 尝试在3D中可视化ANN学习的某些方面。这是他们的video demo。 可能还有更多这样的东西 - 他们可能会给你一些关于你做什么和不想让我们想知道的方面的见解。
这是关于ANN结构可视化的article(再一次,我偶然发现的第一个)。如您所见,可视化效果不是很有见地。
说到语言 - 只需选择最适合自己的语言。或者选择一个您希望改善体验的人 - 如果您在这个项目中有学习的态度和时间 但要注意的一件事是:ANN学习是一项计算密集型任务,在C#或Java等“高级”语言中实现合理的性能可能比在C ++等“低级”语言中更难实现。
我还建议你考虑使用现有的库来使用NN。几年前我使用过STATISTICA神经网络软件包(花了一些钱),我相信还有一些开源库。 正确有效地实现良好的ANN学习算法很难,因此您可能希望采用现有的实现并专注于GUI /可视化部分。
答案 2 :(得分:1)
我建议使用C#和免费的神经网络神经网络库。 我认为它会为您提供所需的一切
答案 3 :(得分:1)
考虑Matlab / Labview。这种组合使您可以非常轻松地查看程序的运行情况并绘制内部状态。