JavaScript也能玩机器学习—— 5个开源 JavaScript 机器学习框架

作者 | 极链科技video++技术中心前端team
整理 | 包包
3个月前,公司ai团队给我们分享了关于如何利用机器学习帮助我们分析图片、视频中的明星以及地标等。作为一名web的前端开发者,我很好奇机器学习是如何工作的。我并没计划要系统学习关于机器学习(ml)、神经网络、nlp自然语言处理之类的知识,不过光看到这些概念就觉得很有意思,简直是打开了一个新的世界。
大多数玩机器学习的同事在工作中都是用 python 这样的语言完成的,但既然身处在 javascript 这个生态中,为什么不试试一起使用 javascript 玩 机器学习 呢?而且使用 javascript 还允许运行在浏览器和服务器端、甚至是桌面程序上。通过做一些search和研究发现,这里的确有一些简洁的库,可以将 javascript、机器学习、dnn 甚至 nlp结合在一起,而且在浏览器端大多库会调用 webgl 来做机器学习的计算。
1.tensorflow.js (https://js.tensorflow.org/)
tensorflow.js 是一个开源的基于硬件加速的 javascript 的库,支持在浏览器或者 nodejs 中来运行深度学习,并且能支持现有的 tensorflow 模型,由google出品。可以说是前端深度学习框架 deeplearn.js 的继任者。它提供一系列简洁和通俗易懂的api,用于训练、部署模型。而且因为可以运行在浏览器,所以可以直接通过url就能分享你的程序:
通过摄像头来控制的吃豆人游戏
2. brain.js (https://brain.js.org/)
brain.js 是同样可以运行在浏览器和 nodejs 服务器端、能为不同的任务提供不同类型的训练网络。特点是让定义、训练以及执行神经网络变得特别简单。个人觉得这个库比较适合入门。比如以下短短几行代码已涵盖创建、训练和执行神经网络,一目了然:
brain.js 的色彩识别器
3. synaptic.js (http://caza.la/synaptic)
synaptic 可以运行在浏览器和 nodejs 服务器端的神经网络库,你能够用它训练一层甚至是二层神经网络结构。该库包括一些内置的体系结构,如多层感知机(mlp)、长短时记忆网络、液体状态机和能够训练真实网络的训练器。
synaptic image-filter perceptron
4. machine learning tools (https://github.com/mljs/ml)
machine learning tools 是由 mljs 组织开发的一组库,可以为 javascript 提供机器学习工具,包括监督和非监督学习、人工神经网络 (ann)、回归算法,用于统计、数学等的支持库,类似于 python 中的 scikit-learn。
5. compromise (http://compromise.cool/)
基本上是nlp自然语言处理库 - 前端 javascript 实现的首选,这个库加上自己的资料库压缩成min.js后文件大小可达到300k以下,这样运行在浏览器和 nodejs 服务器端都问题不大,具体可以做的东西是训练自定义语义库:划分出分词,获取句子的各个词性,可以把句子变积极消极、分词等,比如以下例子:
javascript 虽然不是机器学习的最佳编程语言,不过随着 web生态 和 人工智能技术近年来的不断发展完善,越来越多这样的机器学习工具库被研发和发布。对于一名web的前端开发者而言,用 javascript 作为入门机器学习的桥梁是个不错的选择,它同样能帮助你开启机器学习之旅。
参考资料:
《a web developer’s guide to machine learning in javascript》

浅谈OLED的三种彩色化方式
互联网巨头加入半导体产业所产生的影响分析
PLC编程语言的特点
一个基于wifi的短距离遥测链路设计
小米8和荣耀8XMax哪个好
JavaScript也能玩机器学习—— 5个开源 JavaScript 机器学习框架
FiiO FW5:全链路HiFi,聆听新境界
联发科成全球最高市占手机晶片制造商 占比达31%
多层陶瓷电容的扭曲裂纹如何解决?
rk3588是armv8吗?rk3588硬件资料
美高森美首次推出工业等级以太网供电中跨
最强激光产生“创世”爆炸 模拟人造太阳
造车太烧钱,贾跃亭要卖地
如何远离EMC困扰!
续驶里程和充电时间长是影响电动汽车推广的重要因素
BallistixTacticalTracer内存评测 具有吸引力的中高端灯条
腾讯数据中心分享日,构建IDC生态助推新基建进程
SOCV时序分析概念简析
华硕推出全新显示器 144Hz刷新率+1ms响应时间
时序仿真与功能仿真的区别在于