原文地址:
10 Machine Learning Examples in JavaScript
在过去的每一年,用于机器学习(Machine Learning)的库在变得越来越快和易用。一直以来Python都是机器学习的首选语言,但现在几乎可将所有语言用于神经网络(neural networks),这里当然也包括JavaScript!
近几年,Web生态系统取得了很大进步,虽然JavaScript和Node.js的性能比Python和Java略差,但它们已足够处理许多机器学习问题。Web语言具有被广泛且易于使用的优势——你只需一个Web浏览器就可以运行一个JavaScript语言编写的机器学习项目。
虽然许多JavaScript语言编写的机器学习库是刚刚诞生并且还在持续开发中,但还是值得去尝试使用它们。这篇文章会介绍几个JavaScript语言编写的机器学习库以及一些很酷的AI Web应用示例,它们可以很好的帮助你开始AI之旅。
1.
Brain
使用Brain 可以轻松的创建神经网络,并且可通过输入/输出数据对它进行训练。因为训练神经网络会消耗比较多的资源,所以推荐在Node.js环境中而不是直接使用浏览器来训练神经网络。在官网上有个可以识别颜色(recognize color contrast)的小
demo
(PS:试了下,这个demo现在是404页面)。
2.
Deep playground
这是一个寓教于乐的Web应用,可以让你以游戏的方式来探索神经网络的不同部分。它有一个友好的界面用于让你控制数据的输入,算法所用的神经元数量以及其它一些会影响输出结果的权值因素。这是一个开源项目,它是使用TypeScript编写的
机器学习库
并且有完善的文档,从中我们可以许多东西。
3.
FlappyLearning
FlappyLearning 项目大约800行代码,这个项目包含一个机器学习库并且实现了一个很有趣的
demo
——学习玩
Flappy Bird
游戏。它使用了一种叫做
Neuroevolution
的AI技术,使用了受自然神经系统激发而产生的算法,可以从每次成功或失败的迭代中进行动态进行学习。
4.
Synaptic
Synaptic是一个架构无关(architecture-agnostic)且得到积极维护的Node.js和浏览器库,它允许开发者构建任何类型的神经网络。它有几个内置的架构,使得可以快速测试和比较不同机器学习算法间的异同。它还提供了介绍神经网络的文档及几个实用demo和其它可以帮助我们学习机器学习的教程。
5.
Land Lines
Land Lines 是一个有趣的用于搜寻地球卫星图片的Chrome网络实验(web experiment)。这个应用无需服务调用:它完全运行在浏览器环境中,得益于机器学习的使用,WebGL也可以在移动设备中有很好的表现。你可以在
GitHub
上浏览源码或者在
这里
阅读完整的示例。
6.
ConvNetJS
尽管已不再被积极的维护,但ConvNetJS依然是JavaScriptp中最为先进的深度学习库之一。这个库最初由斯坦福大学开发,然后ConvNetJS开始在GitHub上流行,社区为它添加了许多特性和教程。ConvNetJS直接运行在浏览器环境中,支持多种学习技术,并且它接近底层原理使得它更适有较多神经网络方面经验的人。
7.
Thing Translator
Thing Translator是一个网络实验,它可以让你的手机识别真是的物体并用不同的语言标注物体的名称。这个应用完全建立在web技术之上并且利用了Google提供的两种机器学习APIs——用于图像识别的
Cloud Vision
和用于自然语言翻译的
Translate API
。
8.
Neurojs
Nerojs用于建立基于增强学习(reinforcement learning)的AI系统框架。不幸的是这个开源项目除了一个自动驾驶实验的demo外并没有完善的文档,这个demo对组成神经网络的不同部分有着很好的描述。这个库借助如现代化工具如:
webpack
和
babel
,使用纯JavaScript进行开发。
9.
Machine_learning
这也是一个允许我们仅使用JavaScript创建并训练神经网络的库。它很容易就可以安装到Node.js和客户端环境,并且拥有对开发人员十分友好的的API。这个库提供了许多
示例
,可以帮助你理解机器学习的核心原理。
10.
DeepForge
DeepForge是一个用于深度学习且易于使用的开发环境。它允许你使用简单的图形接口创建神经网络,支持在远程机器上训练模型,并且内置版本控制系统。这个项目基于Node.js和MongoDB且运行在浏览器环境中。
彩蛋:
Machine Learning in Javascript
Burak Kanber 发布的一些列优秀博文中讲述了机器学习的基本原理。这些教程写的很好且专门面向JavaScript开发者。如果你想深入理解机器学习,这些博文是很好的学习资源。
结语
尽管JavaScript的机器学习生态尚未成熟,但仍然建议使用上述资源来开启你的机器学习之路并对一些核心技术建立感性认识。正如文章中展示的一些实验,你也可以仅使用浏览器和少量JavaScript代码来创建许多有趣的东西。
推荐阅读