【问题标题】:Neural networks in Haskell - adviceHaskell 中的神经网络 - 建议
【发布时间】:2019-08-26 16:08:06
【问题描述】:

任何人都可以向我推荐 Haskell 中神经网络的教程、书籍、博客或共享代码示例吗?我在命令式语言的神经网络方面有经验,但我想在 Haskell 中尝试一下。

【问题讨论】:

  • 建议关闭作为题外话。这无法明确回答,因此最好在论坛中进行,而不是在问答中。

标签: haskell neural-network


【解决方案1】:

Hackage 上有几个库:

  • HaskellNN 一个 Haskell 库,它使用 hmatrix(以及 GSL 和 libLBFGS C 库)来执行繁重的工作 (GPL)。声称速度很快。

  • instinct 一个声称速度很快 (BSD) 的纯 Haskell 库。

  • hnn 最小的 Haskell 神经网络库 (LGPL)。

  • bindings-fann 绑定到 FANN 库。

  • hfann 与 FANN 库的其他绑定。

【讨论】:

  • 应该注意,这些库都是针对 Artificial 神经网络 (ANNs) 的,这确实很可能是问题所要问的。应该编辑问题以添加“人工”一词,因为 ANN 与生物神经网络几乎没有关系(其模拟也是一个很大的研究领域)。
  • 截至撰写此评论时,上述库均不支持 LSTM ☹
  • 为了安全起见:不要使用dnngraph,至少在作者进行大量反思之前不要使用。我花了 ⅓ 个月的时间来尝试使用它,我可以肯定地说:作者犯了所有可能的设计错误,这些错误可能与无视特定环境或语言有关。
【解决方案2】:

您可能会发现这个sample application 很有用。它使用反向传播。我写了一篇讨论这个例子的文章,解释了函数范式的使用如何影响设计。文章应该会出现在下一期The Monad Reader

【讨论】:

【解决方案3】:

DataHaskell 社区在http://www.datahaskell.org/docs/community/current-environment.html#neural-networks 保留了最新的 Hackage 包列表

截至 2019-08-26,它推荐这些软件包:

  • neural(仅限 CPU,参见 issue 10
  • backprop-learn 使用 backprop 库(仅限 CPU?)
  • grenade(依赖类型!舒适的 API,但目前仅限 CPU,请参阅 issue 55 / issue 35 / issue 6
  • hasktorch(Haskell 绑定到 PyTorch 底层的 C 库,早期开发,但它应该可以让你在 GPU 上训练)
  • tensorflow(Haskell 绑定到 TF;很可能是您在生产中使用的,但令人生畏的 API;可以在 GPU 上运行)
  • (和 sibe(仅限 CPU)虽然在 ML 标题下,但实现了神经网络)

https://mmhaskell.com/blog/2017/8/14/starting-out-with-haskell-tensor-flow / https://mmhaskell.com/blog/2017/8/21/digging-in-deep-solving-a-real-problem-with-haskell-tensor-flow 等处有一系列来自 Haskell 的关于使用 TensorFlow 的博文。

如果你对 autograd/可微编程感兴趣,backprop-learn 作者展示了how to add dependent types to a neural network 以及如何做automatic differentiation (as in TF) from Haskell,这就是最终变成 backprop 库的东西。另请参阅 ad 库 (quick demo here)。

【讨论】:

    猜你喜欢
    • 2014-04-09
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 2017-02-19
    相关资源
    最近更新 更多