原力君在系列的第三篇《人工智能系列(三) 人工智能主要研究哪些内容》里提到了人工智能的主要研究内容,其中认知建模、知识表示、知识推理是对人类智能模式的一种抽象,而机器感知、机器思维、机器学习、机器行为则是对人类智能的一种模拟实现,人工智能研究的最终要构建拟人、类人、超越人的智能系统。

其实人工智能不是个新话题,早在上世纪中叶之前就已经开始有人工智能的研究了。后来,人工智能是几起几落,在人们的狂热中爆发,在人们的失望中沉寂。而目前人工智能这么火爆,说起来的话,它的好好感谢深度学习等机器学习算法的成功应用又给人们带来了新的希望。

举几个简单的例子。当年阿尔法狗大战李世石和柯洁,以横扫的姿态力压群雄,让所有人西瓜掉了一地,从此"你下棋下的跟狗一样"成了一个赞扬;再看IBM超级电脑沃森,在美国最受欢迎的智力竞猜电视节目《危险边缘》中击败该节目历史上两位最成功的选手肯-詹宁斯和布拉德-鲁特,成为《危险边缘》节目新的王者,它的成绩比这两个牛人的成绩之和还要多。有人说了,这两个都是超级电脑,他们的服务器都可以占据一层楼了,不太现实。好吧,那我们说一个个头小的例子,谷歌无人驾驶车已经可以在大马路上像个老司机一样狂飙、换道、闪躲了;再说一个更小的,科大讯飞的翻译机可以实时让你和全球各种语言国家的人自如的交流了。

当然,以上成功案例并不仅仅使用了机器学习算法,还是用了机器感知、机器思维、机器行为、知识推理等人工智能技术,但是机器学习在里面起到了举足轻重的作用。目前阶段,甚至可以说机器学习起到了最大的作用。

机器学习这个叫法起源于1959年,美国的大牛Arthur Samuel第一次这么称呼这类可以让机器从数据中学习知识的方法。发展至今,机器学习出现了很多种定义,但是实践家们最喜欢的一种定义是:

对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么就称这个计算机程序从经验E中学习

从上面的表述,就可以感受到提出这个定义的人很NB。没错,他就是美国CMU的计算机科学家Tom Michael Mitchell,此处膜拜三分钟。在这个定义中,我们需要着重注意的几个关键词就是:任务T、性能度量P、经验E。

机器学习分类主要有监督学习、半监督学习、无监督学习、主动学习、和强化学习

传统的机器学习分类中并没有强化学习,原力君在这里参考最新的材料进行分类。当然,随着机器学习技术的进步,可能会出现更新的分类方式,此处不表。

监督学习,听上去好像是有个人监督机器一样。实际上,监督学习说的是机器用来学习的输入输出数据都有明确的对应关系。比如,给一张苹果的图片,对应的输出是苹果;给一张咬了一口的苹果图片,对应的输出是苹果;给一张挂在树上的苹果图片,对应的输出还是苹果。而机器要做的就是,利用这些图片以及每个图片对应的输出,来学习什么是苹果。在计算机中,这个学习到东西成为"模型"。在网络上,最常见到机器学习方法的就是监督学习,因为监督学习数据明确,输入输出明确,容易验证。

无监督学习,就比较厉害了,听上去就是没有人监督,你自己能学到什么就是什么吧。无监督学习用的数据没有标签,也就是所有的数据都是输入数据,没有对应的输出,没人告诉机器这是什么数据,用来干什么的。那么,机器能做的就是提取这些数据中的模式,或者结构。

半监督学习,听上去好像是有个人一会儿监督一会儿不监督。实际上,半监督学习说的是机器用来学习的输入数据,只有一部分有明确的输出数据,而另一部分没有。那么,机器只能利用有明确输入输出关系的数据,和剩下的没有对应输出的输入数据来学习模型。用百度百科的话说,半监督学习是监督学习与无监督学习相结合的一种学习方法。半监督学习使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作。因其所需人工比较少,同时准确性又比较高,半监督学习目前正越来越受到人们的重视,也是模式识别和机器学习领域研究的重点问题,。

主动学习,听上去就是机器学习欲望比较强烈,从"要我学"变成"我要学"。在实际工程中,有明确输入输出关系的数据相对比较少,而大部分数据都是机器的输入数据而输出数据未知。如果所有输入数据都要人工去给定输出数据,需要耗费大量人力物力,则不太现实。是否有一种方法,可以用来挑选最有价值的数据,从而可以减少人工成本?主动学习就是用来解决这一问题。主动学习利用已知输入输出关系的数据(我们称其为训练样本)进行学习,然后利用学习到的知识去判断那些没有对应输出的输入数据中,哪些更有助于它学习知识。这些更有价值的数据,会被主动学习算法"主动"推送给操作人员进行手动标注其输出数据,然后标注完成的数据再送回到算法的训练样本中,进行下一步的学习。

强化学习与前面所说的集中学习方法都有所区别。强化学习没有大量的数据,只有给定的几个动作。系统利用一定的策略,从给定的动作中选择一个动作去执行,然后接收任务环境反馈的数据,这个数据会被转化为一种"奖励值"或"惩罚值"。强化学习系统会根据奖励值或惩罚值的大小去改变动作,从而让返回的奖励值更大或惩罚值更小。对于某些相似的场景,系统所需要执行的最优动作往往也相似,强化学习系统在多次重复实验之后,就会学习到某个场景下最优的动作。这样,已经学习到足够经验的系统,以后就可以从容地应对相似的场景。

机器学习方法多种多样,适合的才是最好的

前面关于机器学习的分类,都在纠结学习过程中所使用的数据是预处理过的、没处理过的、算法主动要求处理的、或者奖励值惩罚值。但是,不管学习过程中所用的数据如何,我们最终得到的是一个"模型",而这个模型包含了机器学习到的知识。从另一个角度看,这个模型也包含了我们对所学知识的认识。这个知识的结构是明确的、模糊的、还是完全未知的?不同的知识结构,需要用到不同的方法去表征,从而会得到不同类型的模型。

从机器学习模型的基础来分,目前已有的机器学习方法涉及到线性回归、K-means、决策树、随机森林、主成分分析、关联规则、人工神经网络、归纳逻辑、支持向量机、聚类分析、贝叶斯网络、相似性度量、稀疏字典等等。

基于人工神经网络的学习方法,尤其是其中的深度学习方法,目前最受人们欢迎。这主要是因为计算机硬件技术有了更进一步的发展,GPU/TPU加速计算技术让深度学习的速度大大提高。另外,深度学习得到的模型在实际中应用效果令人满意,也是一个很重要的原因。

老规矩,一句话总结:机器学习有监督学习、无监督学习、半监督学习、主动学习、强化学习这5种学习方式;而根据所学知识(或模型)结构不同,可以使用诸如神经网络、决策树、规则、贝叶斯网络等方法去构建学习算法;深度学习目前可以说是一种基于神经网络的学习方法。

查看原文 >>
相关文章