实现神经网络的最佳编程语言是什么?

Bla*_*sad 18 erlang dataflow oz neural-network

我不是在寻找神经网络库,因为我正在创建新的网络.为此我需要一个好的"数据流"语言.

当然,你可以用C,C++,Java和co做到这一点.但是从头开始处理多线程等将是一场噩梦.

在另一个极端,像Oz或Erlang这样的语言看起来更适应,但它们没有很多库,而且它们更难掌握(它们很容易使用它们,但创建完整的软件是否可以?).

你会建议什么?

ala*_*rik 15

我观看了一个关于使用Erlang进行神经网络的有趣会议演示.您可能想要查看它:

从电信网络到神经网络; Erlang,作为无意的神经网络编程语言

根据作者的推文,我也知道现在提出的系统将在任何一天开源.


use*_*720 10

Erlang非常适合NN.

  1. 神经元可以通过过程建模(没有问题,有数百万)
  2. 连接/突触可以由目标神经元的PID表示.作为OTP中标准init过程的一部分,很容易初始化这样的网络.通过消息传递可以实现通信.
  3. 也许在ETS/mnesia(构建数据存储区)中拥有全局地址空间以便对网络结构进行动态重新配置会更好.
  4. 接收块中的模式匹配可以确定神经元接收哪种信号并在运行中对其进行修改.
  5. 监控这样的网络非常容易.

还要考虑到Erlang NN会一直"活着".您可以随时查询神经元,图层,路由器等.在C/C++中,您只需读取数组/数据结构的当前状态.

关于性能,我们都知道C/C++比Erlang快几个数量级,但是NN主题很棘手.

如果网络在非常宽的地址空间中保持非常少的神经元,则在常规阵列中,一次又一次地迭代它可能是昂贵的(在C中).Erlang的等效情况可以通过对根/根(输入层)神经元的单一查询来解决,这会将查询直接传播到寻址良好的邻居.

  • C/C++和Erlang之间的性能差异非常依赖于测试.对于小型测试,例如增加数组中的字段,C/C++肯定比Erlang快得多,但对于大型的实际应用程序,差异将非常小,如果有的话.复杂性倾向于支持那些旨在处理它的系统,比如Erlang. (2认同)

小智 6

DXNN1和DXNN2是在教科书中构建和介绍的:通过Erlang的神经进化手册:http://www.amazon.com/Handbook-Neuroevolution-Through-Erlang-Gene/dp/1461444624/ref=zg_bs_760204_22

是开源的,可从以下网址获得:https://github.com/CorticalComputer