导航:首页 > 源码编译 > 分布式机器学习算法

分布式机器学习算法

发布时间:2022-07-01 08:57:07

‘壹’ 常用机器学习方法有哪些

机器学习中常用的方法有:

(1) 归纳学习

符号归纳学习:典型的符号归纳学习有示例学习、决策树学习。

函数归纳学习(发现学习):典型的函数归纳学习有神经网络学习、示例学习、发现学习、统计学习。

(2) 演绎学习

(3) 类比学习:典型的类比学习有案例(范例)学习。

(4) 分析学习:典型的分析学习有解释学习、宏操作学习。

(1)分布式机器学习算法扩展阅读:

机器学习常见算法:

1、决策树算法

决策树及其变种是一类将输入空间分成不同的区域,每个区域有独立参数的算法。决策树算法充分利用了树形模型,根节点到一个叶子节点是一条分类的路径规则,每个叶子节点象征一个判断类别。先将样本分成不同的子集,再进行分割递推,直至每个子集得到同类型的样本,从根节点开始测试,到子树再到叶子节点,即可得出预测类别。此方法的特点是结构简单、处理数据效率较高。

2、朴素贝叶斯算法

朴素贝叶斯算法是一种分类算法。它不是单一算法,而是一系列算法,它们都有一个共同的原则,即被分类的每个特征都与任何其他特征的值无关。朴素贝叶斯分类器认为这些“特征”中的每一个都独立地贡献概率,而不管特征之间的任何相关性。然而,特征并不总是独立的,这通常被视为朴素贝叶斯算法的缺点。简而言之,朴素贝叶斯算法允许我们使用概率给出一组特征来预测一个类。与其他常见的分类方法相比,朴素贝叶斯算法需要的训练很少。在进行预测之前必须完成的唯一工作是找到特征的个体概率分布的参数,这通常可以快速且确定地完成。这意味着即使对于高维数据点或大量数据点,朴素贝叶斯分类器也可以表现良好。

3、支持向量机算法

基本思想可概括如下:首先,要利用一种变换将空间高维化,当然这种变换是非线性的,然后,在新的复杂空间取最优线性分类表面。由此种方式获得的分类函数在形式上类似于神经网络算法。支持向量机是统计学习领域中一个代表性算法,但它与传统方式的思维方法很不同,输入空间、提高维度从而将问题简短化,使问题归结为线性可分的经典解问题。支持向量机应用于垃圾邮件识别,人脸识别等多种分类问题。

‘贰’ 机器学习算法中GBDT和XGBOOST的区别有哪些

机器学习算法中GBDT和XGBOOST的区别有哪些?

在昨天阿里的面试中被问到了,我只简单的说了下xgboost能自动利用cpu的多线程,而且适当改进了gradient boosting,加了剪枝,控制了模型的复杂程度

添加评论

分享

默认排序按时间排序

9 个回答

weponML/DM,https://github.com/wepe

252人赞同

xgboost相比传统gbdt有何不同?xgboost为什么快?xgboost如何支持并行?

看了陈天奇大神的文章和slides,略抒己见,没有面面俱到,不恰当的地方欢迎讨论:

传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。

传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。顺便提一下,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。

xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。从Bias-variance tradeoff角度来讲,正则项降低了模型的variance,使学习出来的模型更加简单,防止过拟合,这也是xgboost优于传统GBDT的一个特性。

Shrinkage(缩减),相当于学习速率(xgboost中的eta)。xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。实际应用中,一般把eta设置得小一点,然后迭代次数设置得大一点。(补充:传统GBDT的实现也有学习速率)

列抽样(column subsampling)。xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。


对缺失值的处理。对于特征的值有缺失的样本,xgboost可以自动学习出它的分裂方向。

xgboost工具支持并行。boosting不是一种串行的结构吗?怎么并行的?注意xgboost的并行不是tree粒度的并行,xgboost也是一次迭代完才能进行下一次迭代的(第t次迭代的代价函数里包含了前面t-1次迭代的预测值)。xgboost的并行是在特征粒度上的。我们知道,决策树的学习最耗时的一个步骤就是对特征的值进行排序(因为要确定最佳分割点),xgboost在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量。这个block结构也使得并行成为了可能,在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。


