Neural network 原型神经网络

Neural network 原型神经网络,neural-network,prototyping,Neural Network,Prototyping,根据您的经验,哪种方法是实现人工神经网络原型的最有效方法?关于Matlab(免费,但我没有使用它)或Matlab(不是免费的)有很多炒作,另一种可能的选择是使用C++/Java/C#之类的语言。这个问题主要针对那些试图测试某些神经网络架构或学习算法的人 如果您选择使用不同于上述三种语言的编程语言,您能告诉我它们的名称以及有关您选择的一些解释吗(例外:这是我所知道的唯一/最常用的语言) 谢谢。我在某种程度上使用了Matlab的神经网络工具箱,并将其作为原型工具使用,因为它的图形界面允许您设置网络,

根据您的经验,哪种方法是实现人工神经网络原型的最有效方法?关于Matlab(免费,但我没有使用它)或Matlab(不是免费的)有很多炒作,另一种可能的选择是使用C++/Java/C#之类的语言。这个问题主要针对那些试图测试某些神经网络架构或学习算法的人

如果您选择使用不同于上述三种语言的编程语言,您能告诉我它们的名称以及有关您选择的一些解释吗(例外:这是我所知道的唯一/最常用的语言)


谢谢。

我在某种程度上使用了Matlab的神经网络工具箱,并将其作为原型工具使用,因为它的图形界面允许您设置网络,实验训练与测试输入数据的大小,以及训练后测试都内置。刚开始的时候感觉很好很自然

我还试验了Java(Java面向对象神经引擎)。 它设置得很好,当时我是一个业余爱好者,通过测试,各种网络的建立和运行仍然没有问题。 它是Java,因此如果您正在训练大型复杂系统,它可能没有您想要的性能,但是它的API非常容易接近


<>我也看到了C++中的一些工作。它有一系列用网络建立的类,这些网络适合解决一系列问题。它值得一看。

我尝试了使用更高抽象级别的语言(matlab、java)和更低抽象级别的语言(C)。使用工具箱和库并自己编写它们。总体反应如何?两者都不是完美的工具。请记住:

  • 原型可能还不够:通常需要在大样本上运行网络,或者在样本子集上运行几次(在进化神经网络的情况下)才能获得良好的结果。如果你必须运行一个网络一百万次,即使是一个小的性能提升也可能是一个巨大的帮助和时间节省(例如,C在matlab上)

  • 另一方面,如果您需要易于编码,您可能希望使用许多预打包库中的一个(javaNN等)

  • 你用的是哪种神经网络?连续时间递归神经网络(CTRNN)?背道具?你如何训练他们?你如何验证他们的结果?准确性重要吗?(即,您是否在小型设备上运行它们,如内存有限的机器人控制板,如Arduinos?)

如果你有时间,我建议你

  • 先用高级语言,甚至伪代码学习概念
  • 一旦你熟悉了所有的复杂情况,尤其是使用进化神经网络时,选择一种他们已经熟悉的语言
  • 然后,您可能想开始研究如何优化速度、内存占用等

  • 希望这能有所帮助。

    既然科学家经常使用神经网络,而程序员却很少使用,那么就选择一种针对科学家的编程语言,并为神经网络提供良好的库

    Python是一个合理的选择,因为它被科学家广泛使用。首先有两个发行版:

    这些Python发行版包含许多附加模块,这些模块不在标准Python库中,但对于科学家所做的编程类型非常有用。搜索Python包索引会得到一些神经网络包,如果您只是学习神经网络,这些包可能还可以

    然而,如果你正在认真研究神经网络,你会想要像快速神经网络库这样的东西。这与Python绑定一起提供,因此您可以使用Python进行编程,使用各种各样的Python模块进行绘图、可视化、数据操作等。但是,您的神经网络将使用来自FANN库的优化编译代码运行。两全其美

    换句话说,要运行实际的神经网络代码,需要C语言,而不是Java语言。由于C库不能很好地与Java集成,请选择一种能够与C库顺利集成的语言。Python做到了这一点,而且比Java更有效率,因为解释算法所需的代码行要少得多。有些人发现,与Java相比,生产力提高了10倍

    您提到R,可能是因为它有您需要使用的统计函数,或者您有可以编写R代码的人员。同样,选择Python还是R不是一个非此即彼的决定。两者都可以使用

    RPY库允许Python程序访问R库和代码。使用它,您可以用Python编写主程序,并将R作为提供库的工具,就像使用用C编写的FANN库一样

    还有另一个称为RSPython的模块,它可以双向工作,因此R程序可以访问用Python编写的库。如果您有一位专家R程序员帮助您,这将非常有用

    这还不是全部。您可以利用Python简化Java编程。如果您有一个Java神经网络引擎,您仍然可以使用Jython版本用Python编写大部分程序,Jython版本运行在Java虚拟机上,允许您在代码中使用任何Java库和类。您仍然可以使用fast FANN库,因为它们为Java程序提供绑定

    我推荐Python用于您的工作的主要原因是,很多科学家都在使用它,这就是为什么有两个面向科学的发行版可用。第二个原因是Python对于新手程序员来说非常容易入门,在探索神经网络时,您可能会从更简单的模拟开始,然后通过更多的数据操作和结果分析来进行更复杂的模拟。巨蟒会