前言
算法、数据和算力,是人工智能的“三大基石”,算法的优劣直接决定人工智能水平的高低,算法是人工智能项目的“灵魂”,人工智能的本质是算法。从计算机和电子信息类相关专业人才培养的角度,算法设计、分析、实现和应用的能力,是各个层次的专业人才都需具备的核心能力,是程序设计与实践创新能力提升的重要基础,反映了学生解决复杂工程问题、应用信息技术对实际问题进行建模和求解的必要素养。
在信息技术领域专业人才培养的过去、现在和未来,算法始终扮演着核心课程的重要角色。随着互联网、云计算、大数据、人工智能等技术的快速发展和广泛应用,算法的内涵不断演进,外延日益丰富,对算法课程的教学内容和教学模式提出了新的要求。培养学生解决复杂工程问题能力的迫切需求与算法课程的内容设置和教学模式之间,仍存在算法设计和编程实现衔接不够紧密、教学预期成效与学生能力达成不够契合、不同学习阶段算法知识的系统性不够清晰等方面的矛盾。
以计算为中心转变到以数据为中心,是当代计算机发展过程中发生的深刻变化。一方面,人工智能时代算法知识的学习,需要以传统的计算机算法为基础来建立算法设计与分析的基本理念,并面向实际中的智能数据分析需求来学习经典的数据挖掘和深度学习算法,把握当代人工智能模型和方法的基本思路。算法设计能力与程序设计能力的提升相辅相成,真正发挥算法在计算机和电子信息类专业人才核心能力培养中的关键作用,是从培养人工智能算法“驾驶员”到“造车人”的重要手段。另一方面,不同层次的读者对人工智能算法知识的需求也有很大差异,并不存在通用的学习模式、面面俱到的学习内容、一成不变的学习方法;算法理念、设计技巧、实现技术,是希望通过学习获得的最有价值的内容。
围绕以上背景和目标,既要保证人工智能算法知识体系的完整性和系统性,也要保证知识讲解从易到难和从简到繁,不陷入同一类算法的重复应用。本书聚焦智能数据分析任务,以“经典计算机算法—数据挖掘算法—深度学习算法”为主线,以算法伪码与包括核心代码的Python程序示例相结合的方式,旨在构建人工智能算法“思想—伪码—分析—实现”四位一体的知识传递和学习框架,达到举一反三、触类旁通的效果,培养学生的算法思维和工程能力。本书基于一个典型例子或经典问题介绍各类算法,给出问题背景、算法伪码和程序示例,注重算法设计与分析理念的传递,而不陷入技术的细节。
本书内容分3篇: 基础篇、提高篇和新技术篇。
基础篇介绍经典计算机算法,具体包括第1章的算法设计与分析基础、第2章的分治法、第3章的减治法、第4章的贪心法、第5章的动态规划法、第6章的回溯法、第7章的分支限界法。
提高篇介绍数据挖掘算法,具体包括第8章的分类算法、第9章的聚类算法、第10章的异常检测算法、第11章的频繁模式挖掘算法、第12章的链接分析算法、第13章的概率推理算法。
新技术篇介绍深度学习算法,具体包括第14章的人工神经网络和深度学习概述、第15章的降维算法、第16章的目标检测算法、第17章的问答系统算法、第18章的图分析算法。
作者提供了算法执行过程的演示动画,读者可扫描封底刮刮卡注册后再扫描书中二维码观看。此外,作者开发了基于Git的在线编程平台和案例库(https://case.artificialintelligencealgorithm.site/),基于GitHub开源项目托管平台、GitPod在线开发环境和VS Code编辑器,给出便于教师和学生使用、Python语言编写的在线案例(包括示例程序和自测练习),将算法的在线编程、自动测试、开源托管和持续集成无缝对接,可供本书读者免费使用,希望能成为本书内容的有益补充。我们也在不断完善在线案例,希望能在本书的使用过程中不断丰富,为使用本书的读者提供日益丰富的“赠品”。
本书既考虑了人工智能算法在基础、经典和前沿三方面内容的系统性,也考虑了人工智能算法在过去、现在和未来时间轴上技术发展和学习方式演变的延续性;既包括了人工智能算法学习和研究中常用的建模思路和设计技巧,也匹配了可供读者免费使用、基于Git平台的算法在线编程实现和案例库。本书的编写和出版,旨在为计算机和电子信息类相关专业本科生、研究生、职校生的算法、人工智能或机器学习等相关课程提供既能从理论层面理解,也能从实践层面实现人工智能算法的教材,可根据学生类别、课程性质、学分设置和学习目标等选择不同篇或章,也可作为人工智能相关领域研究和开发人员的参考书。
本书在策划和编写过程中,高等学校智能科学与技术/人工智能专业教材编委会专家、华东师范大学周傲英教授和周烜教授、中国科学院计算技术研究所史忠植研究员为本书提出了许多宝贵的意见和建议。清华大学出版社责任编辑张玥老师对本书的编辑出版工作给予了大力的指导和支持,付出了辛勤的劳动。云南大学信息学院、云南省智能系统与计算重点实验室为本书的编写提供了良好的设备和工作环境,云南大学数据与知识工程课题组的十余名教师和研究生给予了很多有益的帮助。在此,谨向每一位关心和支持本书编写工作的各方面人士一并表示衷心的感谢。
由于作者的知识和水平有限,对算法的理解和观点可能不够全面,书中错误和疏漏之处难免,恳请各位专家和读者批评指正,使本书不断改进。
作者
2022年1月