可并行的近似直方图算法。树节点在进行分裂时,我们需要计算每个特征的每个分割点对应的增益,即用贪心法枚举所有可能的分割点。当数据无法一次载入内存或者在分布式情况下,贪心算法效率就会变得很低,所以xgboost还提出了一种可并行的近似直方图算法,用于高效地生成候选的分割点。


=============

回复@肖岩在评论里的问题,因为有些公式放正文比较好。评论里讨论的问题的大意是 “xgboost代价函数里加入正则项,是否优于cart的剪枝”。其实陈天奇大神的slides里面也是有提到的,我当一下搬运工。
决策树的学习过程就是为了找出最优的决策树,然而从函数空间里所有的决策树中找出最优的决策树是NP-C问题,所以常采用启发式(Heuristic)的方法,如CART里面的优化GINI指数、剪枝、控制树的深度。这些启发式方法的背后往往隐含了一个目标函数,这也是大部分人经常忽视掉的。xgboost的目标函数如下:

这个公式形式上跟ID3算法(采用entropy计算增益) 、CART算法(采用gini指数计算增益) 是一致的,都是用分裂后的某种值 减去 分裂前的某种值,从而得到增益。为了限制树的生长,我们可以加入阈值,当增益大于阈值时才让节点分裂,上式中的gamma即阈值,它是正则项里叶子节点数T的系数,所以xgboost在优化目标函数的同时相当于做了预剪枝。另外,上式中还有一个系数lambda,是正则项里leaf score的L2模平方的系数,对leaf score做了平滑,也起到了防止过拟合的作用,这个是传统GBDT里不具备的特性。

‘叁’ 如何选择合适的分布式机器学习平台

如何为分类问题选择合适的机器学习算法 若要达到一定的准确率,需要尝试各种各样的分类器,并通过交叉验证选择最好的一个。但是,如果你只是为你的问题寻找一个“足够好”的算法或者一个起点,以下准则有利于选择合适的分类器

‘肆’ 如何评价Petuum分布式机器学习系统

机器学习算法和计算机领域的其他算法相比,有自己的一些独特特点,
(1)迭代性:模型的更新并非一次完成,需要循环迭代多次;
(2)容错性:即使在每个循环中产生一些错误,模型最终的收敛不受影响;
(3)参数收敛的非均匀性:模型中有些参数经过几个循环便不再改变,其他参数需要很长时间收敛。
这些特点决定了分布式机器学习系统的设计和其他分布式计算系统(例如Spark)的设计有很大不同。
Petuum是一个专门针对机器学习算法特点的分布式平台,而通用的分布式计算系统Spark以数据流应用为主,所以二者的应用对象不同。Spark有一个机器学习库MLLib, 但构建于数据流操作之上,并非针对机器学习算法的特点而设计。
Petuum的系统设计建立于机器学习的特征之上,目前包含两个主要模块:key-value store和scheler,主要处理两类并行化方法:(1)数据并行;(2)模型并行。
数据并行,简单而言,就是把数据分布到不同机器上,每台机器计算一个模型的更新(update), 然后对这些update进行汇总并用之更新模型。
模型并行,把模型参数进行切分并放置到不同机器上,每台机器对自己那部分进行更新。
Key-value store模块负责数据并行,采用的架构是parameter server,一致性协议是Staleness Synchronous Parallel (SSP)。SSP的基本思想是允许各机器以不同步调对模型进行更新,但是加一个限制,使得最快的机器的进度和最慢机器的进度之差不要太大。这样做的好处是:既减轻慢的机器拖整个系统的后腿,又能保证模型的最终收敛。通过调节SSP的staleness参数,SSP可以转化成数据流系统常用的BSP(Bulk Synchronous Parallel) 协议或者早期机器学习系统(如Yahoo LDA)使用的ASP(Asynchronous Parallel)。
另外一个模块scheler用于模型并行。scheler提供的编程接口主要包含三个操作:(1)schele: 调度节点根据模型参数的相互依赖性和收敛的不均匀性,自动选择一个待更新的参数子集;(2)push: 调度节点令计算节点并行地为选好的参数计算update;(3)pull:调度节点从计算节点收集update,并更新参数。
Petuum的主要特性包括:(1)高性能;(2)可编程性;提供了简单易用的编程接口,用户可在Petuum上实现自己的机器学习算法。(3)丰富的机器学习库。我们用Petuum的统一编程接口实现了14个重要的机器学习算法。
相比于李沐的parameter server系统,Petuum作为一个机器学习框架,共享参数模型采用哈希表存储,更新时采用延迟一致性协议,这种模型决定了Petuum在集群规模和可支持的参数数量上都要比Parameter Server少1到2个数量级,当然对比Spark MLLib列表数据存储和BSP同步模式,在相同集群规模下是可以多训练2到3个数量级的参数的。另外,Spark数据处理部分和Petuum其实没什么太大联系,前景的话,如果处理数据就直接spark吧,机器学习就直接Parameter Server好了。

