javascript机器学习

基于 Javascript 的机器学习类库

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

convnetjs

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

mxnetjs

做过自然语言处理的同学,应该都知道 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 的机器学习项目,才重新想起来写。我认真梳理了下,没有找到性能问题的解决方案,囧。那只能寄希望于遥远的未来了:)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值