骑猪兜风

Google试水—Go语言也要冒险尝试机器学习?

骑猪兜风 2016-09-21 10:07:59    201032 次浏览

Google试水—Go语言也要冒险尝试机器学习?

  导读:Go 又称 Golang,是 Google 开发的一种静态强类型、编译型、并发型且具有垃圾回收功能的编程语言。Go 语言于 2009 年 11 月正式宣布推出并开放源代码,开始在 Linux 及 Mac OS X 平台上进行了实现,后追加 Windows 系统下的实现。

  大部分用过 Go 语言的人都认可其是一种非常不错的生产力工具,有人总结其优点如下:

部署简单

并发性好

语言设计良好

执行性能好

  目前也有许多使用 Go 语言开发的成功项目,包括:nsq、docker、packer、skynet、Doozer、Heka、cbfs、tsuru、groupcache、god、gor 等。鉴于其成功经验,有开发者想用 Go 语言来进行机器学习项目的开发。现在有一个好消息,对于想要使用 Go 语言作为开发平台的机器学习开发者来说,有越来越多的项目可以去进行选择了,虽然还是不多。

  与其使用其他编程语言(主要是C/C )编写的资料库,开发者现在能直接使用完全用 Go 语言编写的工具包展开工作了。现有的用其他语言编写的机器学习资料库虽然有很多的用户以及其特有文化,但是很多人对利用 Go 语言工具的便利特性也十分有兴趣。

  下面我们来了解几个主要的 Go 语言机器学习项目:

  • Golearn

Google试水—Go语言也要冒险尝试机器学习?

  GoLearn 是自称“内置电池”的机器学习资料库,绝对是首选项之一。

  作者在项目描述中提到——简洁、易定制是其追求的目标。GoLearn 中一些接口使用的数据处理方式和 scikit-learn(一个非常流行的 Python 机器学习项目)是非常相似的。想要逃离 Python 的用户应该可以用它做一些短期的工作。其中另外还有一些使用 C 构筑的线性模型资料库,但是其他的全是 Go 语言编写的。GoLearn 实现了熟悉的 Scikit-learn 适应/预测界面,可实现快速预估测试和交换。GoLearn 是一个成熟的项目,它提供了交叉验证和训练/测试等辅助功能。

  • Goml

Google试水—Go语言也要冒险尝试机器学习?

  Goml 自诩为“在线 Golang 机器学习工具”,据其开发者所言意思是其“包含了许多工具,能让你以在线方式学习其频道的数据内容。”这个项目之所以突出是因为其强调了其作为其他应用一部分存在的可能性,使得构筑“综合测试、大量文档以及简洁、高效、模块化的源代码”更加容易些了。但是如果你需要的知识解决基础的二元分类问题(是否是垃圾邮件?),你可能更适合使用 Hector 这个更小型的资料库。

  • Gorgonia

Google试水—Go语言也要冒险尝试机器学习?

  最新的一个分支(或者某种程度上说最令人感兴趣的)是 Gorgonia。

  这个机器学习资料库完全是用 Go 语言编写而成,据其开发者“chewxy”称能“提供动态建立神经网络及相关算法必需条件。”

  关键在于“动态”。和之前的机器学习资料库 Theano 一样,Gorgonia 允许你使用一系列原始资料库中的高阶术语来描述神经网络的行为。TensorFlow 资料库也使用这种方式,使得开发者不用再亲自编写算法,也不用再提交那些能在不同项目中重复使用的项目。

  为什么使用 Go 语言来编写这个机器学习项目 Gorgonia?

  其开发者在接受采访中提到:“我写 Gorgonia 其中一个原因是我曾经花费太久的时间尝试云端中部署 Theano(大约在两年前)。”

  总结

  一个纯粹的 Go 语言解决方案,这意味着需要从其他编写语言中打包并将其糅合到一起的部分更少了。但是拥有这些 Go 语言资料库的主要优势并不在于部署,而是在于开发者的便利度。未来的机器学习开发者将有许多种开发语言可供选择,同时也意味着现在的 Go 语言开发者如果想要往机器学习专家方向发展的话也可以轻松一点。

  Via infoworld

内容加载中