从Brain.js到Mind,一文收录11个移动端Javascript机器学习库

文章选自blog.bitsrc.io,做者:Jonathan Saring,机器之心编译。
本文做者在构建 Bit 的过程当中探索和尝试了把 Javascript 和机器学习结合起来使用的可能性,并由此发现了一些简洁优雅的库,能够把 Javascript、机器学习、DNN 甚至 NLP 整合起来。
「等等,什么??这是一个可怕的想法!」

当我第一次和咱们的 NLP 主要研究人员谈起这个概念时,她的原话是这样的。可能她是对的,但它也是一个很是有趣的概念,最近在 Javascript 领域获得了愈来愈多的关注。javascript

在过去的一年中,咱们的团队正在构建 Bit(https://bitsrc.io/),它使得用组件构建软件变得更加简单。做为工做的一部分,咱们开发了 ML 和 NLP 算法,来更好地理解代码是如何编写、组织和使用的。java

虽然大多数工做都是用 Python 这样的语言完成的,但 Bit 位于 Javascript 生态系统中,它的前、后端社区都是如此。node

这个有趣的交集让咱们探索和尝试了一块儿使用 Javascript 和机器学习的奇怪可能性。经过咱们的研究发现,这里有一些简洁的库,能够将 Javascript、机器学习、DNN 甚至 NLP 结合在一块儿。git


1. Brain.js

Brain.js 是一个用于神经网络的 Javascript 库,用于代替 (如今已经弃用的)「brain」库,它能够和 Node.js 一块儿使用,或在 browser(注意计算)中使用,并为不一样任务提供不一样类型的网络。如下是训练网络来识别色彩对比的例子。

连接:github.com/BrainJS/bra…github

训练 Brain.js 识别色彩对比

2. Synaptic

Synaptic 是一个用于 node.js 和浏览器的 Javascript 神经网络库,它使你可以训练一阶甚至是二阶神经网络结构。该项目包括一些内置的体系结构,如多层感知机、多层长短时间记忆网络、液体状态机和可以训练真实网络的训练器。

连接:github.com/cazala/syna…web

Synaptic 图像过滤感知器

3. Neataptic

这个库为浏览器和 Node.js 提供快速的神经元进化和反向传播,而且有一些内置的网络,包括感知器、LSTM、GRU、Nark 等等。这里是一个简单训练的新手教程:https://wagenaartje.github.io/neataptic/docs/tutorials/training/。

连接:github.com/wagenaartje…算法

目标寻求 AI 演示

4. Conventjs

这个由斯坦福大学博士开发的流行库,在过去的 4 年里一直没有维护,但它是列表上最有趣的项目之一。它是神经网络的 Javascript 实现,支持通用模块、分类、回归、一个试验性的强化学习模块,甚至可以训练处理图像的卷积网络。

连接:github.com/karpathy/co…chrome

用 2 层神经网络进行玩具 2D 分类的 Conventjs 演示

5. Webdnn

这个日本制造的库用于在浏览器上运行深度神经网络预训练模型,而且运行速度很快。因为在浏览器上运行 DNN 会消耗大量计算资源,所以该框架优化了 DNN 模型来压缩模型数据,并经过 JavaScript APIs(如 WebAssembly 和 WebGPU)加速执行。

连接:github.com/mil-tokyo/w…apache


6. Deeplearnjs

这个流行的库容许你在浏览器中训练神经网络,或者在推理模式下运行预训练模型,甚至声称它能够用做网页版 NumPy。经过易于读取的 API,该库可用于有用应用程序的真实性,并被积极地维护。

连接:github.com/tensorflow/…编程


7. Tensorflow Deep Playground

Deep playground 是神经网络的交互式可视化,使用 d3.js 在 TypeScript 中编写。虽然这个项目包含了一个很是基本的 tensorflow playground,但它能够被用于不一样的目的,或用做使人印象深入的不一样用途的教育功能。

连接:github.com/tensorflow/…

Tensorflow playground

8. Compromise

这个很是流行的库提供了「在 JavaScript 中适度的天然语言处理」。它很是基本和直接,甚至能够编译成一个小文件。出于某种缘由,它的适度的「足够好」的方法使其成为几乎全部须要基本 NLP 的应用程序的首选。

连接:github.com/spencermoun…

Compromise 提醒咱们英语真的很简单

9. Neuro.js

这个项目很棒,它为浏览器提供一个深度学习和强化学习的 Javascript 库框架。它在扩展强化学习支持下,实现一个基于全栈神经网络的机器学习框架,有些人认为这个项目是 convnet.js 的继承者。

连接:github.com/janhuenerma…

10. mljs

由 mljs 组织开发的一组库,为 Javascript 提供机器学习工具,它包括监督和非监督学习、人工神经网络、回归算法和用于统计、数学等的支持库。这里有一个简短的指导: hackernoon.com/machine-lea…

连接:github.com/mljs


11. Mind

一个用于 Node.js 和浏览器的灵活的神经网络库,主要学习作预测,使用矩阵来处理训练数据并启用可配置的网络拓扑。你还能够即插即用已学习的「Mind」,这对你的应用颇有用。

连接:github.com/stevenmille…


其余重要的库:


Natural

Node.js 的一个积极维护的库,它提供标记法、词干提取(减小没必要要的词根)、分类、语音学、tf-idf、WordNet、字符串类似度等。


Incubator-mxnet

Apache MXNet 是一个深度学习框架,它容许你将符号和命令式编程与图形优化层在线结合起来以提升性能。MXnet.js 为浏览器带来了一个深度学习推理 API。


Keras JS

该库在浏览器中运行 Keras 模型,使用 WebGL 并支持 GPU。因为 Keras 使用了许多框架做为后端,因此模型也能够在 TensorFlow、CNTK 和其余框架中进行训练。


Deepforge

一个深度学习的开发环境,它使你可以快速设计神经网络结构和机器学习管道,并使用内置版本控制再现实验。值得一试。


Land Lines

与其说它是一个库,不如说是一个基于谷歌 Chrome 实验的很是酷的演示/网页游戏。尽管我不肯定该如何处理,但它确定会为你带来一天中最愉快的 15 分钟。

Google 提供的 Land lines

下一步是什么?

显然,Javascript 远没有成为机器学习选择的语言。然而,诸如性能、矩阵操做和丰富有用的库等常见问题正在慢慢消失,缩小了常见应用和有用的机器学习之间的差距。

相关文章
相关标签/搜索