作者: Danny Markov
近几年,机器学习库发展的得越来越快,也变得越来越易用,而且并没有显示出放缓的迹象。 虽然传统上 Python 一直是机器学习的首选语言,但现在神经网络可以运行在任何语言中,包括 JavaScript
网络生态系统近年来已经取得了很大的进步,尽管 JavaScript 和 Node.js 的性能仍然不如 Python 和 Java,但它们现在已经足够强大,可以处理许多机器学习问题。 Web 语言还具有“超级可访问性”的优点——运行一个 JavaScript ML 项目所需要的只是 Web 浏览器。
大多数 JavaScript 机器学习库都是相当新的,并且仍在开发中,但是它们确实存在等待你的尝试。 在这篇文章中,我们将对其中的一些库进行初探,并展示一些很酷的人工智能网络应用程序的例子,来帮助你开始你的神经网络学习之路。
1. Brain
Brain
是一个可以让你轻松地搭建一个神经网络,并根据输入 / 输出数据训练这个网络。 由于训练占用了大量资源,所以最好在 Node.js 环境中运行库,尽管 CDN 浏览器版本也可以直接加载到网页上。 在他们的网站上有一个小demo ,可以训练识别颜色的对比度。
2. Deep playground
教育网络应用程序,可以让你体验神经网络,并探索其中不同的组件。 它的 UI非常棒,允许您控制输入数据、神经元数量、要使用的算法,以及各种其他会对结果产生影响的参数。 这款应用程序背后还有很多值得我们学习的地方——它的代码是开源的,并且使用了一个自定义的机器学习库,这个库是用TypeScript
编写的,并且有完善的文档。
3. FlappyLearning
是一个 JavaScript 项目,在大约800行的无压缩代码中创建了一个机器学习库,并在一个有趣的演示中实现它,学会像一个演奏家一样玩 Flappy Bird 。 这个库使用的人工智能技术被称为Neuroevolution ,它使用的算法灵感来源于自然界中神经系统,从每次迭代的成功或者失败中动态地学习经验。 这个演示程序非常容易运行——只需在浏览器中打开index.html
即可。
Synaptic
这可能是本文列举的项目中最活跃的一个,Synaptic
是一个Node.js
和浏览器库,它与框架无关,允许开发者构建他们想要的任何类型的神经网络。 它有少许的内置的框架,能够进行快速测试,以及比较不同的机器学习算法。 它还有精心编写的关于神经网络的介绍,一些练习演示,以及还有许多非常精彩的教程来揭示机器学习是如何工作的。
Land Lines
Land Lines
是一个有趣的 Chrome Web
网络实验,用户进行涂鸦后,根据地球的卫星图像找出和涂鸦最相似的卫星图像区域。 这个应用程序不需要服务器调用:它完全在浏览器中工作,而且由于机器学习的巧妙应用,WebGL 甚至在移动设备上也有很好的性能。 你可以在 GitHub 上查看源代码,或者在这里阅读完整的案例。
ConvNetJS
ConvNetJS
是 JavaScript 中最先进的深度学习库之一,尽管它不再有活跃的维护。 最初在斯坦福大学开发的时候,ConvNetJS 在 GitHub 上相当流行,产生了许多社区驱动的特性和教程。 它可以直接在浏览器中工作,支持多种机器学习技术,而且层次较低,适合在神经网络方面有较大经验的人。
Thing Translator
Thing Translator
是一个网络实验,它允许你的手机识别现实生活中的物体,并用不同的语言给它们命名。 这款应用完全基于网络技术,并且使用了谷歌的两个机器学习接口,Cloud Vision ——进行图像识别; Translate API ——自然语言翻译。
Neurojs
Neurojs
是基于强化学习的AI系统构建框架。 遗憾的是,这个开源项目没有合适的文档,但是其中一个关于自动驾驶汽车实验的demo ,对构成神经网络的不同组成有很好的描述。 这个库是纯 JavaScript 的,并且使用了像 webpack 和babel这样的现代工具。
Machine_learning
这是另一个只用 JavaScript 来建立和训练神经网络的库。 它在 Node.js 和客户端都非常容易安装,并且有一个非常干净的 API,适合任何水平的开发人员使用。 该库提供了许多流行算法的示例 ,帮助您理解机器学习原理的核心。
DeepForge
Deepforge
是一个对用户友好的深度学习开发环境。 它允许您使用简单的图形界面设计神经网络,支持在远程机器上的训练模型,并具有内置的版本控制。 该项目运行在浏览器中,基于 Node.js
和MongoDB
,安装过程对于大多数 web 开发者来说非常熟悉。
Bonus: Machine Learning in Javascript
布拉克 · 坎伯(Burak Kanber)的一系列精彩的博客文章,讲述了机器学习的一些基本原理。 这些教程写得很好,很清晰,并且专门针对 JavaScript 开发者。 如果你想更深入地了解机器学习,这是一个很好的资源。
结论
虽然 JavaScript 的机器学习生态系统还没有完全成熟,但是我们推荐使用这个列表中的资源,让你在机器学习中迈出第一步,感受一下核心技术。 正如文章中的实验所显示的那样,只用浏览器和一些熟悉的 JavaScript 代码就可以创建大量有趣的东西。