谷歌开源Deeplearn.js,发挥浏览器端机器学习的威力
作者:谷歌Big Picture团队的软件工程师尼克希尔·索拉特(Nikhil Thorat)和丹尼尔·斯迈科夫(Daniel Smilkov)
机器学习已成为了一种功能日益强大的工具,可以运用于一系列广泛的领域:从对象识别、语言翻译到医疗保健,不一而足。然而,机器学习系统的发展常常局限于拥有相应计算资源和技术专长以处理常用机器学习库的那些公司企业。
借助PAIR这个研究和重新设计人类与机器学习交互的项目,我们希望让机器学习造福于尽可能多的人。为了竭力实现这个目标,我们激动地宣布deeplearn.js 0.1.0(https://pair-code.github.io/deeplearnjs/),这个WebGL加速的开源JavaScript库面向机器学习,完全在你的浏览器端运行,无需安装,无需后端部分。
将机器学习引入到浏览器有诸多原因。客户端机器学习库可能是这样一个平台:支持交互式解释、支持快速原型构建和可视化,甚至支持离线计算。暂且不说别的,浏览器是世界上最受欢迎的编程平台之一。
虽然Web机器学习库已存在了多年,比如安德烈·卡帕西(Andrej Karpathy)的convnetjs,但是它们受到Javascript速度的限制,或者局限于推理而不是训练(比如TensorFire)。相比之下,deeplearn.js提供了大幅提升速度的优点,因为它充分利用WebGL在GPU上执行计算任务,另外还能够执行标准的反向传播。
API模仿TensorFlow和NumPy的结构,有一个面向训练(比如TensorFlow)的延迟执行模型,有一个面向推理(比如NumPy)的立即执行模型。我们还实施了一些最常用的TensorFlow操作。借助发布的deeplearn.js,我们将提供从TensorFlow检查点导出权重的工具,这让开发者得以将权重导入到网页,实现deeplearn.js推理。
你可以试一试这个库的潜力,只要训练卷积神经网络,以识别图片和手写数字――这一切都在你的浏览器中,无需编写一行代码。
我们发布了一系列演示视频,表明deeplearn.js的实际运行。试一试实时使用网络摄像头的图像分类器,观察网络如何内部表示它看到的画面。或者以每秒60帧这一流畅的速度,生成抽象艺术视频。deeplearn.js主页(https://pair-code.github.io/deeplearnjs/)含有诸如此类的演示视频。
我们的愿景是,这个库将大大提高机器学习的可见性和参与性,让开发人员易于获取功能强大的工具,同时为普通用户提供与之交互的方式。我们期待与开源社区合作,推动这个愿景尽早实现。