前言 1. 关于本书 2006年,我国在高等院校开展本科专业工程认证工作。其目的是更新教育观念,以产出为导向来重构课程体系,从根本上提升本科教学质量。中国工程教育专业认证协会修订的《工程教育认证标准》(2015版)明确提出本科培养目标应具备将专业知识用于解决复杂工程问题的能力。这就要求本科课程体系应互相衔接,形成层次,共同服务于专业培养目标。同时还需加强实践教学,提升学生的动手能力。 本书是作者编写的程序设计能力培养系列教材中的最后一本,前两本分别是《C++语言程序设计(MOOC版)》《Java语言程序设计(MOOC版)》。这三本教材针对计算机、软件工程、大数据、人工智能等本科专业工程认证,将程序设计能力培养划分为程序设计基础(初级)、应用程序开发(中级)和专业研究开发(高级)三个阶段,以C/C++作为 零基础入门语言,然后通过Java语言学习应用型编程开发,通过Python语言学习研究型编程开发。 这三个阶段互相衔接,并在实践内容上逐层递进、加强,使本科生在毕业时具备较高的应用和研究开发能力。 这本《机器学习及其Python实践》面向专业研究与创新能力培养,重点讲解机器学习的基本原理和前沿思想,而Python语言则作为开展机器学习编程实践的重要辅助工具。 2. 本书特色 系统性: 在讲解机器学习的同时充分补充相关基础知识(特别是数学知识),让机器学习的知识体系更加系统化,方便读者学习。 直观性: 通过背景介绍和动机分析,让机器学习的学术抽象重回问题本源,方便读者理解。 实用性: 在充分理解概念与原理的基础上开展Python编程实践(scikitlearn、TensorFlow 2),让书本知识落地,提高读者的动手能力。 3. 内容摘要 本书共8章,按顺序可分为三部分: 机器学习基础(第1~3章)、统计学习(第4~6章)、神经网络与深度学习(第7~8章)。全部内容均同步安排Python编程实践,并配有完整的示例代码(基于scikitlearn和TensorFlow 2)。 第1章为机器学习导论。本章讲解机器学习及其编程的基本概念,并补充相关的数学基础知识,最后介绍机器学习教学的三个层面(即设计、编程与应用)。学习要点: 数学模型及其编程、Python语言、最小二乘法、极大似然估计、随机变量与随机模型、数学符号与数学语言、Jensen不等式、可视化建模与数学建模、新冠疫情的SIR传染病模型、多元模型及其矩阵表示、函数向量/矩阵及其求导。 第2章为回归分析。本章以回归分析为主线,详细讲解机器学习过程中的基本概念、术语、算法步骤及Python编程实践。学习要点: Python编程环境与数据集、Anaconda/Jupyter集成开发环境的安装和使用、NumPy/Pandas/Matplotlib/scikitlearn库的使用、数据预处理、皮尔逊相关系数、onehot编码、MinMax和zscore标准化、训练集与测试集、梯度下降法、坐标下降法、均方误差、R方、模型评价与k折交叉验证、超参数与网格搜索法、正则化原理、岭回归与LASSO回归、换元法、人口增长模型与逻辑斯谛回归。 第3章为分类问题。本章讲解机器学习中的分类问题,并详细介绍几种经典的分类器模型,最后再进一步讲解机器学习中的特征降维。学习要点: 贝叶斯分类器、朴素贝叶斯分类器、概率分布的参数估计、逻辑斯谛回归分类器、牛顿法、二分类与多分类、交叉熵、k近邻分类器与距离度量、线性判别分析、特征空间与向量投影、决策树及其学习算法(ID3/C4.5/CART)、信息熵与基尼指数、分类评价的正确率/精确率/召回率/F1值/PR曲线/ROC曲线、特征降维、坐标变换及其矩阵表示、特征值分解、奇异值分解、PCA/KPCA/LDA/MDS/Isomap/LLE/SNE降维算法。 第4章为统计学习理论与支持向量机。本章重点讲解统计学习理论与支持向量机。学习要点: 经验误差与泛化误差、ERM/SRM归纳原则、ERM归纳原则一致性的充要条件、假设空间及其复杂度、增长函数与VC维、泛化误差的上界、影响泛化误差的因素、设计具有泛化能力的学习模型、PAC可学习、机器学习模型的方差与偏差、线性可分、线性/非线性支持向量机、拉格朗日乘子法与对偶问题、序列最小优化算法。 第5章为聚类问题。本章讲解机器学习中的聚类问题及相关的模型与算法。学习要点: 分类问题与聚类问题、混合概率模型及其参数估计、EM算法、高斯混合模型、三硬币模型、k均值聚类、密度聚类DBSCAN、向量量化等。 第6章为概率图模型与概率推理。本章介绍基于图的概率模型及其概率推理方法。学习要点: 逻辑推理与概率推理、生成式与判别式模型、贝叶斯网及其精确推理、和积消元算法、信念传播算法、蒙特卡罗仿真、马尔可夫链、轮盘赌采样算法、直接采样法、吉布斯采样、MH采样、平稳马尔可夫链及其充分条件、Metropolis准则、模拟退火算法、遗传算法、PageRank网页排名算法、概率向量与随机矩阵、隐马尔可夫模型(HMM)、前向算法与后向算法、Viterbi算法、BaumWelch算法、马尔可夫随机场(MRF)、条件随机场(CRF)。 第7章为神经网络基础。本章讲解神经网络及其应用,以及TensorFlow 2机器学习框架(含Keras高层接口)。学习要点: 生物神经元、MP神经元模型、感知机与Hebb学习规则、常用激活函数sigmoid/ReLU/tanh/softmax、小批量梯度下降法、多层前馈神经网络、输入层/隐层/输出层的功能与设计、基于特征/基于数据的机器学习、深度学习、梯度爆炸/梯度消失、过拟合、前向计算与反向求导、反向传播算法(BP算法)、RMSProp算法、Adam算法、批次标准化、早停、Dropout、TensorFlow 2下载与安装、张量及其运算、计算图与自动微分、使用TensorFlow底层接口/ Keras高层接口搭建神经网络模型。 第8章为深度学习。本章重点讲解卷积神经网络(CNN)、循环神经网络(RNN)、自编码器(AE)、生成对抗网络(GAN)等经典深度学习模型。学习要点: 滤波与卷积运算、局部连接与权值共享、池化、LeNet5卷积神经网络、词向量、RNN神经元与RNN网络层、LSTM神经元与LSTM网络层、自编码器与变分自编码器、KL散度、变分法与变分推断、生成对抗网络、DCGAN、WGAN与Wesserstein距离。 4. 使用建议 开设“机器学习”“统计学习”或相关课程的教师可将本书作为授课教材,并可免费获得配套教学课件等资源。参加在线课程学习的读者可将本书作为配套教材阅读。因作者水平所限,书中难免存在疏漏之处。如您发现错误,烦请邮件告知(404905510@qq.com),在此谨表衷心感谢。 如果将本书作为课堂教学用书,建议安排64学时(含8个实验学时)。如果只有48学时(含4个实验学时),则建议统计学习部分只选讲第4章; 如果只有32学时(无实验学时),则建议统计学习、神经网络与深度学习这两部分分别只选讲第4章和第7章。 5. 教学资源说明 本书提供丰富的教学资源,包括完整的教学视频、PPT课件、教学大纲、习题答案(含编程实践题)和所有Python 实现的源码。读者扫描封底“文泉课堂”涂层下的二维码、绑定微信账号之后,就可以 观看教学视频。从清华大学出版社官方微信公众号“书圈”( 见封底)可以下载其他资源。关于资源下载及使用中的问题,请联系404905510@qq.com。 6. 致谢 作者通过“学堂在线”“中国大学MOOC”等慕课平台 积累了一些在线课程教学的经验,所开设的“C++语言程序设计”课程被教育部认定为第一批“国家级一流本科课程”。作者将在 “学堂在线”平台 同步开设与本书配套的“机器学习及其Python实践”在线课程,供读者免费学习。 在本书的出版过程中,得到了清华大学出版社编辑的热情帮助和悉心指导,在此表示衷心的感谢。 最后,感谢家人的理解和支持。 作者2022年4月于北京