机器学习实践指南:案例应用解析
上QQ阅读APP看书,第一时间看更新

第一部分 准备篇

子贡问为仁。子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。”

——孔子

第1章 机器学习发展及应用前景

纵观国内软件工程师的发展路线,前期多以程序员(“码农”)、测试工程师、数据库管理员、多媒体技术员、网页与信息技术员等职业为主;中期主要是软件设计师、软件评测师、技术支持师等职业;后期是职业发展的黄金阶段,这一阶段对于拥有丰富技术经验的工程师来说十分重要,但这一阶段容易遭遇到技术发展瓶颈,因此,很多人将目光投向了项目管理和系统架构,比如:系统架构师、项目管理师等。

近年来,国内对机器学习的研究日益深入,应用领域不断扩大,催生了新的IT职位——机器学习工程师,百度、搜狗、阿里巴巴、淘宝、奇虎等国内IT巨头纷纷提出了对机器学习工程师的需求,掌握机器学习的人才成为了各大IT厂商争抢的“香饽饽”。机器学习迅速走红成为热门技术,这给软件工程师带来了绝佳的发展机遇,研究与应用机器学习算法成为了突破技术瓶颈的方式,机器学习工程师、项目管理师和系统架构师并称为后期发展的三大黄金职位。

1.1 机器学习概述

机器学习作为一门多领域的交叉学科,在近20年里异军突出。机器学习涉及概率论、统计学、微积分、代数学、算法复杂度理论等多门学科。通过可以让计算机自动“学习”的算法来实现人工智能,是人类在人工智能领域展开的积极探索。

2009年,被誉为人工大脑之父的雨果·德·加里斯教授走进清华大学讲堂,在两小时的演讲时间内,给大家描述了一个人工智能的世界:20年后,人工智能机器可以和人类做朋友,50年后,人工智能将成为人类最大的威胁,世界最终会因人工智能超过人类而爆发一场战争,这场智能战争也许会夺去数十亿人的生命。这样的描述并不是幻想,随着人类在人工智能领域取得的进步,这很有可能成为事实。而这一切主要归功于对机器学习的研究和探索。

1.1.1 什么是机器学习

