今天的文章大神请忽略,主要是针对对机器学习一些关键概念还比较模糊的同学,希望通过这篇文章帮大家梳理
如果把机器学习的各种方式组合看成是机器学习家谱的话,这个家谱差不多有四个分支:
按学习时效性区分
按学习是否增量区分
按模型的深度学区分
按学习方式区分
看下整个的家谱结构图:
下面还是分别介绍一下~
这一点比较好理解,离线学习就是常规的机器学习方式,通过历史收集的数据去训练模型。实时机器学习指的是通过线上实时产生的数据训练模型,数据源通常会是Kafka这样的流式数据源,训练框架目前比较主流的是Flink、Spark-stream等。
增量式算法的重要性体现在2个方面:
1)在实际的数据库中,数据量往往是逐渐增加的,因此,在面临新的数据时,学习方法应能对训练好的系统进行某些改动,以对新数据中蕴涵的知识进行学习。
2) 对一个训练好的系统进行修改的时间代价通常低于重新训练一个系统所需的代价。
增量学习背后衍生的道理可以通过一个例子说明。在社会圈或者自然界,很多事物的底层原理都是相通的。比如一个人会下象棋,那么他很容易去学习下围棋,因为无论是象棋和围棋,底层的一些逻辑是相同的。在模型层面,如果一个模型已经具备了对象棋知识的理解,那么就可以用迁移学习的方式让它在原有基础上去学习围棋,而不是重头学习。
一句话形容,深度学习模型深度深,浅层学习模型深度浅。还有一种方法是利用深度学习的深和浅层学习的宽,就是推荐系统中常用的Wide&Deep。
有监督学习:训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。
无监督学习(unsupervised learning):训练样本的标记信息未知,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础,此类学习任务中研究最多、应用最广的是"聚类" (clustering),其他无监督算法还有:密度估计(densityestimation)、异常检测(anomaly detection) 等。
半监督学习:训练集同时包含有标记样本数据和未标记样本数据,不需要人工干预,让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能,就是半监督学习。
强化学习:通过一些行为产生的反馈来促使模型的演进。举个例子,比如做一个自动驾驶模型,当模型对汽车发出某些预测指令之后,汽车会有相应的回馈,比如正常驾驶 or 发生碰撞。通过不断的学习环境的反馈,找到对自己最有利的判断模式,就是增化学习的原理。