‘伍’ 机器学习处理问题如何选择一个合适的算法

我们在进行数据分析或者数据挖掘工作的时候,总会遇到很多的问题,而解决这些问题的方式有很多。如果需要我们用机器学习来处理,那么就需要我们根据算法去选择一个合适的算法。但问题是,用机器学习处理问题,该如何选择一个合适的算法呢?下面我们就给大家介绍一下选择算法的流程,希望这篇文章能够更好地帮助大家理解机器学习。
选择算法是一个比较麻烦的事情,但是并不是不能选择,选择就需要我们十分细心,这样我们才能够选择出一个合适的算法,以便于我们更好的处理问题。选择算法首先需要分析业务需求或者场景,这一步完成以后,就需要我们初探数据,看看自己是否需要预测目标值,如果需要的话,那么就使用监督学习,当然,使用监督学习的时候,如果发现了目标变量,如果是离散型,那么就使用分类算法,如果是连续型,那么就使用回归算法。当然,如果我们发现不需要预测目标值,那么就使用无监督学习,具体使用的算法就是K-均值算法、分层聚类算法等其他算法。
当我们充分了解数据及其特性,有助于我们更有效地选择机器学习算法。采用以上步骤在一定程度上可以缩小算法的选择范围,使我们少走些弯路,但在具体选择哪种算法方面,一般并不存在最好的算法或者可以给出最好结果的算法,在实际做项目的过程中,这个过程往往需要多次尝试,有时还要尝试不同算法。但是对于初学者,还是根据上面选择算法的方式选择算法为好。
说完了选择算法的步骤,下面我们就说一下spark在机器学习方面的优势,在大数据上进行机器学习,需要处理全量数据并进行大量的迭代计算,这要求机器学习平台具备强大的处理能力。Spark与Hadoop兼容,它立足于内存计算,天然的适应于迭代式计算,Spark是一个大数据计算平台,在这个平台上,有我SQL式操作组件Spark SQL;功能强大、性能优良的机器学习库Spark MLlib;还有图像处理的Spark Graphx及用于流式处理的Spark Streaming等,其优势十分明显。
优势一:在完整的大数据生态系统中,有我们熟悉的SQL式操作组件Spark SQL,还有功能强大、性能优良的机器学习库、图像计算及用于流式处理等算法。
优势二:在高性能的大数据计算平台中,由于数据被加载到集群主机的分布式内存中。数据可以被快速的转换迭代,并缓存后续的频繁访问需求。基于内存运算,Spark可以比Hadoop快100倍,在磁盘中运算也比hadoop快10倍左右。
优势三:这个算法能够与Hadoop、Hive、HBase等无缝连接:Spark可以直接访问Hadoop、Hive、Hbase等的数据,同时也可使用Hadoop的资源管理器。
在这篇文章中我们给大家介绍了机器学习处理问题如何选择一个合适的算法以及spark算法的优势的内容,通过这篇文章相信大家已经找到了使用机器学习解决数据分析以及数据挖掘问题的方法了吧?希望这篇文章能够帮助到大家。

‘陆’ 写分布式机器学习算法,哪种编程接口比较好

SVM方面,首选的肯定是LIBSVM这个库,应该是应用最广的机器学习库了。 下面主要推荐一些DeepLearning的GitHub项目吧! 1. convnetjs - Star:2200+ 实现了卷积神经网络,可以用来做分类,回归,强化学习等。 2. DeepLearn Toolbox - Star:1000+ Matlab实现中最热的库存,包括了CNN,DBN,SAE,CAE等主流模型。 3. Deep Learning(yusugomo) - Star:800+ 实现了深度学习网络,从算法与实现上都比较全,提供了5种语言的实现:Python,C/C++,Java,Scala,实现的模型有DBN/CDBN/RBM/CRBM/dA/SdA/LR等。 4. Neural-Networks-And-Deep-Learning - Star:500+ 这是同名书的配套代码,语言是Python。 5. rbm-mnist - Star:200+ 这个是hinton matlab代码的C++改写版,还实现了Rasmussen的共轭梯度Conjugate Gradient算法。