学习是人类具有的一种重要智能行为。人类一直梦想机器能像人类一样学习,也一直在为这个终极目标努力。那么,什么是机器学习呢?长期以来众说纷纭,Langley(1996)定义机器学习为:“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”(Machine learning is a science of the artificial.The field's main objects of study are artifacts,specifically algorithms that improve their performance with experience.)。Mitchell(1997)在《Machine Learning》中写到:“机器学习是计算机算法的研究,并通过经验提高其自动进行改善”(Machine Learning is the study of computer algorithms that improve automatically through experience.)。Alpaydin(2004)提出自己对机器学习的定义:“机器学习是用数据或以往的经验,来优化计算机程序的性能标准”(Machine learning is programming computers to optimize a performance criterion using example data or past experience.)。

笔者综合维基百科和百度百科的定义,尝试着将机器学习定义如下:“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是人工智能的核心,是使计算机具有智能的根本途径。机器学习的研究方法通常是根据生理学、认知科学等对人类学习机理的了解,建立人类学习过程的计算模型或认识模型,发展各种学习理论和学习方法,研究通用的学习算法并进行理论上的分析,建立面向任务的具有特定应用的学习系统。”

1.1.2 机器学习的发展

早在古代,人类就萌生了制造出智能机器的想法。中国人在4500年前发明的指南车,以及三国时期诸葛亮发明的尽人皆知的木牛流马;日本人在几百年前制造过靠机械装置驱动的玩偶;1770年英国公使给中国皇帝进贡了一个能写“八方向化,九土来王”8个汉字的机器玩偶(这个机器人至今还保存在故宫博物院),等等。这些例子,都只是人类早期对机器学习的一种认识和尝试。

真正的机器学习研究起步较晚,它的发展过程大体上可分为以下4个时期:

第一阶段是在20世纪50年代中叶到20世纪60年代中叶,属于热烈时期。

第二阶段是在20世纪60年代中叶至20世纪70年代中叶,被称为机器学习冷静期。

第三阶段是从20世纪70年代中叶至20世纪80年代中叶,称为机器学习复兴期。

最新的阶段起始于1986年。当时,机器学习综合应用了心理学、生物学和神经生理学以及数学、自动化和计算机科学,并形成了机器学习理论基础,同时还结合各种学习方法取长补短,形成集成学习系统。此外,机器学习与人工智能各种基础问题的统一性观点正在形成,各种学习方法的应用范围不断扩大,同时出现了商业化的机器学习产品,还积极开展了与机器学习有关的学术活动。

1989年,Carbonell指出机器学习有4个研究方向:连接机器学习、基于符号的归纳机器学习、遗传机器学习与分析机器学习。1997年,Dietterich再次提出了另外4个新的研究方向:分类器的集成(Ensembles of classifiers)、海量数据的有教师学习算法(Methods for scaling up supervised learning algorithm)、增强机器学习(Reinforcement learning)与学习复杂统计模型(Learning complex stochastic models)。

在机器学习的发展道路上,值得一提的是世界人工大脑之父雨果·德·加里斯教授。他创造的CBM大脑制造机器可以在几秒钟内进化成一个神经网络,可以处理将近1亿个人工神经元,它的计算能力相当于10000台个人计算机。在2000年,人工大脑可以控制“小猫机器人”的数百个行为能力。

2010年以来,Google、Microsoft等国际IT巨头加快了对机器学习的研究,已经尝到了机器学习商业化带来的甜头,国内很多知名的公司也纷纷效仿。阿里巴巴、淘宝为应付大数据时代带来的挑战,已经在自己的产品中大量应用机器学习算法。百度、搜狗等已拥有能与Google竞争的搜索引擎,其产品中也早已融合了机器学习知识,360安全卫士的奇虎公司也意识到了机器学习的意义所在,这些大公司纷纷表现出对机器学习研发工程师的渴求。近几年正是机器学习知识在国内软件工程师群体中普及的黄金时代,也给软件工程师们进入机器学习这一金领行业带来了机遇。

1.1.3 机器学习的未来

展望未来,出现在《终结者》等系列电影上的场景终将成为现实,并将在未来的人类世界中频频上演。

目前人类已经进入了与高智能机器共同参与战争的新时代。据美国《航空周刊与空间技术》报道,X-47B验证机已经完成首飞。这款由诺斯罗普·格鲁曼公司为美国海军研制、外形极似B-2战略轰炸机的飞机,是世界上第一架完全由计算机控制的“无尾翼、喷气式无人驾驶飞机”,它意味着在未来的海空战场,将会出现无人机先出动,打击对方的防空阵地、雷达、机场等重要目标,而有人机编队则在战场外,负责拦截对方空中支援的战斗机的作战模式。这将彻底改变人类战争的方式。未来人类在机器学习研究领域的发展将会进一步推动机器人军队在战场上的应用。

此外,智能机器已经深入到人类的生活、工作中。在民用领域,能从医疗记录中学习的机器将会出现,它们能分析和获取治疗新疾病最有效的方法;智能家居高度发展,分析住户的用电模式、居住习惯后,打造动态家居,从而降低能源消耗、提高居住舒适度;个人智能助理跟踪分析用户的职业和生活细节,协助用户高效完成工作和享受健康生活。所有这些都将有智能机器的功劳。

不久的将来,人类也许该思考:在未来的世界里,机器人将充当什么样的角色,会不会代替人类呢?人类与智能机器之间应如何相处?

人类开始着手研究,如何才能更好地实现下面三大准则:

第一,机器人不可伤害人;

第二,机器人必须服从人的命令;

第三,机器人可以在不违背上述原则的情况下保护自己。

1.2 机器学习应用前景

机器学习应用广泛,无论是在军事领域还是民用领域,都有机器学习算法施展的机会。

1.2.1 数据分析与挖掘

“数据挖掘”和“数据分析”通常被相提并论,并在许多场合被认为是可以相互替代的术语。关于数据挖掘,现在已有多种文字不同但含义接近的定义,例如“识别出巨量数据中有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程”;百度百科将数据分析定义为:“数据分析是指用适当的统计方法对收集来的大量第一手资料和第二手资料进行分析,以求最大化地开发数据资料的功能,发挥数据的作用,它是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。”无论是数据分析还是数据挖掘,都是帮助人们收集、分析数据,使之成为信息,并作出判断,因此可以将这两项合称为“数据分析与挖掘”。

数据分析与挖掘技术是机器学习算法和数据存取技术的结合,利用机器学习提供的统计分析、知识发现等手段分析海量数据,同时利用数据存取机制实现数据的高效读写。机器学习在数据分析与挖掘领域中拥有无可取代的地位,2012年Hadoop进军机器学习领域就是一个很好的例子。

2012年,Cloudera收购Myrrix共创Big Learning,从此,机器学习俱乐部多了一名新会员。Hadoop和便宜的硬件使得大数据分析更加容易,随着硬盘和CPU越来越便宜,以及开源数据库和计算框架的成熟,创业公司甚至个人都可以进行TB级以上的复杂计算。Myrrix从 Apache Mahout项目演变而来,是一个基于机器学习的实时可扩展的集群和推荐系统。

Myrrix创始人Owen在其文章中提到:机器学习已经是一个有几十年历史的领域了,为什么大家现在这么热衷于这项技术?因为大数据环境下,更多的数据使机器学习算法表现得更好,机器学习算法能从数据海洋提取更多有用的信息;Hadoop使收集和分析数据的成本降低,学习的价值提高。Myrrix与Hadoop的结合是机器学习、分布式计算和数据分析与挖掘的联姻,这三大技术的结合让机器学习应用场景呈爆炸式的增长,这对机器学习来说是一个千载难逢的好机会。

1.2.2 模式识别

模式识别起源于工程领域,而机器学习起源于计算机科学,这两个不同学科的结合带来了模式识别领域的调整和发展。模式识别研究主要集中在两个方面:一是研究生物体(包括人)是如何感知对象的,属于认识科学的范畴;二是在给定的任务下,如何用计算机实现模式识别的理论和方法,这些是机器学习的长项,也是机器学习研究的内容之一。

模式识别的应用领域广泛,包括计算机视觉、医学图像分析、光学文字识别、自然语言处理、语音识别、手写识别、生物特征识别、文件分类、搜索引擎等,而这些领域也正是机器学习的大展身手的舞台,因此模式识别与机器学习的关系越来越密切,以至于国外很多书籍把模式识别与机器学习综合在一本书里讲述。

1.2.3 更广阔的领域

目前国外的IT巨头正在深入研究和应用机器学习,他们把目标定位于全面模仿人类大脑,试图创造出拥有人类智慧的机器大脑。

2012年Google在人工智能领域发布了一个划时代的产品——人脑模拟软件,这个软件具备自我学习功能,模拟脑细胞的相互交流,可以通过看YouTube视频学习识别猫、人以及其他事物。当有数据被送达这个神经网络的时候,不同神经元之间的关系就会发生改变。而这也使得神经网络能够得到对某些特定数据的反应机制,据悉这个网络现在已经学到了一些东西,Google将有望在多个领域使用这一新技术,最先获益的可能是语音识别。

与此同时,Google研制的自动驾驶汽车于2012年5月获得了美国首个自动驾驶车辆许可证,将于2015年至2017年进入市场销售,如图1-1所示。

图1-1 Google研制的自动驾驶汽车

自动驾驶汽车依靠人工智能、视觉计算、雷达、监控装置和全球定位系统协同合作,让电脑可以在没有任何人类主动操作的情况下,通过计算机自动安全地操作机动车辆,Google认为:这将是一种“比人更聪明的”汽车,不仅能预防交通事故,还能节省行驶时间、降低碳排放量。

2013年,Microsoft CEO高级顾问Craig Mundie在北京航空航天大学学术交流厅发表“科技改变未来”的主题演讲,Mundie在演讲中谈到了当今IT科技的三大挑战:大数据、人工智能和人机互动。他认为随着大数据时代的到来,人们的各种互动、设备、社交网络和传感器正在生成海量的数据,而机器学习可以更好地处理这些数据,挖掘其中的潜在价值。与此同时,他展示了微软研究院在机器学习方面的新产品——英语转汉语实时拟原声翻译,研究过计算语言学的朋友都知道自然语言理解与处理属于机器学习的问题,让计算机理解人类语言可以视同创造出一个机器,该机器拥有与人类一样聪明的智慧。

机器学习在军事上的应用更加广泛,智能无人机、智能无人舰艇、智能无人潜艇陆续研究成功或已投放战场,其他军事领域也有机器学习研究成果的应用,如:美国国防部高级研究计划局的电子战专家正在尝试推出利用机器学习技术对抗敌方的无线自适应通信威胁,其发布了一份概括性机构通告(DARPA-BAA-10-79),内容为“自适应电子战行为学习”计划(BLADE),以研发确保美国电子战系统能够在战场上学习自动干扰新式射频威胁的算法和技术。

1.3 小结

机器学习作为一门多领域交叉学科,该领域的主要研究对象是人工智能,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构,使之不断改善自身的性能,它是人工智能的核心,是使计算机具有智能的根本途径。

近年来,机器学习的研究与应用在国内外越来越重视。机器学习已经广泛应用于语音识别、图像识别、数据挖掘等领域。大数据时代的到来,使机器学习有了新的应用领域,从包含设备维护、借贷申请、金融交易、医疗记录、广告点击、用户消费、客户网络行为等数据中发现有价值的信息已经成为其研究与应用的热点。

我们以记者与雨果·德·加里斯教授的部分专访内容来结束这一章。

记者:为什么选择这个研究工作?

雨果·德·加里斯:对人类大脑的好奇心和人脑的想象力的好奇心。人类只是一个个分子构成的机器,像计算机的芯片一样,像编制程序一样。另一方面,作为生物人都会死亡消失的,但人工智能机器就不会。所以说,这个研究就像制造神一样。

当人类促使技术进步,让具有人工智能的机器人得以诞生和发展,但总有一天人工智能机器会实现自己进化,当这种技术达到一个奇点的时候,就不需要人类来推动了。比人类聪明得多的人工智能机器将在以年为单位的短时间里产生。

记者:预测一下未来人工智能机器的前景。

雨果·德·加里斯:下一个20年,它们很有可能出现在我们的家里,为我们打扫房间,照顾小孩,和我们聊天,给我们来自地球上知识库里面的无限知识。我们还将可以和它们有性关系,被它们教育,从它们那里得到娱乐和开怀大笑。20年后的大脑制造业,每年全球范围内将可能创造万亿美元的价值。人工智能机器有比我们聪明万亿倍的可能性,不夸张地说,人工智能机器和人类交流,就像人类试图和岩石交流一样艰难。不过,真正的人工智能在我死后的三四十年内不会被制造出来。我活着看不到工作的真正结果,这是让我沮丧和失望的一个根源。