原文地址: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

 
.png

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代码来创建许多有趣的东西。

推荐阅读

Machine Learning and AI
Tensorflow

版权声明

本文为作者原创,版权归作者雪飞鸿所有。 转载必须保留文章的完整性,且在页面明显位置处标明原文链接

如有问题, 请发送邮件和作者联系。

【译】10个机器学习的JavaScript示例的更多相关文章

  1. JavaScript 示例

    JavaScript 示例 <html lang="en"> <head> <meta charset="UTF-8"> & ...

  2. 10个最好的 JavaScript 动画库和开发框架

    虽然 CSS3 动画功能能够让我们以简单轻松的方式实现动画效果,但是浏览器兼容性问题让人头疼.不过不用担心,我们还有另外的武器——JavaScript,它同样可以帮助你实现各种各样的动画效果,而且借助 ...

  3. 10个强大的Javascript表单验证插件推荐

    创建一个JavaScript表单验证插件,可以说是一个繁琐的过程,涉及到初期设计.开发与测试等等环节.实际上一个优秀的程序员不仅是技术高手,也应该是善假于外物的.本文介绍了10个不错的JavaScri ...

  4. 10 个优秀的JavaScript开发框架

    阅读目录 TouchStone.js Meteor Knockout Enyo.js Reactive-coffee ExtJS Aurajs Cappuccino canjs Feathersjs ...

  5. DOM&JavaScript示例&练习

    以下示例均为html文件,保存至本地就可直接用浏览器打开以查看效果\(^o^)/~ 练习一:设置新闻字体 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

  6. 10 种机器学习算法的要点(附 Python 和 R 代码)

    本文由 伯乐在线 - Agatha 翻译,唐尤华 校稿.未经许可,禁止转载!英文出处:SUNIL RAY.欢迎加入翻译组. 前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关 ...

  7. Javascript -- 示例:多选下拉选框

    1. 示例:多选下拉选框 <html> <head> <meta http-equiv="Content-Type" content="te ...

  8. 10 种机器学习算法的要点(附 Python)(转载)

    一.前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注,但是这家公司真正的未来在于机器学习,一种让计算机更聪明.更个性化的技术 也许我们生活在人类历史上最关键的时期:从使用 ...

  9. Spark 中的机器学习库及示例

    MLlib 是 Spark 的机器学习库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模.MLlib 由一些通用的学习算法和工具组成,包括分类.回归.聚类.协同过滤.降维等,同时还包括底层的优化 ...

随机推荐

  1. Python连接SQLite数据库

    SQLite作为一款轻型数据库,管理工具有很多,比如SQLite Expert Professional,很适合用来存储Python网站,爬虫的相关数据,下面列出基本的增删查改操作 读取操作: con ...

  2. JS的简单用法

    JS的简单用法 参考:http://www.w3school.com.cn/js/js_switch.asp JavaScript 是网络的脚本语言 JavaScript 是可插入 HTML 页面的编 ...

  3. LeetCode 169. Majority Element (众数)

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  4. Kotlin——最详细的接口使用、介绍

    在Kotlin中,接口(Interface)的使用和Java中的使用方式是有很大的区别.不管是接口中的属性定义,方法等.但是定义方式还是相同的. 目录 一.接口的声明 1.接口的声明 关键字:inte ...

  5. mongo+mongoose+express

    直接上指令: //*代表自定义名字 //使用数据库 use * //检查当前数据库 db //查询数据库列表 show dbs //查询当前数据库集合 show collections //插入文档自 ...

  6. 版本控制之一:SVN服务器搭建与安装(转)

    Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上了,下载地址: http:// ...

  7. 扩展 lua require 的行为

    扩展 lua require 的行为 来源 https://blog.codingnow.com/2015/10/lua_require_env.html 今天同事提了个需求,他希望可以给部分 lua ...

  8. A strange lift

    Problem Description There is a strange lift.The lift can stop can at every floor as you want, and th ...

  9. C#语言支持的特性,.NET却不支持,那么C#不被.NET支持的部分又是如何在.NET上运行的呢?

    阅读<C#高级编程>系列丛书中,介绍C#与.NET的关系,提到C#是语言,.NET是平台(C#不是.NET的一部分),说".NET支持的一些特性,C#并不支持",这个可 ...

  10. 颜色框架Hue相关使用方法

    Hue地址 cocoapods安装Hue pod "Hue" 导入框架 import Hue 将十六进制数字变成对应的颜色值 let color = UIColor.init(he ...