近些年来,随着大数据、云计算、移动互联网、人工智能技术的兴起,“机器学习”成为了行业内炙手可热的一个名词。从通信互联网领域的专家,到各式各样的企业,甚至到普通的老百姓,都对“机器学习”技术略知一二。那么,机器学习到底是什么,它与我们常见的“人工智能”、“神经网络”、“数据挖掘“等相似概念都有什么关系?机器学习有那些基本分支、基本方法?在本文中,我们将用最简单易懂的语言解释这些问题。
问题一:“机器学习”和“人工智能”的关系是什么?
随着“机器学习”火起来的还有一个词语,即“人工智能”。每个人都肯定还记得不久以前的AlaphGo,随着机器打败围棋顶级高手李世石,人们也不得不感叹:“人工智能”时代真正到来了。
那么,“机器学习”和“人工智能”的关系到底是什么尼?其实,“人工智能”是一个很大的学科领域,里面包含很多子领域,如“机器学习”,“数据挖掘”,“模式识别”,“自然语言处理”等。这些子领域可能有交叉,但侧重点往往不同。比如”机器学习“就比较侧重于算法方面。总的来说,“人工智能”是一个学科领域,是我们研究的最终目的,而”机器学习“是这个领域中比较核心的,比较重要的,侧重于算法的一门学科,可以说,“人工智能”和“机器学习”是包含与被包含的关系。
问题二:“机器学习”和“神经网络”、“深度学习”的关系是什么?
最近,“神经网络”、“深度学习”等词大火,很多小伙伴可能就比较疑惑这二者和”机器学习“是什么关系。事实上。机器学习主要是研究各种算法的,经典的机器学习算法有几个大类:回归算法、决策树、贝叶斯算法、支持向量机、神经网络、聚类等等。看到这里大家应该懂了,“神经网络”只是“机器学习”诸多算法中的一种。在机器学习的多种算法中,可能随着时代的变化和技术的应用,在某一个特定的时间段里某一种特定的算法会比其他算法火爆,这也是为什么近几年许多即使不了解”机器学习“的人也对”神经网络“略有知晓的原因。
“深度学习”其实范围更小,它是“神经网络”算法中的一种。近几年随着计算能力的提高、计算数据量的增长,原本难以实现的“深度学习”算法反而很好地发挥了它的优势。近些年的一些机器学习任务也随着深度学习算法的发展而取得了更好的效果。
问题三:“机器学习”和“数据挖掘”的关系是什么?
随着大数据的发展,“数据挖掘”技术也进入了人们的视线。很多企业现在在招聘时,都会有“数据挖掘/机器学习工程师”这样一个岗位。翻看数据挖掘方面的书籍,有很大一部分内容讲的就是机器学习算法。那么,数据挖掘与机器学习又有什么不同尼?
首先,两者的侧重点有所不同。机器学习主要侧重于理论和算法,更注重于寻找更加高效简洁的算法,而数据挖掘更注重实际应用,比如更注重数据分析的流程、数据存储、算法选择等,可以说,数据挖掘是机器学习的一个实际应用。
在内容上来说,一般可以认为成:数据挖掘=机器学习+数据处理。也就是说,数据挖掘内容上比机器学习更广泛一点。不过二者还是各有所长。
以上我们可以说解释了机器学习、数据挖掘领域的初学者很容易混淆的几个问题,这就为机器学习开了个好头,下面我们就可以专门介绍机器学习领域的相关知识。
什么是机器学习?百度百科对机器学习有这样一个简单的解释:机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
我们姑且不用管百度百科上的定义是否特别准确,至少它把机器学习最基本的内容说出来了。它主要研究一些算法,这些算法可以让计算机模拟人类学习。它涉及到概率论、统计论、凸分析等等数学领域,是人工智能的核心。
这样看来,机器学习貌似很炫酷——可以让计算机模拟人类学习。有的小伙伴可能会觉得高深莫测,其实,一切模型的基础都是简单的有些愚蠢的。因此不要因为“模拟人类学习”一词就认为需要多么高大上的模式,最简单的机器学习算法基本上就在干两件事情:分类和回归。所谓分类,就是给定一个事物的一些参数,来判断它的类别,举个简单的例子:有一个人,他黑皮肤、卷头发、厚嘴唇,让你判断他来自亚洲、非洲、还是欧洲。很明显,一般人会判断他来自非洲。他一定来自非洲吗?不一定,但是他来自非洲的可能性是最大的。因此,如果将{黑皮肤、卷头发、厚嘴唇}这个属性组输入给计算机,它会自动”学习“并给出判断(他是个非洲人)。这就是一个分类的例子,回归的例子也很简单,一个班的学生按照大小身高排队,排好后如果给了前30个同学的身高值,那么推测第31个同学的身高应该也能推测个八九不离十。这就是分类和回归。其实,虽然人类的学习过程看似复杂,但往往也都是由无数个分类回归构成的。
一般,我们把机器学习算法分成3个大类,分别是:监督学习、非监督学习、半监督学习。下面我们依次简单介绍。
监督学习:监督学习就是需要一定的训练数据的学习方式。训练数据就是我们事先测试得到的即包含属性集又包含结果的数据。这种学习往往通过一定训练数据训练出一个“模型”,之后的只有属性集没有结果的数据可以将属性集套入到模型中,并得到其结果。就好比我们之前在脑子中训练出了”一个黑皮肤、卷头发、厚嘴唇“的人是非洲人这一模型后,再给我们一个有这样属性的人,我们自然会得到他是非洲人这样的结果一样。
监督学习是机器学习领域最庞大的一个分支,有多种迄今为止非常成功的算法族,如常见的决策树算法族、神经网络算法族、支持向量机算法族、贝叶斯算法族等。
非监督学习:非监督学习和监督学习相对应,是没有训练序列的,这种学习方式需要把数据全部拿来,然后靠“物以类聚,人与群分”。这好比有一群人,根据”肤色、发色“两个属性进行归类,发现有一群人肤色是白的,发色是金的,还有一群人肤色是黄的,发色是黑的,还有一群人肤色是黑的,发色是黑的,不需要训练,我们很自然地就把有不同属性的人归类到了一起。常见的非监督学习主要是聚类算法族。
半监督学习:半监督学习介于监督学习和非监督学习之间,它有一部分的训练数据,但数量较少。半监督学习通过这部分训练数据实现训练另一部分数据,然后将新训练的数据加入训练数据集中继续训练,这样不断迭代,就会慢慢产生一个庞大的训练数据集。半监督学习在很多领域有重要应用,因为有的时候,并不是很容易得到大量的带标记数据的。常见的半监督学习有半监督SVM,半监督图学习、半监督聚类等。
最后介绍一下数据分析的基本流程,并看一下机器学习处在什么位置。
数据分析主要是数据挖掘领域的内容,基本流程包括业务分析、数据初探、数据预处理、建立模型、模型评估、可视化呈现等几步。其中,前3步主要是一些准备工作,用于把得到的数据处理成易于建模的形式,我们的机器学习模型主要就体现在“建立模型”和“模型评估”这两步。在“建立模型”中,我们会根据处理好的训练数据,选择合适的机器学习算法进行建模,在“模型评估”中,我们会用测试数据对刚刚建立好的模型进行一个评估。常用的评估参数有查准率、查全率等,常用的评估方法有自助法、留出法、K折交叉验证法等。