xyxiao的个人博客分享 http://blog.sciencenet.cn/u/xyxiao

博文

机器学习若干工具浅说

已有 343 次阅读 2017-4-19 21:10 |系统分类:科研笔记|关键词:机器学习 MxNet

很长时间没写博客了,花几分钟时间,码几行字,以缓解代码带来的疲劳..........

本来不知道讲什么,刚刚解决了一个神经网络问题,今天就拿这个写写吧!

不知从何时起,机器学习开始慢慢的渗透进了各个领域,从纯数学,到应用数学,到计算机,甚至扩展到了工业界。

从我刚开始接触机器学习这个概念来说,觉得非常神奇,那个时候,机器学习算法对我来说,非常神秘。后来慢慢的,机器学习的平台越来越低,到目前为止,很多没有算法基础的从业人员,也可以轻松的玩转机器学习的各种功能。

从刚开始基础数据挖掘,到慢慢的深入大数据(GB->TB)处理,再到研究生物特征识别,生物基因序列的探索,以及DNA数据序列预测,到现阶段返璞归真似的研究超大型线性方程组的求解等等,从传统的分类算法,比如K-means,到现在强大的神经网络分类,无一不体现出机器学习的强大的渗透力!

其实,机器学习对很多人来说,就是神经网络,为什么?因为神经网络被应用的最多,最广,为什么?因为神经网络,非常简洁的用我们不要关心的方式解决了例如分类,识别,预测等问题。下面就讲一讲我遇到的几个github上机器学习项目。也是用的比较顺手的。

最先接触的就是TensorFlow :

TensorFlow 是谷歌的发布的第二代机器学习系统。据谷歌宣称,在部分基准测试中,TensorFlow的处理速度比第一代的DistBelief加快了2倍之多。谷歌大脑小组发布开源项目,得益于此,机器学习在一定程度上得到了快速。
具体的讲,TensorFlow主要一个利用Data Flow Graphs进行数值计算的,图中的节点( Nodes)代表数学运算操作,同时图中的边(Edges)表示节点之间相互流通的多维数组,即张量(Tensors)。这种架构让使用者方便地部署在各种不同的台式机、服务器或者移动终端上的一个或多个CPU上,最好的是无需重写代码。而且还存在很多有用的,方便的接口,让我们在TensorFlow中表达想法也变得更为简单。

TensorFlow开发目的是用于进行机器学习和深度神经网络的研究。但很多高明的学者将其用于其他计算领域。
据目前Google 宣称,公司使用的 AI 技术,包括 Google App 的语音识别、Gmail 的自动回复功能、Google Photos 的图片搜索等都在使用 TensorFlow。

然后现在正在学习的是MxNet:

就目前学习情况总结,MXNet确实是一个非常实用的机器学习框架,兼具效率以及灵活性。在使用者将符号编程和命令式编程相结合的前提下,动态依赖调度程序,它可以动态自动进行并行化符号和命令的操作。当然可扩展到多个GPU和多台主机上。
不记得是谁总结了MxNet的主要特点,我就根据记忆以及自己的经验大致写一下吧:

  • 首先,就是效率,完美的融合了各种编程方法的优势,最大限度地提高灵活性和效率;

  • 其次,MxNetde 设计说明提供了有用的见解,其他DL项目完全可以重新利用;

  • 支持Python、R、C++和 Julia,这点对我来说相当重要,因为我也比较喜欢python和C++,虽然是C出身;

  • 还有,支持多GPU扩展和分布式的自动并行化设置;

个人觉得,MXNet更是一个建立深度学习系统的创意性框架,有很多代码贡献者,其中最主要的贡献者是交大ACM班的几个元老,问问题都乐意回答,人都很nice!

额,先写到这里吧,后期还有很多要学习的,再续!





http://blog.sciencenet.cn/blog-999739-1049923.html

上一篇:关于函数逼近的思考

1 刘锋

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|科学网 ( 京ICP备14006957 )

GMT+8, 2017-5-29 15:42

Powered by ScienceNet.cn

Copyright © 2007-2017 中国科学报社