在计算机科学中,很多学科、名词之间是联系、关联、交叉在一起的,例如DB、AI、DM、ML、PR等,这是一则读书笔记,收集信息的解惑。
这里的一些关键词:
数据库(DataBase,DB)是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库的三个基本特点:永久存储、有组织、可共享
数据库管理系统(DataBaseManagementSystem,DBMS):用户与操作系统之间的一层数据管理软件,计算机的基础软件,在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行。
人工智能(ArtificialIntelligence,AI),它是研究、开发用于模拟、延伸和拓展人的智能的理论、方法、技术及应用系统的一门新的技术科学。即让机器的行为看起来像人表现的智能行为一样。其本质是用数据和模型为现有的问题提供解决方法。
AI是计算机自动做决策。做决策的原则可以是上面简单的条件判断,可以是穷举,也可以是多个因素连接成的网络,比如下图(称为贝叶斯网络,BayesianNetwork),这是一个通过判断是否有地震和盗窃的简单的智能系统。
机器学习(MachineLearning,ML)是一门多领域交叉学科,涉及概率论,统计学,逼近论,凸分析,算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。(M代表计算机程序(ComputerProgram)时,对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么就称这个计算机程序从经验E学习。)其本质是自动地从过往经验中学习知识,其重要应用就是预测。通过数据训练的学习算法的研究都属于机器学习。推理:从一般到特殊;归纳:从特殊到一般。
这是一个网络小游戏,你在心中想一个人物,然后算法会问你一系列的一般疑问句(比如“这个人是科学家吗?”)你回答Yes或者No。若干个问题后,算法会知道你心中的人物是谁了(通常比你预计的要快)。
之所以说这是一个ML系统,是因为它不仅做决策下一个问题该问什么、已经问的问题和答案能推出什么结果,它还在不断地自我改进。比如说,我心中想的是亚运会的吉祥物阿和(几年前这个游戏推出时它肯定不知道阿和是谁),于是在很多个问题过后,这个ML算法猜成喜羊羊了,然后我告诉它“你猜错了,我想的是阿和”,于是,它会更新它的决策网络,增加阿和这个节点,改变各个概率值。下次有人想阿和的,它就可能猜中了。所以,从上面的例子可以看出,ML重点研究的是算法的学习过程,强调的是一个反馈的框架。一开始系统可能很弱智,但是经过长期训练后它能做出很高超的决策。
举个我的例子。比如说,我老板希望能做一个自动作曲的系统,要求能做莫扎特风格的钢琴奏鸣曲,而听起来不能像海顿和贝多芬。想一想这个决策规则就复杂得看似不可能实现,也许10000个IF…THEN…也不能实现。但是从ML的角度来思考,就变得有可能了。我可以把莫扎特已有的乐谱输入给系统,告诉它这是好结果;再把海顿和贝多芬的给系统,告诉它这是坏结果。然后就期待这个系统能够学到点什么。当然,真正实现起来设计这个学习框架是有难度的,不过ML是正确的思路。
数据挖掘(DataMining,DM),又称为资料勘探,数据采矿。他是数据库知识发现(KnowledgeDiscoveryinDatabase,KDD),中的一个步骤。数据挖掘一般是指从大量的数据中通过算法搜索隐藏在其中信息的过程。
数据挖掘和机器学习的区别和联系,周志华有一篇很好的论述《机器学习与数据挖掘》可以帮助大家理解。数据挖掘受到很多学科领域的影响,其中数据库、机器学习、统计学无疑影响最大。简言之,对数据挖掘而言,数据库提供数据管理技术,机器学习和统计学提供数据分析技术。
由于统计学往往醉心于理论的优美而忽视实际的效用,因此,统计学界提供的很多技术通常都要在机器学习界进一步研究,变成有效的机器学习算法之后才能再进入数据挖掘领域。从这个意义上说,统计学主要是通过机器学习来对数据挖掘发挥影响,而机器学习和数据库则是数据挖掘的两大支撑技术。从数据分析的角度来看,绝大多数数据挖掘技术都来自机器学习领域,但机器学习研究往往并不把海量数据作为处理对象,因此,数据挖掘要对算法进行改造,使得算法性能和空间占用达到实用的地步。同时,数据挖掘还有自身独特的内容,即关联分析。
PR充满了工程的思维方式,“解决问题是关键,不关心系统在理论上是否最优”。比如人脸识别、癌细胞识别、语言识别、入侵检测等等,拿各种分类器(SVM、神经网络神马的)一个一个试,用最好的那个分类器来应用就OK了。
而模式识别和机器学习的关系是什么呢,传统的模式识别的方法一般分为两种:统计方法和句法方法。句法分析一般是不可学习的,而统计分析则是发展了不少机器学习的方法。也就是说,机器学习同样是给模式识别提供了数据分析技术。
至于,数据挖掘和模式识别,那么从其概念上来区分吧,数据挖掘重在发现知识,模式识别重在认识事物。
机器学习的目的是建模隐藏的数据结构,然后做识别、预测、分类等。
因此,机器学习是方法,模式识别是目的。
只要跟决策有关系的都能叫AI,所以说PR、DM、IR属于AI的具体应用应该没有问题。
研究的东西则不太一样,ML强调自我完善的过程。
CCRMA的JonathanBerger来北京演讲,他提到的sonification给我挺大的启发。他说:“我们买西瓜时拍一拍就知道西瓜是否熟了,因为人耳对于这种音色可以做决策,而机器目前还很难做到。监测工作很辛苦,比如核电站工作人员需要成天盯着很多很多数据,不停地做决策,判断是否出异常。为什么不能把数据通过某种算法变换出某种音色,工作人员只需要学习什么是正常的声音,什么是异常的声音,听就行了,这与听拍西瓜的声音是一样的道理。”