‘柒’ 新兴机器学习之社会机器学习

机器学习发展到现在,已经衍生了很多新型的机器学习方法,比如说深度学习、强化学习等等,而这些方法都能够帮助大家更好的去理解机器学习。在这篇文章中我们给大家介绍一下一种新型的机器学习,那就是社会机器学习,听到这名字相信大家已经有所疑惑,什么是社会机器学习呢?下面我们就给大家介绍一下这个社会机器学习。
首先需要我们知道的是,机器学习的目的是模拟人类的学习过程。机器学习虽然取得很大的成功,但是到目前为止,它忽视了一个重要的因素,也就是人的社会属性。我们每个人都是社会的一个个体,不管怎么说,我们很难从出生就脱离社会独自生存、学习并不断进步。所以说我们是离不开社会的,当然,我们的机器学习也是不能离开社会的。既然人类的智能离不开社会,那么我们能否让机器们也具有某种意义的社会属性,模拟人类社会中的关键元素进行演化,从而实现比现在的机器学习方法更为有效、智能、可解释的社会机器学习?这个问题是一个十分新鲜的问题,引起了广大科学家的思考。
其实我们的社会中有很多人类个体组成的,要想发展机器学习,我们的社会机器学习也应该是有机器学习智能体构成的体系。而每一个机器学习算法除了按照现在的机器学习方法获取数据的规律,还参与社会活动。它们会联合其他的机器学习智能体按照社会机制积极获取信息、分工、合作、获得奖励。当然,我们还希望社会机器学习能够自主总结经验、学习知识、相互学习来调整行为。不过,令人满意的是,现如今的机器学习方法中已经开始出现有了社会的味道了。机器学习智能体之间最简单的行为影响也开始产生,其实这也可能是初步获取知识的方式。分布式机器学习算法中模型平均、模型集成、投票等方法是最简单的社会决策机制。强化学习提供了智能体基于酬劳反馈调整行为的框架。所以说由于社会属性是人类的本质属性,社会机器学习也将会是我们利用机器学习从获取人工智能到获取社会智能的重要方向。因此我们可以照着这个方向继续前进。
在这篇文章中我们给大家介绍了很多关于机器学习的相关知识,从中我们可以看出社会机器学习是一个十分新鲜的想法,相信在未来机器学习能够为我们解决更多的问题。

‘捌’ 如何利用机器学习和分布式计算对用户事件

