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

    文章

    3363

    浏览量

    42538
  • javascript
    +关注

    关注

    0

    文章

    519

    浏览量

    53879
  • 机器学习
    +关注

    关注

    66

    文章

    8422

    浏览量

    132724
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

    来源:Master编程树“机器学习”最初的研究动机是让计算机系统具有人的学习能力以便实现人工智能。因为没有学习能力的系统很难被认为是具有智能的。目前被广泛采用的
    的头像 发表于 11-16 01:07 433次阅读
    什么是<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 494次阅读

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

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

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

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

    如何理解机器学习中的训练集、验证集和测试集

    理解机器学习中的训练集、验证集和测试集,是掌握机器学习核心概念和流程的重要一步。这三者不仅构成了模型学习与评估的基础
    的头像 发表于 07-10 15:45 4223次阅读

    机器学习算法原理详解

    机器学习作为人工智能的一重要分支,其目标是通过让计算机自动从数据中学习并改进其性能,而无需进行明确的编程。本文将深入解读几种常见的机器
    的头像 发表于 07-02 11:25 1111次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习和深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器
    的头像 发表于 07-01 11:40 1414次阅读

    机器学习的经典算法与应用

    关于数据机器学习就是喂入算法和数据,让算法从数据中寻找一种相应的关系。Iris鸢尾花数据集是一经典数据集,在统计学习机器
    的头像 发表于 06-27 08:27 1672次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>的经典算法与应用

    微软推出ONNX Runtime Web,利用WebGPU优化浏览器机器学习性能

    作为微软的 JavaScript 库,ONNX Runtime Web 使得网络开发者能在浏览器环境下部署机器学习模型,并提供多种硬件加速的后端支持。
    的头像 发表于 03-05 14:23 1131次阅读

    谷歌模型框架是什么软件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌开发的用于机器学习和人工智能的软件框架,其中最著名的是TensorFlow。TensorFlow是一
    的头像 发表于 03-01 16:25 900次阅读

    人工智能和机器学习的顶级开发板有哪些?

    设备不必再依赖远程服务器或云来洞察传感器数据或用户输入。像TinyML这样的软件框架正在发展成为微控制器专用的机器学习解决方案,而传统的深度学习框架
    的头像 发表于 02-29 18:59 847次阅读
    人工智能和<b class='flag-5'>机器</b><b class='flag-5'>学习</b>的顶级开发板有哪些?

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我将逐步讲解如何使用 TensorFlow 创建一简单的机器学习模型。
    的头像 发表于 01-08 09:25 1000次阅读
    如何使用TensorFlow构建<b class='flag-5'>机器</b><b class='flag-5'>学习</b>模型