前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Javascript 侵入机器学习?

Javascript 侵入机器学习?

作者头像
AlgorithmDog
发布2017-12-29 10:49:29
9630
发布2017-12-29 10:49:29
举报
文章被收录于专栏:AlgorithmDog的专栏

大家可能都听说过 “亚特伍德定律” 这个笑话,大意是说任何能够由 JavaScript 所编写的内容最终都会由 JavaScript 进行编写。现在 Javascript 要侵入机器学习了嘛?一些工程师已经开始用 Javascript 编写机器学习的代码了。

基于 Javascript 的机器学习类库

目前最火的基于 Javascript 的机器学习类库莫过于 ConvNetJs。ConvNetJs 用 Javascript 实现了常用的深度学习算法,可以用于分类、回归和强化学习等。ConvNetJs 在 GitHub 上有超过 4000 颗星,800 多次 Fork。想想著名的深度学习框架 Theano 不到 3500 颗星,你就可以想象这个项目的红火程度了。如果你想在 Node.js 项目中使用 ConvNetJs,可以直接使用命令 npm install convnetjs 安装 ConvNetJs 模块。ConvNetJs 有很多很酷的可视化演示。

用 Javascript 的程序训练模型实在是太慢了。更实际的做法是用其他学习程序训练模型,然后 Javascript 程序使用训练好的模型做一些应用。MXNetJS便是这个思路。MXNetJS 是 dmlc/MXNet 的 Javascript 包。dmlc/MXNet 是陈天奇等大神开发的深度学习框架。MXNetJS 能够使用任何由 MXNet 训练好的模型 (需要先用 tools/model2json.py 将模型转化为 JSON 格式)。

做过自然语言处理的同学,应该都知道 Python NLTK 包。nlp_compromise相当于 Javascript 版的 NLTK。和 NLTK 一样,nlp_compromise 直接使用开发者训练好的模型,用户就可以不用自己训练模型了。

除了上述类库,有名的机器学习类库还包括,神经网络类库 (Brain.js)、支持向量机类库 (svmjs)、随机树类库 (Forest.js)、 数值计算类库 (Numeric.js) 和线性代数类库 (sylvester) 等。

基于 Javascript 的机器学习的讨论

基于 Javascript 的机器学习最大的问题是性能。我们知道大规模机器学习训练需要的计算资源是非常恐怖的。虽然 Javascript 的新一代 V8 引擎大幅度提高了速度,但距离满足机器学习训练还有一定的距离。现在人们为了提高机器学习性能干的事:GPU、多线程和分布式计算,Javascript 没搞定任何一个。即使对于预测,Javascript 的性能也还是太低。由于性能的限制,目前基于 Javascript 的机器学习只是一个非常有趣玩具。我没有听到,谁家在实际应用中使用了基于 Javascript 的机器学习。

随着技术进步,性能问题是有可能被解决的。我们用来发射愤怒的小鸟去砸猪的手机计算能力,已经超越了 NASA 1969 年拥有的计算能力的总和。NASA 用那些计算能力完成了世界奇观阿波罗计划。如果性能问题得到解决,Javascript 能够实现一个在任何地方和任何设备都可运行的应用。这是十分有吸引力。熟悉 Javascript 的前端工程师也使用机器学习了,这将大大地扩展机器学习的应用范围。

在36Kr实习的时候,我就想写 Javascript 和机器学习的稿子。但一直没有去梳理 Javascript 实现机器学习是怎么解决性能问题,就搁置了。最近看到微博上的 @爱可可-爱生活 介绍了几个国外基于 Javascript 的机器学习项目,才重新想起来写。我认真梳理了下,没有找到性能问题的解决方案,囧。那只能寄希望于遥远的未来了:)。

最近写文章越来越标题党了。这样很好:)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年3月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于 Javascript 的机器学习类库
  • 基于 Javascript 的机器学习的讨论
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档