0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

张康康 ? 2018-10-10 13:43 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者 | 极链科技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》


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    3754

    浏览量

    43968
  • javascript
    +关注

    关注

    0

    文章

    525

    浏览量

    54950
  • 机器学习
    +关注

    关注

    66

    文章

    8510

    浏览量

    134844
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深度解读英伟达Newton机器人平台:技术革新与跨界生态构建

    的基础上,它使机器人能够学习如何以更高的精度处理复杂的任务,与MuJoCo Playground或 NVIDIA Isaac Lab 等学习框架兼容,这是一
    的头像 发表于 03-20 15:15 ?1811次阅读
    深度解读英伟达Newton<b class='flag-5'>机器</b>人平台:技术革新与跨界生态构建

    机器学习模型市场前景如何

    当今,随着算法的不断优化、数据量的爆炸式增长以及计算能力的飞速提升,机器学习模型的市场前景愈发广阔。下面,AI部落小编将探讨机器学习模型市场的未来发展。
    的头像 发表于 02-13 09:39 ?394次阅读

    SciChart—高性能的JavaScript图表和图形库

    使用 SciChart 的 JavaScript 图表库为您的 JS 应用程序发现终极解决方案。 使用 WebGL 创建动态、高速的图表和图形,非常适合实时处理复杂的数据可视化。使用我们强大而灵活
    的头像 发表于 01-22 10:15 ?784次阅读
    SciChart—高性能的<b class='flag-5'>JavaScript</b>图表和图形库

    Spire.XLS for JavaScript——多功能JavaScript电子表格库(一)

    、Angular 和 JavaScript 等主流框架完全兼容,使开发人员能够在网络上轻松构建并部署自定义的 JavaScript 应用。 作为一款独立的 JavaScript Exc
    的头像 发表于 01-21 09:29 ?556次阅读
    Spire.XLS for <b class='flag-5'>JavaScript</b>——多功能<b class='flag-5'>JavaScript</b>电子表格库(一)

    javascript:void(0) 的作用是什么

    javascript:void(0) 在 HTML 和 JavaScript 中是一常见的表达式,主要用来创建一无操作的链接(通常是 标签)或者阻止默认事件处理。具体来说,它的作用
    的头像 发表于 12-31 15:55 ?2900次阅读

    传统机器学习方法和应用指导

    用于开发生物学数据的机器学习方法。尽管深度学习(一般指神经网络算法)是一强大的工具,目前非常流行,但它的应用领域仍然有限。与深度
    的头像 发表于 12-30 09:16 ?1254次阅读
    传统<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法和应用指导

    如何选择云原生机器学习平台

    当今,云原生机器学习平台因其弹性扩展、高效部署、低成本运营等优势,逐渐成为企业构建和部署机器学习应用的首选。然而,市场上的云原生机器
    的头像 发表于 12-25 11:54 ?484次阅读

    Arm成功将Arm KleidiAI软件库集成到腾讯自研的Angel 机器学习框架

    Arm 与腾讯携手合作,成功将 Arm KleidiAI 软件库集成到腾讯自研的 Angel 机器学习框架。 ? 借助 KleidiAI 解锁卓越性能、能效和可移植性,腾讯混元大模型能够实现更快
    的头像 发表于 11-24 15:33 ?1340次阅读

    什么是机器学习?通过机器学习方法能解决哪些问题?

    来源:Master编程树“机器学习”最初的研究动机是让计算机系统具有人的学习能力以便实现人工智能。因为没有学习能力的系统很难被认为是具有智能的。目前被广泛采用的
    的头像 发表于 11-16 01:07 ?1007次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?通过<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法能解决哪些问题?

    NPU与机器学习算法的关系

    在人工智能领域,机器学习算法是实现智能系统的核心。随着数据量的激增和算法复杂度的提升,对计算资源的需求在不断增长。NPU作为一种专门为深度学习
    的头像 发表于 11-15 09:19 ?1320次阅读

    具身智能与机器学习的关系

    具身智能(Embodied Intelligence)和机器学习(Machine Learning)是人工智能领域的两重要概念,它们之间存在着密切的关系。 1. 具身智能的定义 具身智能是指智能体
    的头像 发表于 10-27 10:33 ?1103次阅读

    人工智能、机器学习和深度学习存在什么区别

    人工智能指的是在某种程度上显示出类似人类智能的设备。AI有很多技术,但其中一很大的子集是机器学习——让算法从数据中学习
    发表于 10-24 17:22 ?3042次阅读
    人工智能、<b class='flag-5'>机器</b><b class='flag-5'>学习</b>和深度<b class='flag-5'>学习</b>存在什么区别

    RISC-V如何支持不同的AI和机器学习框架和库?

    RISC-V如何支持不同的AI和机器学习框架和库?还请坛友们多多指教一下。
    发表于 10-10 22:24

    【《时间序列与机器学习》阅读体验】+ 时间序列的信息提取

    本人有些机器学习的基础,理解起来一点不轻松,加油。 作者首先说明了时间序列的信息提取是时间序列分析的一重要环节,目标是从给定的时间序列数据中提取出有用的信息和特征,以支持后续的分析
    发表于 08-14 18:00

    【「时间序列与机器学习」阅读体验】+ 简单建议

    这本书以其系统性的框架和深入浅出的讲解,为读者绘制了一幅时间序列分析与机器学习融合应用的宏伟蓝图。作者不仅扎实地构建了时间序列分析的基础知识,更巧妙地展示了机器
    发表于 08-12 11:21