基本信息

【插图】

编辑推荐
全面贯穿人工智能整个软硬件技术栈
以应用驱动,形成智能领域的系统思维
前沿研究与产业实践结合,快速提升智能计算系统能力
内容简介
目录
序言一
序言二
前言
第1章概述1
1.1人工智能1
1.1.1什么是人工智能1
1.1.2人工智能的发展历史1
1.1.3人工智能的主要方法4
1.2智能计算系统8
1.2.1什么是智能计算系统8
1.2.2为什么需要智能计算系统8
1.2.3智能计算系统的发展8
1.3驱动范例11
1.4本章小结13
习题13
第2章神经网络基础14
2.1从机器学习到神经网络14
2.1.1基本概念14
2.1.2线性回归15
前言
随着智能产业的飞速发展,社会迫切需要大量高水平的人工智能人才。因此,我国近千所高校的计算机学院和信息学院都在培养人工智能方向的人才,而且我国已经有上百所高校开始设立专门的人工智能专业。可以说,我国人工智能高等教育的大幕正在徐徐拉开。今天,教育界对人工智能人才培养的决策,将会对历史产生深远的影响。因此,我们应当慎重思考一个关键问题:人工智能专业的高等教育需要培养什么样的人才?
有一种看法认为:人工智能专业只需要教学生如何开发智能应用和编写智能算法,至于运行这些应用和算法的计算系统,则不是教育的重点。这种看法,类似于汽车专业只需要教学生如何组装车辆,而不需要让学生理解发动机的机理;又类似于计算机专业只需要教学生如何写APP,而不需要让学生理解CPU和操作系统的机理。重应用、轻系统的风气,有可能使我国人工智能基础研究和产业发展处于“头重脚轻”的失衡状态。
与此形成鲜明对比的是,我们的国际同行对于智能计算系统的重视程度远远超过普通人的想象。仅以谷歌公司为例。众所周知,谷歌拥有全世界最大规模、最高水平、最全产品的智能应用和算法研究团队。仅谷歌一个公司就发表了2019年国际机器学习会议(ICML)近20%的论文,和整个中国相当。然而,当我们真正认真审视谷歌时就会发现,谷歌并不只是一个算法公司,它更是一个系统公司。谷歌的董事长JHennessy是国际最知名的计算机系统结构研究者,图灵奖得主;谷歌人工智能研究的总领导者JDean(每次谷歌I/O大会都是他代表谷歌介绍全公司的智能研究进展)是计算机系统研究者,著名的MapReduce分布式计算系统就出自他之手。谷歌在人工智能领域最令人瞩目的三个贡献——机器学习编程框架TensorFlow,战胜人类围棋世界冠军李世石的AlphaGo,以及谷歌自研的智能芯片TPU——也和系统有关,而非单纯的算法。
因此,人工智能专业的高等教育,应当培养人工智能系统或者子系统的研究者、设计者和制造者。只有实现这个目标,高校培养的人才才能源源不断地全面支撑我国人工智能的产业和研究。为了实现这个目标,人工智能专业的课程体系,不仅仅应当包括机器学习算法、视听觉应用等课程,还应当包括一定的硬件和系统类的课程。
事实上,国内有很多前辈和专家也意识到了这个问题。很多国内高校并不是主观上不想给学生开设面向人工智能专业的系统类课程,而是开设这样的课程有一些客观困难,不容易克服。毕竟智能计算系统是一个新兴的交叉方向,所涉及的知识非常新,老师们找不到现成的课程可以参考。事实上,即便是国际顶尖高校,过去也没有太多这方面的教学经验(例如,斯坦福大学2015年曾请我去讲授这个方向的短期课程)。另外,讲授智能计算系统课程所需要的背景知识也非常广泛,涉及算法、结构、芯片、编程等方方面面,能对这些知识都有全面涉猎的老师确实不多。
但是,在所有的困难中,大家一致认为,最关键的困难就在于没有现成的教材。教材是课程的基础,要上好一门课,没有合适的教材是不可能的。据我们了解,目前国际上也没有一本能全面覆盖人工智能计算系统(尤其是当代机器学习计算系统)新进展的教材。因为我们实验室在研究上涉及智能计算系统的各个方面,又在中国科学院大学、北京大学、北京航空航天大学等院校有讲授智能计算系统课程的经验,所以很多老师问我们,是否能编写一本内容较新、较全面的教材。于是,我们参考过去讲课的录音录像,整理形成了这本《智能计算系统》教材。希望这本教材能抛砖引玉,为高校开设面向人工智能专业的系统类课程提供微小的助力,为我国培养人工智能人才起到一点推动作用。
智能计算系统课程的价值
个人认为,智能计算系统课程对于学生、教师、高校,都具有重要的价值,能产生深远的影响。
对于学生来说,学习智能计算系统课程有助于形成系统能力和系统思维。系统能力可以帮助学生在就业市场中拥有更强的竞争力。在不久的将来,全国上百所开设人工智能专业的高校每年将培养出上万名学过智能算法的学生。到那时,如果一个学生只会算法调参,而对整个系统的耗时、耗电毫无感觉,不具备把一个算法在实际系统上部署起来的能力,找到好工作的难度会较大。而智能计算系统课程的学习,就能让学生真正理解人工智能到底是怎样运转的(包括一个人工智能算法到底如何调用编程框架,编程框架怎么和操作系统打交道,编程框架里的算子又是怎样在芯片上运行起来),就能使学生拥有亲手构建出复杂的系统或者子系统的能力。很自然地,就更容易在就业的竞争中脱颖而出。我曾经在网上看到一个段子:“会用TensorFlow每年挣20万元人民币,会写TensorFlow每年挣20万美元。”这个段子其实还是有一定的现实依据的。
而系统思维对于提高学生的科研能力有帮助。缺乏系统思维的学生很容易陷入精度的牛角尖中,把科学研究当成体育比赛来搞(别人做了97%的精度,我就要做98%;别人做了98%,我就要做99%),最后研究道路越走越窄。事实上,从系统角度看,评价智能的标准远不止精度一个维度。速度、能效、成本等都是很重要的维度,无论在哪一个维度上做出突破,都是非常有价值的研究。因此,近年来深度学习领域一些非常有影响力的工作如稀疏化、低位宽等,都是在提升整个智能计算系统的速度和能效上做文章,而不是只盯着精度不放。所以说,学习智能计算系统课程,能让学生形成系统思维,在科研道路上拥有更宽广的舞台。
对于教学科研人员来说,讲授智能计算系统课程,对于自己的科研能力也可能有很大的帮助。我自己担任任课教师时就发现,科研人员把一门课教好,自己的收获可能比学生还大。这也就是《礼记·学记》所说的“教学相长”。因为做科研只能让人对一个方向中的某些具体知识点很熟,而教学某种意义上逼着教师要对整个方向有全面的理解,这样反过来又能让科研的思路更开阔。智能计算系统课程覆盖面比较广,教好这门课受益尤其大,能使教师的知识面从软到硬更加全面。
对于高校管理人员来讲,系统研究已经成为人工智能发展的热点,在学科布局中应予以充分重视。2019年,一些国际顶尖高校和企业(如斯坦福大学、卡内基梅隆大学、加州大学伯克利分校、麻省理工学院、谷歌、脸书、英特尔、微软等)的数十位知名研究者(包括图灵奖得主YLeCun、美国科学院院士MJordan、美国工程院院士BDally、美国工程院院士JDean等)联合发布了一份白皮书——“SysML:The New Frontier of Machine Learning Systems”,展望了机器学习计算系统软硬件技术的未来发展。这充分体现出,在国际上无论是学术界还是工业界,都对智能计算系统高度关注。在这样的新兴热门方向尽早布局并培育一批教师,无疑对提升高校乃至我国在国际学术界的影响力有巨大帮助。
智能计算系统课程的内容
对于教学比较熟悉的教师可能会问:“智能计算系统这门课程涉及面太广,知识点太多,在一门课内学完是否难度太大?”是的,智能计算系统课程涉及算法、芯片、编程等方方面面,每个方面展开来都可以是自成体系的一门课。所有枝枝蔓蔓要在一门课、一个学期里学完是不可能的。因此,我们在设计智能计算系统这门课程时采用了两个原则:应用驱动,全栈贯通。课程以一个应用为牵引,在软硬件技术栈的各个层次,聚焦于完成这个应用所需要的知识。这样不仅能使教师在一个学期内把智能计算系统课程教完,还有以下两个好处。
第一,一门好的工程学科的课程应当是学以致用的。尤其是智能计算系统这样的课程,如果上完之后只学会了一些理论知识,那教学效果一定不理想。应用驱动可以让学生学完了课程,就能把课程知识在实践中用起来。第二,帮助学生形成系统性理解。过去计算机专业课程设计有个问题,就是条块分割明显,比如操作系统和计算机体系结构是割裂的,操作系统对计算机体系结构提出了什么要求,计算机体系结构对操作系统有哪些支持,没有一门课把这些串起来,打通学生知识的“任督二脉”。智能计算系统作为高年级本科生(或研究生)课程,通过应用的牵引,能帮助学生把过去所有的人工智能软硬件知识都串起来,形成整体理解。
具体来说,智能计算系统课程以图像风格迁移(例如,把一个实景照片转换成梵高风格的画)这一具体应用为牵引,来对整个智能计算系统软硬件技术栈做介绍。为此,本书的第1章将对人工智能、智能计算系统进行概述,同时介绍风格迁移这一贯穿全书的驱动范例。
接下来,课程讲述完成这个应用所必需的神经网络和深度学习算法知识。对于图像风格迁移不涉及的算法知识,课程就不做过度展开。这样在最多不超过6个学时内就能够把算法部分讲完。上述内容将在本书的第2、3章做介绍。
智能算法要在智能芯片上运行起来,还需要编程框架这一系统软件的支持。对上,编程框架降低程序员编写具体智能应用的难度;对下,编程框架将智能算法拆分成一些具体算子,并将算子分配到智能芯片(或者CPU)上运行。编程框架是很复杂的系统软件。但是实现图像风格迁移所需要的编程框架知识相对有限(比如说,TensorFlow编程框架中有上千个算子,但是风格迁移只涉及其中不到十分之一)。这样教师在6个左右的学时里,就可以教给学生如何使用主流的编程框架,以及编程框架内在的运行机理。上述内容将在本书的第4、5章做介绍。
编程框架再往下是智能芯片。由于传统CPU远远不能满足智能计算飞速增长的速度和能效需求,智能计算系统的算力需要由专门的深度学习处理器提供。开发一款能处理各种视频识别、语音识别、广告推荐、自然语言理解任务的工业级深度学习处理器,需要成百上千有经验的工程师数十个月的努力。但是,在这门课里,我们只需要考虑有限目标,即如何针对图像风格迁移这一具体应用来设计深度学习处理器,包括设计思想、设计方法、具体结构等。当然,为了让学生能了解业界前沿动态,本书也会介绍真正的工业级深度学习处理器的大致结构。这样教师在6个左右的学时里,就可以让学生比较系统地掌握深度学习处理器的基础知识。上述内容将在本书的第6、7章做介绍。
序言
序言一
未来20年或更长的时期内,人工智能将是科学技术和经济发展的重要方向,智能化技术有可能触发新一轮经济长波甚至第四次产业革命。世界各国都制定了发展人工智能技术和产业的长期规划,在这些规划中,适应智能化社会需求的人才培养都已被列为一项艰巨而紧迫的任务。
由于巨大的市场潜力和863等国家科技计划形成的长期科研积累,我国的人工智能应用和算法研究走在世界前列。但是,我国人工智能基础层、技术层和应用层的人才数量占比分别为33%、349%和618%,基础层人才比例严重偏低。这种现状是我国计算机领域长期不重视系统教育造成的。
我国近千所大学设立了计算机专业,近年来有上百所高校创办了人工智能专业。由于缺乏师资力量和合适的教材,目前一些学校的人工智能课程重点教授一些流行的机器学习算法和图像处理等应用,培养出来的学士、硕士和博士只会用算法调参数,并不真正理解人工智能应用到底是怎样运转起来的。对于人工智能算法究竟如何调用编程框架、编程框架如何与操作系统打交道、编程框架中的算子在芯片中如何运行,很多学生并没有清晰全面的理解。缺乏系统知识和系统思维,学到的知识点就是零碎的,没有打通“任督二脉”。到了毕业后参加实际工作,懂不懂系统知识带来的工作成效差别巨大。同样一个程序,一个普通的程序员来写和一个懂体系结构的人来写,性能可能差几万倍。
中国科学院计算技术研究所从1956年成立起就一直从事计算机系统研究。1990年依托中科院计算所成立的国家智能计算机研究开发中心继承了该所的学术传统,既做系统结构研究,又做人工智能理论、算法和应用研究。陈云霁、陈天石研究员领导的团队研制的“寒武纪”智能芯片就是在这样的环境中孕育出来的。看到国内人工智能系统人才十分短缺的现状,陈云霁研究员主动请缨,2018年在中国科学院大学率先主讲了“智能计算系统”课程,后来又在北大、北航、天大、中科大、南开、北理工、华科等高校独力或联合开设了同样的课程。2019年8月他办了一次导教班,全国40多所高校的60多位老师参加了这次导教班。他开的“智能计算系统”课程受到老师和学生的普遍欢迎。经过两年的打磨,这门课的内容已基本成熟。经过中科院计算所智能处理器研究中心多位同仁的努力,将讲课的录音整理成文字,形成了这本在国际上具有开创性的教材——《智能计算系统》。
一个完整的智能计算系统涉及芯片、系统结构、编程环境、软件等诸多方面,内容十分庞杂,要在一个学期讲完所有的内容十分困难。这本教材采用“应用驱动,全栈贯通”的原则,以“图像风格迁移”这一具体的智能应用为牵引,对智能计算系统的各层软硬件技术栈的奥妙和相互联系进行精确、扼要的介绍,使学生对系统全貌有一个深刻印象,达到举一反三、触类旁通的效果。
人工智能过去不是大学教育的必修课,培养人工智能专业的人才需要本科毕业后再花3~6年时间攻读硕士或博士才行。目前阻碍人工智能在各个行业落地的困难之一是人员成本太高,加速培养研究生只是解决困难的路径之一,但不能从根本上解决问题。对任何行业而言,技术人才的构成都是金字塔结构,而构成金字塔底层的技术人员主力应该是大学毕业生。因此,如何让大学毕业生在推广智能应用中发挥重要作用是本科教育应该考虑的问题。中国科学院大学启动了一个计划,让本科生在全开源的EDA工具链上设计出开源处理器芯片并完成流片,实现带着自己设计的芯片毕业的梦想。这本教材的初衷也是希望能培养更多懂智能计算系统的本科生,加速弥补人工智能的人才缺口。由于我国系统结构方向师资力量较薄弱,也许很多学校一开始会用这本教材上研究生课。希望通过大规模教学实践的检验,这本教材能进一步修改完善,成为一本被广泛采用的高年级本科生教材。
互联网服务业的发展得益于开源软件和公共开发平台,丰富的网络软件开发工具使得开发互联网APP成为一件很轻松的事情。同样,提供容易掌握的成套抽象化工具,可以大幅度降低人工智能的应用人才门槛。本教材除了讲述深度学习等智能算法和加速处理器外,特别用了两章篇幅详细阐述编程框架的使用和机理。所谓编程框架可以从两方面来理解:一方面将算法中的常用操作,如卷积、池化等,封装成“算子”,方便程序员直接调用;另一方面像操作系统一样,作为软硬件的界面,起到承上启下的作用。目前,我国的技术人员使用的编程框架基本上都是外国公司提供的开源软件,使用最多的是Google公司开发的TensorFlow。从长远来讲,如果中国的技术人员离不开外国公司的编程框架等开发平台,智能产业的发展一定不平衡、不协调。会用编程框架和会自己写编程框架是差别很大的两种本领。希望通过本课程的教学,中国能培养出可以自己创立编程框架的研发队伍,为技术领先、有市场竞争力的人工智能开源平台贡献中国的力量。
陈云霁研究员不但善于做基础研究,写了不少引领世界潮流的高水平论文,而且长期从事芯片设计工作,有丰富的工程实践经验。他主持编写的这本教材具有理论与实践相结合的特点。本书不但每一章都有从实践中总结出来的习题,而且专门安排了一个大实验,要求学完本课程的学生实际动手开发一个能完成图像风格迁移(如把一幅风景照片转换成梵高风格的画)的简单智能计算系统。国外一流大学的计算机系统课程都有较重的课程实验,国科大开设的操作系统等课程也配有大量的实验内容,学生们反映做实验的收获很大。“纸上得来终觉浅,绝知此事要躬行。”计算机系统方面的课程如果只是“纸上谈兵”,学生学到的知识往往是空洞的名词术语,毕业后仍然会“眼高手低”。希望采用本教材的学校尽量创造条件,让学生有动手做实验的机会。
中国工程院院士
2019年12月
FOREWORD
序言二
在上个世纪,我就曾指导学生开展神经网络计算系统的研究。几十年过去了,人工智能、神经网络、计算机系统结构等方向的研究和产业已经发生了翻天覆地的变化。但是有一点没有变化,那就是系统思维对于人工智能的重要性。
媒体评论
原中国科大计算机系主任,首届全国高校教学名师
培养具有系统思维的人工智能人才必须要有好的教材。在中国乃至国际上,对当代人工智能计算系统进行全局、系统介绍的教材十分稀少。因此,这本《智能计算系统》教材就显得尤为及时和重要。
李国杰中国工程院院士
中科院大学计算机学院院长,中国计算机学会名誉理事长
懂不懂系统知识带来的工作成效差别巨大。这本教材以“图像风格迁移”这一具体的智能应用为牵引,对智能计算系统的软硬件技术栈各层的奥妙和相互联系进行精确、扼要的介绍,使学生对系统全貌有一个深刻印象。
孙凝晖中国工程院院士
中科院计算所所长,国家智能计算机研发中心主任
中科院计算所的学科优势是计算机系统与算法。本书作者在智能方向打通了系统与算法,再将这些科研优势辐射到教学,写出了这本代表了计算所学派特色的教材。读者从中不仅可以学到知识,也能一窥计算所做学问的方法。
张宏江ACM/IEEE会士
北京智源人工智能研究院理事长,源码资本合伙人
作为北京智源研究院智能体系结构方向首席科学家,陈云霁领衔编写的这本教材,深入浅出地介绍了当代智能计算系统软硬件技术栈,其系统性、全面性在国内外都非常难得,值得每位人工智能方向的同学阅读。
张旭中国科学院院士
中科院上海分院副院长,中国神经科学学会理事长
《智能计算系统》是国内第一本计算机大类专业的智能系统教材,使学生能够融会贯通地理解智能计算系统的完整软硬件技术体系,在科研道路上拥有更宽广的发展空间。
张亚勤美国艺术与科学院院士
原百度公司总裁,清华大学智能科学讲席教授
这本教材深层次、全栈性地解析了AI的关键理论和技术,又通过一个图像风格迁移的实例生动地演示了AI的实践。《智能计算系统》是本好书,尤其适合作为本科高年级/研究生教材和科技人员的参考书,我大力推荐!
郑纬民中国工程院院士
清华大学计算机系教授,原中国计算机学会理事长