机器学习从入门到创业手记-1.3 必备的工具与框架

今天的课程主要以自我学习为主,李里发给了每个人一张印有培训内容的表格,要求按照培训内容列表中提到的工具,将其简介都写在工具名称的后面。

 

李里解释道:作为机器学习的初学者刚进入这个领域时肯定是一头雾水,其实就算是具有多年工作经验的程序员,或是统计学专业出身的数学家新进入这个领域也充满了难度,机器学习很好的诠释了什么叫做知识大爆炸的交叉学科,里面涉及的逻辑设计,离散数学,线性代数,编程能力,服务器优化,网络通信与同步等等都是够一个专业人士学习很长时间才能达到应用的程度,但好在各种辅助工具帮助了有志于从事机器学习的初学者,采用合适的工具与框架就可以绕过很多知识黑洞,把时间放专注于如何解决问题的本身上。

 

安逸完成培训表格:

 

爱视达智能科技基础概念培训表格一

 

机器学习常用的算法库与开发框架

 

SkLearn

 

scikit-learn用于数据挖掘和机器学习等领域包含了大部分传统的机器学习方法,于2006年问世,它是基于Python语言的工具包,主要有以下六种功能:分类,回归,聚类,降维,模型选择,数据的预处理。

 

相关链接:http://scikit-learn.org/

 

TensorFlow

 

 

这是谷歌开源的机器学习库,它在整个机器学习领域目前地位还是排在首位。TensorFlow主要使用Python编写,其中也有一些Java和Go的实验API。

TensorFlow的入门课程有两个部分组成,一个是初学者部分,还有一个是ML专家部分。TensorFlow估计是开源工具中最易于访问的。而且它也是GitHub上最顶级的开源机器学习工具,拥有很多项目以及庞大的社区。

 

 

相关链接:https://www.TensorFlow.org/

 

Torch

 

 

Torch 是一个十分老牌、对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。但由于其语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 TensorFlow 抢走用户。如今,作为经典机器学习库 Torch 的端口,PyTorch 为 Python 语言使用者提供了舒适的写代码选择

 

 

相关链接:http://torch.ch/

 

PaddlePaddle

 

 

PaddlePaddle的前身是百度于2013年自主研发的深度学习平台,且一直为百度内部工程师研发使用。全球各大科技巨头开源的深度学习平台都极具各自技术特点,对于百度,由于其自身在搜索、图像识别、语音语义识别理解、情感分析、机器翻译、用户画像推荐等多领域的业务和技术方向,PaddlePaddle则表现更加全面,是一个相对全功能的深度学习框架。

 

 

相关链接:http://www.paddlepaddle.org

 

CNTK

 

 

Microsoft的Cognitive Toolkit是一个深度学习的工具包,用于训练算法像人脑一样学习。其在GitHub页面指出,“微软正在积极使用并不断发展CNTK,同样的,这时的CNTK也不是完美的,也会有错误。”

这个工具毫无疑问地是使用神经网络来处理非结构化数据的大数据集。CNTK具有更快的训练时间和易于使用的架构,可高度自定义,让用户选择自己的参数,算法和网络。它用Python和C ++编写

 

 

相关链接:https://www.microsoft.com/en-us/cognitive-toolkit/

 

NLTK

 

 

自然语言处理工具集(NLTK)包含自然语言处理所必需的库和函数,其设计初衷是满足自然语言处理的相关主题研究和教学支持,其提供的文本处理的函数涵盖了分词,词干提取,标注,语法分析,语义推理和分类功能。

 

 

相关链接:http://www.nltk.org/

 

 

机器学习常用开发部署平台

 

阿里云机器学习PAI平台

 

阿里云人工智能平台,提供一站式的机器学习解决方案,通过对底层的分布式算法封装,提供拖拉拽的可视化操作环境,让数据挖掘的创建过程像搭积木一样简单。缩短了您与数据的距离,真正实现了数据的触手可及。同时也提供了命令行工具,您可方便地将算法嵌入到自身的工程中。

 

 

相关链接:https://www.aliyun.com

 

亚马逊Sagemaker

 

 

AWS re:Invent 2017上宣布的一款重大产品就是正式发布的亚马逊Sagemaker,这种新的框架简化了构建机器学习模型并部署到云端的任务。

