【译】10个 JavaScript 中的机器学习实例

原文:10个 JavaScript 中的机器学习实例
作者: Danny Markov

image

近几年,机器学习库发展的得越来越快,也变得越来越易用,而且并没有显示出放缓的迹象。 虽然传统上 Python 一直是机器学习的首选语言,但现在神经网络可以运行在任何语言中,包括 JavaScript

网络生态系统近年来已经取得了很大的进步,尽管 JavaScript 和 Node.js 的性能仍然不如 Python 和 Java,但它们现在已经足够强大,可以处理许多机器学习问题。 Web 语言还具有“超级可访问性”的优点——运行一个 JavaScript ML 项目所需要的只是 Web 浏览器。

大多数 JavaScript 机器学习库都是相当新的,并且仍在开发中,但是它们确实存在等待你的尝试。 在这篇文章中,我们将对其中的一些库进行初探,并展示一些很酷的人工智能网络应用程序的例子,来帮助你开始你的神经网络学习之路。

1. Brain

Brain是一个可以让你轻松地搭建一个神经网络,并根据输入 / 输出数据训练这个网络。 由于训练占用了大量资源,所以最好在 Node.js 环境中运行库,尽管 CDN 浏览器版本也可以直接加载到网页上。 在他们的网站上有一个小demo ,可以训练识别颜色的对比度。

image

2. Deep playground

教育网络应用程序,可以让你体验神经网络,并探索其中不同的组件。 它的 UI非常棒,允许您控制输入数据、神经元数量、要使用的算法,以及各种其他会对结果产生影响的参数。 这款应用程序背后还有很多值得我们学习的地方——它的代码是开源的,并且使用了一个自定义的机器学习库,这个库是用TypeScript编写的,并且有完善的文档。

3. FlappyLearning

是一个 JavaScript 项目,在大约800行的无压缩代码中创建了一个机器学习库,并在一个有趣的演示中实现它,学会像一个演奏家一样玩 Flappy Bird 。 这个库使用的人工智能技术被称为Neuroevolution ,它使用的算法灵感来源于自然界中神经系统,从每次迭代的成功或者失败中动态地学习经验。 这个演示程序非常容易运行——只需在浏览器中打开index.html即可。

image.png

Synaptic

这可能是本文列举的项目中最活跃的一个,Synaptic 是一个Node.js和浏览器库,它与框架无关,允许开发者构建他们想要的任何类型的神经网络。 它有少许的内置的框架,能够进行快速测试,以及比较不同的机器学习算法。 它还有精心编写的关于神经网络的介绍,一些练习演示,以及还有许多非常精彩的教程来揭示机器学习是如何工作的。

image.png

Land Lines

Land Lines是一个有趣的 Chrome Web网络实验,用户进行涂鸦后,根据地球的卫星图像找出和涂鸦最相似的卫星图像区域。 这个应用程序不需要服务器调用:它完全在浏览器中工作,而且由于机器学习的巧妙应用,WebGL 甚至在移动设备上也有很好的性能。 你可以在 GitHub 上查看源代码,或者在这里阅读完整的案例。

image.png

ConvNetJS

ConvNetJS是 JavaScript 中最先进的深度学习库之一,尽管它不再有活跃的维护。 最初在斯坦福大学开发的时候,ConvNetJS 在 GitHub 上相当流行,产生了许多社区驱动的特性和教程。 它可以直接在浏览器中工作,支持多种机器学习技术,而且层次较低,适合在神经网络方面有较大经验的人。

Thing Translator

Thing Translator是一个网络实验,它允许你的手机识别现实生活中的物体,并用不同的语言给它们命名。 这款应用完全基于网络技术,并且使用了谷歌的两个机器学习接口,Cloud Vision ——进行图像识别; Translate API ——自然语言翻译。

Neurojs

Neurojs是基于强化学习的AI系统构建框架。 遗憾的是,这个开源项目没有合适的文档,但是其中一个关于自动驾驶汽车实验的demo ,对构成神经网络的不同组成有很好的描述。 这个库是纯 JavaScript 的,并且使用了像 webpackbabel这样的现代工具。

Machine_learning

这是另一个只用 JavaScript 来建立和训练神经网络的库。 它在 Node.js 和客户端都非常容易安装,并且有一个非常干净的 API,适合任何水平的开发人员使用。 该库提供了许多流行算法的示例 ,帮助您理解机器学习原理的核心。

DeepForge

Deepforge 是一个对用户友好的深度学习开发环境。 它允许您使用简单的图形界面设计神经网络,支持在远程机器上的训练模型,并具有内置的版本控制。 该项目运行在浏览器中,基于 Node.jsMongoDB,安装过程对于大多数 web 开发者来说非常熟悉。

Bonus: Machine Learning in Javascript

布拉克 · 坎伯(Burak Kanber)的一系列精彩的博客文章,讲述了机器学习的一些基本原理。 这些教程写得很好,很清晰,并且专门针对 JavaScript 开发者。 如果你想更深入地了解机器学习,这是一个很好的资源。

结论

虽然 JavaScript 的机器学习生态系统还没有完全成熟,但是我们推荐使用这个列表中的资源,让你在机器学习中迈出第一步,感受一下核心技术。 正如文章中的实验所显示的那样,只用浏览器和一些熟悉的 JavaScript 代码就可以创建大量有趣的东西。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容