计 算机要像人类一样完成更多智能的工作,需要掌握关于这个世界海量的知识。比如,要实现汽车自动驾驶,计算机至少需要能够判断哪里是路,哪里是障碍物,这个对人非常直观的东西,对计算机却是相当困难的。路有水泥的、沥青的,也有石子的甚至土路。这些不同材质铺成的路在计算机看来差距非常大。如何让计算机掌握这些人类看起来非常直观的常识,对于人工智能的发展是一个巨大的挑战。很多早期的人工智能系统只能成功应用于相对特定的环境(specific domain),在这些特定环境下,计算机需要了解的知识很容易被严格并且完整地定义。例如,IBM研发的计算机“深蓝”(Deep Blue)在1997年打败了国际象棋冠军卡斯帕罗夫。设计出下象棋软件是人工智能史上的重大成就,但其主要挑战不在于让计算机掌握国际象棋中的规则。国际象棋是一个特定的环境,在这个环境中,计算机只需要了解每一个棋子规定的行动范围和行动方法即可。虽然计算机早在1997年就可以击败国际象棋的世界冠军,但是直到20年后的今天,让计算机实现大部分成年人都可以完成的汽车驾驶却仍然依旧十分困难。
如何让计算机可以跟人类一样从历史的经验中获取新的知识呢?这就是机器学习需要解决的问题。卡内基梅隆大学的Tom Mitchell教授在1997年出版的书籍《机器学习》(Machine Learning)中对机器学习进行了非常专业的定义:“如果一个程序可以在任务T上,随着经验E的增加,效果P也可以随之增加,则称这个程序可以从经验中学习”。学习是人类智能的重要特征,是获得知识的基本手段,而机器学习也是使计算机具有智能的根本途径,如香克(Shank)所说:“一台计算机若不会学习,就不能称为具有智能的。”除此之外,机器学习还有助于发现人类学习的机理和揭示人脑的奥秘。
机器学习大致可以分为以下步骤:数据采集、特征提取、特征组合评价、现状态与特征组合匹配。每一步骤都在整个学习过程充当重要的角色,对于机器学习来说,数据采集要达到一定的量,数据量太小会失去研究的意义,通常机器学习的数据采集需要交代数据的来源以及采集方式,不同的数据采集的困难程度不同。
特征选取与特征提取的关键区别在于:特征选取是从原特征集中选取一个子特征集,而特征提取则是在原特征集的基础上重新构造出一些(一个或多个)全新的特征。特征提取是决定整个机器学习的关键一步,一般来说数据都会经过一定的处理再进行机器学习,原始数据的计算量过于庞大,因此必须经过特征提取,特征提取的结果从根本上决定着机器学习的结果。不同学者对于特征设计有着不同的定义,但是好的特征变量都需要考虑到以下特性:第一,要尽可能地相对独立,以免影响到后面的计算量;第二,整个特征集合要尽可能形成一个完备的描述空间,即一个尽可能完备的描述空间下的特征,其能通过机器学习所提取信息的效率才能最大化;第三,在进行特征设计时要考虑到执行效率。
特征组合评价、现状态与特征组合匹配属于机器学习的核心部分,如果不能在特征上处理好计算量的问题,就需要设计更好的算法加快收敛速度。
总地来说,人工智能、机器学习和深度学习是非常相关的几个领域。图1-5总结了它们之间的关系。人工智能是一类非常广泛的问题,机器学习是解决这类问题的一个重要手段。
图1-5 人工智能与机器学习的关系