这项服务对于并不深入了解机器学习的开发人员来说非常有用,因为它为开发人员提供了一系列预先构建的开发环境,基于流行的Jupyter笔记本格式。如果数据科学家不希望花费大量时间,就可以在AWS上构建有效的机器学习系统,并对性能进行微调,就会发现这项服务大有用处。

 

 

相关链接:https://datahub.packtpub.com/machine-learning/amazon-sagemaker-machine-learning-service/

 

谷歌云机器学习引擎

 

 

云机器学习引擎被认为是谷歌主要的机器学习产品,它让你可以比较轻松地针对各种各样的数据来构建机器学习模型。该平台充分利用流行的TensorFlow机器学习框架,可用于执行大规模预测分析。它还让你可以使用流行的HyperTune功能,对机器学习模型的性能进行微调和优化。

由于无服务器架构支持自动监控、配置和扩展,机器学习引擎确保你只需要为想要训练哪种机器学习模型而操心。这项功能尤其适用于期望外出时可以构建大规模模型的机器学习开发人员。

 

 

相关链接:https://cloud.Google.com/ml-engine/

 

 

数据分析辅助软件

 

SPSS

 

 

SPSS(Statistical Product and Service Solutions),“统计产品与服务解决方案”软件。最初软件全称为“社会科学统计软件包”(Solutions Statistical Package for the Social Sciences),但是随着SPSS产品服务领域的扩大和服务深度的增加,SPSS公司已于2000年正式将英文全称更改为“统计产品与服务解决方案”,这标志着SPSS的战略方向正在做出重大调整。SPSS为IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称,有Windows和Mac OS X等版本。

 

 

相关链接:www.spss.com.cn/ 

 

KNIME

 

 

KNIME (Konstanz Information Miner) 是一个用户友好,智能的,并有丰演的开源的数据集成,数据处理,数据分析和数据勘探平台。它给了用户有能力以可视化的方式创建数据流或数据通道,可选择性地运行一些或全部的分析步骤,并以后面研究结果,模型 以及 可交互的视图。 KNIME 由Java写成,其基于 Eclipse 并通过插件的方式来提供更多的功能。通过以插件的文件,用户可以为文件,图片,和时间序列加入处理模块,并可以集成到其它各种各样的开源项目中,比如:R 语言Weka, Chemistry Development Kit, 和 LibSVM

 

 

相关链接:https://www.knime.com/

 

WEKA

 

 

WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。

 

WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。

 

如果想自己实现数据挖掘算法的话,可以参考weka的接口文档。在weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。

2005年8月,在第11届ACM SIGKDD国际会议上,怀卡托大学的Weka小组荣获了数据挖掘和知识探索领域的最高服务奖,Weka系统得到了广泛的认可,被誉为数据挖掘和机器学习 历史上的里程碑,是现今最完备的数据挖掘工具之一(已有11年的发展历史)。Weka的每月下载次数已超过万次。

 

相关链接:https://www.cs.waikato.ac.nz/ml/weka/

 

推荐系统学习-SVDFeature

 

 

SVDFeature是由Apex Data & Knowledge Management Lab在KDD CUP11竞赛中开发出来的工具包。它的目的是有效地解决基于特征的矩阵分解。新的模型可以只通过定义新的特征来实现。这种基于特征的设置允许把很多信息包含在模型中,使得模型更加与时俱进。使用此工具包,可以很容易的把其他信息整合进模型,比如时间动态,领域关系和分层信息。除了评分预测,还可以实现pairwise ranking任务。

 

 

相关链接:https://www.svdfeature.apexlab.org/

 

LIBSVM

 

LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。该软件可以解决C-SVM、ν-SVM、ε-SVR和ν-SVR等问题,包括基于一对一算法的多类模式识别问题。

 

 

相关链接:https://www.csie.ntu.edu.tw/~cjlin/libsvm/

 

Warp-CTC

 

 

Warp-CTC是百度前期为了在最新的计算机芯片上更快速运行而专门研发的一种改良版深度学习算法。Warp-CTC所需的存储空间小,比普通CTC速度快数百倍。百度硅谷人工智能实验室已向GitHub上传了Warp-CTC代码库,鼓励开发者试用这些代码。

 

 

