聊聊那些使用前端Javascript实现的机器学习类库
机器学习(machine learning)在最近几年绝对称的上是大火,越来越多的公司和资本投入了巨大资源和金钱到这个新上位的技术“新宠”中,尤其是随着更多的各种机器学习相关类库的出现和发展,更多新的技术已经被应用到了机器学习中, 现在大家可以看到, python不再是唯一个老牌机器学习的必用语言, 对于现代神经网络(neural networks)语言不再是一个问题, 你基本可以使用任何的编程语言, 包括今天我们介绍的标准前端开发语言 - javascript
web的整个体系已经在近几年中有了长足的发展, 虽然 javascript 和 node.js的使用案例还远远无法和java/python来媲美。 但是 也足够应用到很多机器学习的环境中去啦。而且最大的优势在于 - 一个浏览器就可以帮你搞定了一切 !
虽然, 基于javascript的机器学习类库还非常的早期,很多依旧在开发状态下, 但是他们的确已经可以提供比较早期的体验。 在今天这篇文章中, 我们将选择几款超酷的机器学习和ai相关的web应用, 让大家初体验一下 ~~
brain是一个允许你快速简单创建神经网络并且基于输入/输出进行训练的类库。虽然一个cdn浏览器版本可以直接将类库加载到web页面中, 因为这个训练过程占用了大量的资源, 所以将这个类库运行在了一格node.js环境下 。 这个类库包含了一个非常迷你的在线演示, 可以用来训练识别颜色的对比度
这个教育化的web应用允许你把玩神经网络,并且探索不同的组件。 拥有非常设计良好的ui, 可以允许你控制输入数据,神经元数量, 使用的算法等, 各种相关的度量将会影响最终的结果。 当然这里在后台中有大量值得学习的东西, 代码是开源的, 使用了自定义的 机器学习语言 (typescript), 并且拥有非常好的文档
这是一个使用800行代码实现的机器学习javasript类库, 实现了一个机器学习 flappy bird 游戏的demo。 在这个类库中使用了ai技巧:neuroevolution ,应用了来自“自然”杂志的神经系统算法, 动态的从每一个迭代的成功和失败中学习。 demo运行非常简单, 直接使用浏览器打开index.html即可
截图中可以看到经过了20代的学习, 这只鸟, 在我截屏的时候,依然还没有挂掉 !
可能是最活跃维护的项目之一, synaptic是一个node.js和浏览器类库, 这个类库被设计为架构不可知的状态, 允许了开发人员创建任何类型的神经网络。 拥有很少的内建架构, 是的能够快速的测试和算法比较。 同时包含了一个非常完整的神经网络说明, 一些实际的演示, 很多其它相关的教程,来介绍机器学习如何工作滴
land lines是一个非常有趣的chrome web实验, 它查找地球的卫星图片,找出类似用户的涂鸦。 这个app没有服务器调用, 完全在浏览器里运行, 使用了webgl和机器学习, 在移动端也有很好的体验。
虽然已经不再活跃的维护了, convnetjs是javascript机器学习的最先进的类库。 最早是斯坦福大学开发, 后来在github上非常知名, 拥有了很多社区开发的特性和教程。 直接在浏览器里运行, 支持多学习技巧, 偏底层, 是的它非常适合神经网络中比较大的体验
这是一个web实验演示, 允许你使用手机来识别现实生活中的物品,并且用不同语言来命名。 这个app使用web技术和两个来自google的机器学习api实现,包括:
cloud vision (图片识别) 和 translate api(语言翻译)
基于“增强学习“的ai系统框架。 很可惜这个项目没有正确的文档说明, 但是有一个自动驾驶的演示,拥有很多相关细节的文字描述。 这个类库纯javascript,可以使用webpack或者babel来编译打包
另外一个允许我们设置/训练神经网络的javascript类库。 使用node.js和客户端安装非常简单, 拥有非常干净的api, 对于不同技术水平的开发人员来说,都非常适应。这个类库包含了, 包含了很多流行的算法, 帮助你理解核心的及其学习语言原则
这是一个用户友好的深度学习开发环境, 允许你使用一格简单图形界面设计神经网络, 支持远程机器的训练模型, 内建版本控制, 这个项目基于node.js和mongodb,运行在浏览器里, 安装过程非常类似大多数的web开发过程
文章总结
虽然javascript相关机器学习环境并没有被完整的开发, 我们推荐使用本文中列出的这些开源项目作为你的第一个机器学习资料,并且帮助你了解核心的技术。 希望对大家能够开展机器学习相关功能提供一个有效可借鉴的内容来源,感谢大家关注和阅读~也希望大家多多支持。