给你解释一下这些术语:云计算:就是个炒得很热的商业概念,其实说白了就是将计算任务转移到服务器端,用户只需要个显示器就行了,不过服务器的计算资源可以转包。当然,要想大规模商业化,这里还有些问题,特别是隐私保护问题。大数据:说白了就是数据太多了。如今几兆的数据在20年前也是大数据。但如今所说的大数据特殊在哪呢?如今的问题是数据实在是太多了,这已经超过了传统计算机的处理能力(区别与量子计算机),所以对于大数据我们不得不用一些折衷的法(比如数据挖掘),就是说没必要所有数据都需要精确管理,实际上有效数据很有限,用数据挖掘的方法把这些有限的知识提取出来就行了。·此外,数据抽样,数据压缩也是解决大数据问题的一些策略。数据挖掘:从数据中提取潜在知识,这些知识可以描述或者预测数据的特性。有代表性的数据挖掘任务包括关联规则分析、数据分类、数据聚类等,这些你在任一本数据挖掘教材都可以了解。下面我说说和大数据的区别:数据挖掘只是大数据处理的一个方法。马云所说的大数据,或者如今商业领域所说的大数据,实际上指的就是数据挖掘,其实真正所谓大数据,或者Science杂志中提到的大数据,或者奥巴马提出的大数据发展战略,我的理解是,这些都远远大于数据挖掘的范畴,当然数据挖掘是其中很重要的一个方法。真正目的是如何将大数据进行有效管理。机器学习:这个词很虚,泛指了一大类计算机算法。重点是学习这个词,如果想让计算机有效学习,目前绝大多数方法都采用了迭代的方法。所以在科研界,只要是采用了这种迭代并不断逼近的策略,一般都可以归到机器学习的范畴。此外,所谓学习,肯定要知道学什么,这就是所谓训练集,从训练集数据中计算机要学到其中的某个一般规律,然后用一些别的数据(即测试集)来看看学得好不好,之后才能用于实际应用。所以,选取合适的训练集也是个学问。模式识别:意思就是模式的识别。模式多种多样,可以是语言,可以是图像,可以是事物一些有意义的模块,这些都算。所以总体来说,模式识别这个词我是觉得有点虚,倒是具体的人脸图像识别、声音识别等,这些倒是挺实在的。也许是我不太了解吧。另外说说你的其他问题。传统分析方法不包括数据挖掘。对于数据分析这块我不是很了解,不过可以肯定的是,传统分析都有一定的分析方向,比如我就想知道这两个商品的关联情况,那我查查数据库就行了。数据挖掘虽说有些历史,不过也挺时髦的,它是自动将那些关联程度大的商品告诉你,这期间不需要用户指定数据分析的具体对象。如果想应对大数据时代,数据挖掘这门课是少不了的。此外对数据库,特别是并行数据库、分布式数据库,最好了解点。至于机器学习和模式识别,这些总的来说和数据挖掘关系不太大,除了一些特殊的领域外。总之,概念挺热,但大数据还很不成熟,无论从研究上还是商业化上。我目前在作大数据背景下的算法研究,说实话,目前基本没有拓展性非常强的算法,所以未来大数据的发展方向,我也挺迷茫。PS:将数据挖掘应用于商业,最最重要的就是如何确定挖掘角度,这需要你对具体应用的领域知识非常了解,需要你有非常敏锐的眼光。至于数据挖掘的具体算法,这些就交给我们专门搞研究的吧!(对算法的理解也很重要,这可以把算法拓展到你的应用领域)

‘玖’ 构建机器学习系统的20个经验教训

构建机器学习系统的20个经验教训

数据科学家对优化算法和模型以进一步发掘数据价值的追求永无止境。在这个过程中他们不仅需要总结前人的经验教训,还需要有自己的理解与见地,虽然后者取决于人的灵动性,但是前者却是可以用语言来传授的。最近Devendra Desale就在KDnuggets上发表了一篇文章,总结了Quora的工程副总裁Xavier Amatriain在Netflix和Quora从事推荐系统和机器学习工作时所总结的20条经验教训。
更多的数据 & 更好的模型
并不是数据越多结果就越好,高质量的数据才能产生高质量的结果。多并不意味着好,事实上,有些情况下较少的数据反而效果更好,因此数据要适量,质量要高。

可能并不需要所有的大数据
组织可能积累了不同种类的大数据,但是并不是每一个场景都会用到所有的数据。大部分情况下,通过一些样本数据就能获得比较好甚至是比使用全量数据更好的效果。

有时候更复杂的模型并没有带来任何提升,但这并不意味着就不需要它了
如果将一个线性模型的特征数据作为另一个更复杂模型(例如非线性模型)的输入,而复杂模型产生的结果并没有任何提升,那并不意味着这个复杂模型就毫无意义。因为通常情况下只有更复杂的特征数据才需要更复杂的模型,对于简单的特征数据复杂模型往往难以发挥出自身优势。

学会处理展现偏见
系统通常会将那些预测的比较正确的结果展示给用户,用户会选择性的查看,但是用户不看的那部分并不一定就毫无吸引力。更好的选择是通过关注模型或者MAB分析用户的点击概率,合理地呈现内容。

认真思考训练数据
构建训练和测试数据的时候需要充分考虑结果和各种不同的场景。例如,如果要训练一个预测用户是否喜欢某部电影的分类器,那么产生数据的可能场景包括:用户看完电影并给出了一星的评价,用户看了5分钟、15分钟或者一小时之后离开,用户再次查看电影等,如何选择这些数据是需要经过深思熟虑的。

UI是用户与算法通信的唯一方式
系统通过UI展现算法结果,用户通过UI提供算法反馈,它们应该是相互对应的关系,任何一个发生变化另一个也需要进行改变。 数据和模型是否已经足够好了?