相关链接:https://github.com/baidu-research/warp-ctc

 

总结:

 

以上的软件框架都来自于一线软件大厂,有微软,Facebook,百度,谷歌等,这里通过我一天的搜集整理,得出的结论是尽量采用这种大厂出品的产品,因为后继升级维护,Bug修正,兼容性,社区文档等等都不是那些小众框架能比拟的,尤其是出现问题时,工具使用的人越多你越能得到的相关信息越多,但光有这些框架还不够,还有一些辅助工具来协助你快速,安全的开发产品。

 

 

 

递交表格时,李里看了看说:虽然写的很认真,但看你写的简介都是网上摘抄的零碎片段,没有一点点自己的东西,你和高维应该都是一点基础都没有吧,今天晚上你两留下来加个班,把同为机器学习框架SKLearn和TensorFlow的区别写出来,要用自己语言写,别再摘抄网上的东西了,明白么?

 

虽然刚上班就要加班,但我还是蛮高兴的,之前一直琢磨怎么和高维搭上话呢,现在可以光明正大的和她坐在一起交流交流了。

 

单位食堂的晚饭要比午餐强很多,还有水果自助,但吃晚餐的同事必须要晚上八点以后下班才可以,另外惊奇的是,基本上员工都会选择吃晚餐,只有其他几个实习生下班回宿舍了。我端着餐盘坐到高维旁边,有点结巴的说到,你是哪里人啊?我来自天津,距离北京不远。高维倒是很热情:我来自重庆附近的一个地方,你是天津的,也是大城市啊,为嘛跑到北京来工作啊?我说:恩,学习和专业不太好,天津的机会不太多,另外,我家庭条件一般,北京这边待遇普遍高些,我想多挣些钱再回去,你为什么来北京啊?高维说:我家里还有一个姐姐和一个弟弟,家里有些乱,我喜欢过清净和自由的日子,也喜欢大城市的繁华,所以毕业就来北京了。

 

就这样不知不觉的聊了很长时间,说不出对于高维的感觉总是哪里怪怪的,面貌清纯,但骨子里总有种不配套的气质。

 

我说咱们赶快开始工作吧,不然晚上八点也下不了班的。但真的开始干起来才发现对于没有任何基础的我们来说写出SkLearn与TensorFlow的区别真是太难了,本身对机器学习就不了解,对这两个框架下午才刚接触,所以只能上网拼凑一些资料,写了份非常简单的报告。

 

 

TensorFlow与SKLearn的区别

 

TensorFlow特性

SKLearn特性

1.TensorFlow的定位主要是深度学习库

采用

 

2.TensorFlow不需要用户去进行数据预处理,深度学习库会自动从数据中抽取有效特征。

 

3.TensorFlow拥有很高的开发自由度

 

4.TensorFlow适用于数据处理需求不高但数据量非常大的项目,往往都需运行在GPU加速上

1.Scikit-learn(sklearn)的定位是通用机器学习库

 

2.作为传统学习代表的SKLearn需要使用者自行对数据进行处理,比如压缩维度,特征选择等

 

3.SKLearn封装度更高,易用性更高

 

4.SKLearn适合于中小型数据量不大但需要对数据处理的项目。

 

我和高维都不太明白,对于我们这样的新手出这么困难的题有什么意义啊。

 

回到宿舍时已经快九点了,路思和我在同一单元内,他见我回来神秘的说:你知道么,我今晚和刘思聪一起吃的饭,他说他爸爸是这家公司的早期投资人之一,他来这里就是学学习,将来还得回去接手他爸爸的产业的,真是人比人得死啊。

 

是啊,人生而不平等,有的人出生就站在了你看不到的终点上,对于我这样的三无青年来说,除了努力奋斗没有任何可以依靠的力量,这时躺在床上又想起了天津的家人,母亲早就退休了,也不知道天天都在干什么,操劳多年也该好好休息休息了,父亲去了武汉打工,自己一个人是否过的和我一样孤独呢,渐渐的夜也深了,我也停止了胡思乱想进入了睡梦。

猜你喜欢

转载自blog.csdn.net/yoki2009/article/details/88417272
今日推荐