程序员人生 网站导航

迭代不等于学习,聚类分析也不等于机器学习

栏目:互联网时间:2014-10-19 08:00:00

【编者按】机器学习的核心在于“学习”。学习能力原本用于判断一个生命是否具有智能,而实现人工智能也必然需要机器具有学习能力,机器学习研究的目的是让机器像人一样,但是现在很多云计算企业包括一些初创公司利用机器学习为噱头,这可能会让很多人产生误解,作者以自己亲身经历阐述了什么叫做“机器学习”,Bill Franks是Teradata的首席分析官,本文来自SmartDataCollective。


CSDN推荐:欢迎免费订阅《Hadoop与大数据周刊》获取更多Hadoop技术文献、大数据技术分析、企业实战经验,生态圈发展趋势。


以下为原文:

大数据规模和复杂度的增长给现有IT架构以及计算能力带来了极大挑战,机器学习领域的研究为处理未来更加庞大和复杂的数据提供了可能性,然而“机器学习”这个词常常被误用甚至滥用。

生活中,一些机器学习领域的术语被越来越多的引用,比如模式识别、无监督学习等等。近年来,机器学习被广泛地应用到各行各业。我一直努力将许多传统的数据挖掘和统计算法应用到机器学习,这是有益的尝试,虽然大多数人还不太理解这些,很多时候,传统算法被贴上新标签以用于炒作,其中大多仅是对机器学习中的算法进行简单分类,实际上并没有从根本上作任何创新和改变。

机器学习研究的是怎样用计算机模拟或实现人类学习活动,机器学习的核心在于“学习”。学习能力原本用于判断一个生命是否具有智能,而实现人工智能也必然需要机器具有学习能力,机器学习研究的目的是让机器像人一样,通过外界环境的影响不断改进机器自身的性能,一台真正有学习能力的机器,应该做到随着机器解决问题的增多,机器的性能或解决问题的能力不断增强,而现在许多所谓的“机器学习”实际上不具备“学习”能力。

许多初创企业,特别是在云领域,经常宣传自身机器学习的能力,有时候,算法是不能从用户界面看到的,因此用户可能无法知道界面下的算法是怎样的运行机制。用户可能会误以为正在使用的某个新功能或算法已经接近人工智能,然而,如果他们知道他们花钱得到的只是一些处于早期、非常不成熟的工具,只是用来构建一个决策树的新方式,他们会怎么想?

也许我的看法有些过时,但我一直认为相比数据挖掘,机器学习更接近人工智能。关于机器学习,我一直想得到一种可以动态自我调整并了解如何应用新规则的算法,而这有别于像k-均值聚类分析的迭代算法。可以说聚类算法每一次传递后都进行了“学习”并动态调整,然而,预先设定的规则并不会改变。一旦k-均值算法开始迭代,最后的答案就被注定了,即使我们当时还不知道答案是什么,开始迭代后发生的所有结果都可以按照需求手动复制。K-均值算法使用固定的规则,而且算法从来没有“学会”用不同的方式解决问题。

与K-均值聚类算法类似,如今许多算法都被打上了机器学习标签,其实只是多用了一些迭代,这远远谈不上自适应或者“学习”。在高中时代,我第一次认识到真正的人工智能与一套复杂规则之间有着巨大的区别。在一次科学展览的项目中,我为我的电脑写了一段程序,让电脑玩Isolation――Isolation是在8 x 6网格上进行的游戏,玩家将他们的棋子移到一个开放的空格,然后找到下一个可以移动到的空格,在你被对手困住无法移动之前,你需要先把对手困住,最先困住对方的人获胜。

当我在玩这个游戏之前,我意识到在众多可以选择的空格中选择一个会对之后的两步或三步有战略意义,当然直接影响到下一步行动,考虑到这点要比那些只考虑一步的人有更大的胜算。我的计算机程序利用了这样的优势,该程序首先确定下一步它可以移动到的空格,接着,该程序考虑除了当前的这一步,下一步还有多少种可能的行动方案,当然程序还会考虑到下下步的行动方案,最后程序会从所有可能情况中选择一个最优的方案。

当我将我的程序放到科学展览上演示时,大多数人都感到惊讶,可能因为很多人没玩过这个游戏,我倒不觉得这个程序有多神奇,在我看来这就像是一个中等熟练的玩家打败一个新手一样,然而,很多人以为我的电脑真得有智能,特别是因为它的三个难度级别。难度级别之间的唯一区别是电脑会随机选择一个空格而不是选择最佳的策略,人们认为程序背后有智能算法,事实上只是一些复杂的规则集合。

我在程序中采用了一些简单的、重复性规则,足以使它可以在这样一个策略游戏中打败大多数人,然而计算机并不能真正地思考和学习,它只是需遵循我预先设定、迭代的规则。有句老话说“任何足够先进的技术都与魔法无异”。我开始怀疑将基于规则足够复杂的算法与人工智能或自适应机器学习区分开是不是真的很难?

判断是不是机器学习最关键的还是看“机器是否具备学习能力”。其实机器学习经常被误以为是机械学习,机械学习只是将外界环境提供的信息简单存储起来,没有推理过程,通过使用复杂的、基于规则的算法给人一种“智能”的错觉,实际上只是类似于“死记硬背”的学习方式。

真正的机器学习,不仅仅是存储信息这么简单,现实世界中信息包括语音信号、数字图像等,通常都是高维数据,为了正确地理解这些数据,就需要对这些信息进行处理――降维,找出隐藏在高维数据中的低维结构。从数据分析的角度来说,机器学习过程就是数据挖掘的过程,机器通过挖掘出外界环境数据中潜在的规律,从而“理解”数据,理解外界环境,也就达到了“学习”的境界。机器学习还应该具有演绎、归纳和类比的能力,比如演绎能力中最重要的方法就是经典的三段论(大前提:学生需要学习;小前提:小明是学生;结论:小明需要学习),只需要为机器提供大前提和小前提,机器就可能给出正确的结论;而归纳能力则需要机器通过归纳求解出对事物总的概念描述,类似于人类抽象思维的能力;类比能力是演绎和推理的结合,这是机器学习最关键的部分,利用相似性将已存储的信息与新事物进行匹配,检验相似程度,不断更新机器已有的知识库,以解决更多的问题。

我不明白将基于迭代规则的算法打上机器学习标签是不是一种营销的手段?因为有很多人只是跟风而已,他们不明白他们认为是学习和自适应的算法事实上只是一些复杂规则的集合。

原文链接:When Machine Learning Isn’t Learning  (编译/毛梦琪 责编/魏伟)

以“ 云计算大数据 推动智慧中国 ”为主题的 第六届中国云计算大会 将于5月20-23日在北京国家会议中心隆重举办。产业观察、技术培训、主题论坛、行业研讨,内容丰富,干货十足。票价优惠,马上 报名 ! 

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