要有正确的评估方法
产品决策始终应该是数据驱动的。对于不同的问题,要选择正确的评估方法,例如,通过A/B测试来衡量不同特征数据,不同算法的优劣;通过脱机测试使用 (IR) 度量测试模型的性能。

分布式算法重要,但是理解它的分布式程度更重要
分布式/并行算法分三级:第一级针对总体的每一个子集,第二级针对超参数的每一种组合,第三级针对训练数据的每一个子集,每一级都有不同的要求。

慎重地选择超参数
要选择正确的度量标准自动化超参数的优化。 有些事情能线下做,有些不能,有些介于两者之间,为此需要支持多层次的机器学习。
隐式信号几乎总是打败显式信号
许多数据科学家认为隐式反馈更有用。但真的是这样么?实际上有些情况下结合不同形式的隐式和显式信号能更好地表示长期目标。

模型会学习你教给他的内容
机器学习算法并不是一个随意的过程,它的每一步都涉及到科学方法。模型要从训练数据、目标函数和度量中学习。

有监督的 + 无监督的学习
开发模型的时候不能简单地选择有监督的或者无监督的学习,它们各有长处,适用场景不同,用户需要根据具体情况同时迭代地使用它们,通过两种方法的融合获得更好的效果。
所有的事情都是一种集成(Ensemble)
使用机器学习的大部分应用程序都是一个集合体。你可以添加完全不同的方法(例如CF和基于内容的方式),你也可以在集成层使用许多不同的模型(例如LR、GDBT、RF和ANN)。
一个模型的输出可能是另一个模型的输入
确保模型的输出具有良好的数据依赖关系,例如可以容易地改变值的分布而不影响依赖它的其他模型。要尽量避免反馈循环,因为这样会在管道中造成依赖和瓶颈。另外,机器学习的模式设计也需要遵循最佳的软件工程实践,例如封装、抽象、高内聚和松耦合。

特征工程的失与得
良好的机器学习特征可重用、可转换、可解释并且可靠。捕获的特征越好,结果越精确。为了量化数据的属性必须将维度翻译成特征。

机器学习基础设施的两面性
任何机器学习基础设施都需要考虑两种不同的模式。模式1:机器学习实验需要扩展性、易用性和可重用性。模式2:机器学习产品不仅需要模式1的特性,还需要性能和可伸缩性。理想情况下,应该保持这两种模式尽可能地相近。

要能回答有关于模型的问题
必须能够向产品所有者解释模型的行为,知道如何使用模型,它需要哪些特征,导致失败的原因是什么;同时还需要知道产品所有者或投资者的期望,能够向他们介绍模型为产品带来了什么价值。

不需要分发机器学习算法
Hadoop/Spark这些“容易的”分布式计算平台也有一些陷阱,例如成本和网络延迟,实际上有些情况不使用它们也能很好的完成工作,通过智能数据样本、离线模式以及高效的并行代码等方法训练模型所花费的时间甚至比这些分布式平台要少的多。

数据科学 vs. 机器学习工程不为人知的故事
拥有强大的能够挖掘数据价值的数据科学家是非常值得的。但是既懂数据又有扎实工程技能的数据科学家非常稀少,通常情况下,构建数据科学家团队和机器学习工程团队并让他们通力配合才是比较好的方案。

‘拾’ 机器学习的研究方向有哪些,刚上研一,大方向是机器学习,有懂的人可以推荐介绍一个具体的研究方向,参考

