10个基于JavaScript的机器学习案例(译)

扫描二维码

在过去的几年里,机器学习的开发库增长很快,可用性也变得越来越可靠,而且没有减慢的趋势。一直以来Python作为机器学习的主力语言,现在神经网络可以应用任何语言了,包括JavaScript!

web生态系统虽然最近一直在取得进步,但是在机器学习领域JavaScropt和Node.js相对Python和Java来说还是稍弱,但是现在它们已经有足够的能力来处理机器学习方法的问题了。Web语言也有一个优势,就是你所有的JavaScript机器学习工程只需要浏览器支持。

现在大部分JavaScript机器学习的库都比较新而且有的还一直在开发中,但是已经实现并且可以尝试使用了。这篇文章我们将一起来了解这些库,一些比较酷的AI的web应用你也可以上手试试。

1. Brain

Brain是一个容易创建神经网络的库,你可以基于它的输入/输出数据来训练。因为训练需要大量的数据资源,虽然有CDN的链接可以通过网络直接加载到网页上。但还是推荐使用Node.js的环境来运行这个库。这里是一个例子,在它们的网站上,被训练来识别颜色的对比。

2. Deep playground

带有教育性质的web应用让你参与神经网络的世界,并探索它们不同的组件。它有一个不错的UI, 让你来控制数据的输入,神经元的数量,用什么样的算法,还有其它大量的可调参数来影响最终的结果。还有大量的可以从应用中的场景中学习的东西 — 代码是开源的,而且用了一个可定义的机器学习库, 这个库是基于TypeScript并且有丰富的文档可查阅。

3.FlappyLearning

FlappyLearning是一个JavaScript项目,大概仅仅800行未合并压缩的代码,创建了一个机器学习的库来实现了一个很好玩的例子来玩Flappy Bird。这个库里用的人工智能技术叫Neuroevolution应用了比较自然的一些神经系统算法,根据每次迭代的成功和失败来动态的学习。这个例子非常容易运行— 用浏览器打开index.html文件就可以了。

4.Synaptic

可能是这个列表里最活跃的项目了, Synaptic是一个Node.js和浏览器可用的库,它是一个不可知结构,允许开发者构建任何类型的神经网络。它有一些构建好的结构,来让它可以更快速的测试和对比不同的机器学习算法。同样有比较完善的介绍和文档,一些练习的例子,还有很多非常棒的指导来理解机器学习是怎么工作的。

5.Land Lines

Land Lines是一个非常有趣的Chrome Web尝试,来找到地球的卫星图片。类似让用户来涂鸦。这个应用没有任何的服务端请求:它整个都运行在浏览器,要多亏机器学习的聪明使用,和WebGL的非常棒的性能表现,甚至在移动设备上。你可以在这里找到源码GitHub或阅读整个案例

6.ConvNetJS

虽然不再积极的被维护了,ConvNetJS是最深入的JavaScript学习库。最初在斯坦福大学里被开发,ConvNetJS在GitHub上变得非常流行,许多社区开始驱动新的特性和指导手册。它直接在浏览器运行,支持多个学习技术,并且它非常的初级,更适合人们更多的体验神经网络。

7.Thing Translator

Thing Translator是一个网页实验,让你的手机用不同的语言来识别现实对象。这个应用完全应用web技术并且整合了Google的两个机器学习的API - Cloud Vision来做图片识别,Translate API来做 神经语言翻译。

8.Neurojs

构建AI系统基于强化学习的框架。可惜的是,这个开源项目并没有合适的文档。但是其中的例子,一个汽车自动驾驶的实验,有对构造神经网络的不同部分的详细描述。这个库是纯JavaScript语言并且应用了webpack和babel。

9.Machine Learning

另外的一个可以只用JavaScript来构建并训练神经网络的库。非常容易的安装,需要Nodejs和客户端,对于开发人员非常容易上手的API调用。这个库提供了大量的示例来实现了当下流行的算法,帮助来理解核心的机器学习的原则。

10.DeepForge

DeepForge是一个用户友好的开发环境来使用深度学习。允许自己用一些图形接口来设计神经网络,支持远程机器的训练模型,并有版本控制。项目运行在浏览器,并基于Node.js和MongoDB,安装过程对于web开发人员非常熟悉。

福利:Machine Learning in Javascript

非常优秀的博客文章,由Burank Kanber撰写,主要是关于机器学习的基础原理。非常适合JavaScript开发人员的阅读和学习。如果你想深入了解机器学习,这是一个非常棒的资源,推荐给大家。

总结

虽然基于JavaScript的机器学习生态并没有充分的开发出来,我们推荐这些是你开始了解机器学习和核心技术的的非常好的资源。文中列出的试验性的项目,你可以仅使用浏览器或者一些JavaScript代码,就能探索出非常多好玩的东西。

英文