近年来,有很多新型的机器学习技术受到人们的广泛关注,也在解决实际问题中,提供了有效的方案。这里,我们简单介绍一下深度学习、强化学习、对抗学习、对偶学习、迁移学习、分布式学习、以及元学习,让大家可以明确机器学习的方向都有哪些,这样再选择自己感兴趣或擅长的研究方向,我觉得这是非常理智的做法。
▌深度学习
不同于传统的机器学习方法,深度学习是一类端到端的学习方法。基于多层的非线性神经网络,深度学习可以从原始数据直接学习,自动抽取特征并逐层抽象,最终实现回归、分类或排序等目的。在深度学习的驱动下,人们在计算机视觉、语音处理、自然语言方面相继取得了突破,达到或甚至超过了人类水平。深度学习的成功主要归功于三大因素——大数据、大模型、大计算,因此这三个方向都是当前研究的热点。
在过去的几十年中,很多不同的深度神经网络结构被提出,比如,卷积神经网络,被广泛应用于计算机视觉,如图像分类、物体识别、图像分割、视频分析等等;循环神经网络,能够对变长的序列数据进行处理,被广泛应用于自然语言理解、语音处理等;编解码模型(Encoder-Decoder)是深度学习中常见的一个框架,多用于图像或序列生成,例如比较热的机器翻译、文本摘要、图像描述(image captioning)问题。
▌强化学习
2016 年 3 月,DeepMInd 设计的基于深度卷积神经网络和强化学习的 AlphaGo 以 4:1 击败顶尖职业棋手李世乭,成为第一个不借助让子而击败围棋职业九段棋手的电脑程序。此次比赛成为AI历史上里程碑式的事件,也让强化学习成为机器学习领域的一个热点研究方向。
强化学习是机器学习的一个子领域,研究智能体如何在动态系统或者环境中以“试错”的方式进行学习,通过与系统或环境进行交互获得的奖赏指导行为,从而最大化累积奖赏或长期回报。由于其一般性,该问题在许多其他学科中也进行了研究,例如博弈论、控制理论、运筹学、信息论、多智能体系统、群体智能、统计学和遗传算法。
▌迁移学习
迁移学习的目的是把为其他任务(称其为源任务)训练好的模型迁移到新的学习任务(称其为目标任务)中,帮助新任务解决训练样本不足等技术挑战。之所以可以这样做,是因为很多学习任务之间存在相关性(比如都是图像识别任务),因此从一个任务中总结出来的知识(模型参数)可以对解决另外一个任务有所帮助。迁移学习目前是机器学习的研究热点之一,还有很大的发展空间。
▌对抗学习
传统的深度生成模型存在一个潜在问题:由于最大化概率似然,模型更倾向于生成偏极端的数据,影响生成的效果。对抗学习利用对抗性行为(比如产生对抗样本或者对抗模型)来加强模型的稳定性,提高数据生成的效果。近些年来,利用对抗学习思想进行无监督学习的生成对抗网络(GAN)被成功应用到图像、语音、文本等领域,成为了无监督学习的重要技术之一。
▌对偶学习
对偶学习是一种新的学习范式,其基本思想是利用机器学习任务之间的对偶属性获得更有效的反馈/正则化,引导、加强学习过程,从而降低深度学习对大规模人工标注数据的依赖。对偶学习的思想已经被应用到机器学习很多问题里,包括机器翻译、图像风格转换、问题回答和生成、图像分类和生成、文本分类和生成、图像转文本和文本转图像等等。
▌分布式学习
分布式技术是机器学习技术的加速器,能够显着提高机器学习的训练效率、进一步增大其应用范围。当“分布式”遇到“机器学习”,不应只局限在对串行算法进行多机并行以及底层实现方面的技术,我们更应该基于对机器学习的完整理解,将分布式和机器学习更加紧密地结合在一起。
▌元学习
元学习(meta learning)是近年来机器学习领域的一个新的研究热点。字面上来理解,元学习就是学会如何学习,重点是对学习本身的理解和适应,而不仅仅是完成某个特定的学习任务。也就是说,一个元学习器需要能够评估自己的学习方法,并根据特定的学习任务对自己的学习方法进行调整。

阅读全文

与分布式机器学习算法相关的资料

热点内容
文件包文件夹 浏览:591
主角每次死亡都会变成另一个人 浏览:807
浪潮服务器如何调整凭证的尺寸 浏览:908
监控源码怎么打开 浏览:597
88影视打不开了 浏览:515
青岛办离婚用什么app 浏览:738
查询坐标命令 浏览:991
教孩子学编程ppt 浏览:813
77服务器怎么找 浏览:991
国外免费电影网站 浏览:914
java负数二进制 浏览:670
单片机多字节加减程序 浏览:151
手机网店用什么APP好 浏览:926
周星驰粤语资源 浏览:520
莱美健身教练app叫什么 浏览:887
有道词典forlinux 浏览:203
汇开优店的代理app叫什么 浏览:141
如何体验原生态的安卓 浏览:847
精致lee滤波源码 浏览:851
美颜都用什么app 浏览:139