数学是机器学习和数据科学的基础,任何期望涉足相关领域并切实领悟具体技术与方法的人都无法绕过数学这一关。在一篇题为《放弃幻想,搞AI必须过数学关》的网文中,作者一针见血地指出想从事AI相关工作的人必须先搞好数学,并给出了三点理由:
-
首先,数学不过关的人在 AI 这个圈子里是无法参与交流的,或者说得直白一点,是被人瞧不起的,根本无法被接纳成为AI 圈子里的人。
- 其次,数学不过关而只能调参数的人,实践当中并不好用。我接触过几个 AI 创业企业,他们都疯狂的缺人,但是对于不懂数学只会使用工具的“人才”,他们却大门紧闭。什么原因?沟通效率低,出活慢,遇到问题无法解决,一句话,“不好用”。
- 第三,即便是调参这件事情本身,懂不懂数学也是有很大差别的。如果你数学不过关,对参数的意义和相关关系理解不深,方向感不强,只能半随机的去刷参数,那么工作的单调性和烦琐性还会大大上升,很难坚持到做出好的模型来。
更进一步,我还想指出“矫枉过正”和“只求易懂、不求甚解”两个极端或者误区:
- “矫枉过正”:简单说来,就是尽管数学很重要,但是不要跑题了,应该围绕机器学习来搞数学,而不是直接用研究数学来取代机器学习(那就本末倒置了)。机器学习学者张志华教授曾经说过:“搞好机器学习,关键是数学,但你又不能把机器学习变成搞数学,那样就漫无边际了。”数学浩瀚如海,神灵通天,我们还是要敬畏数学之神,不要毫无目标、不计成本的扩大数学的钻研,而是要把握好度。对于绝大多数 AI 工程师来说,还是应该以机器学习为主导,对于其中涉及的数学知识形成理解,打牢基础,突出重点,适度拓宽,这就算过关了。以后根据主攻方向,随用随学,急用先学,这样就可以了。
- “只求易懂、不求甚解”:这是另外一个极端。既然不能喧宾夺主,本末倒置,那我是不是就可以只蜻蜓点水地稍微了解一下,而不求甚解呢?事实上,很多文章或讲解中所谓的通俗易懂、戏说大话,少些公式,多些比喻等等,就是一味地迎合一些人想抄近路的惰性心理,本质上只不过是用小学程度的数学来麻醉你。儿歌三百首当然通俗易懂了,但问题是看了那个你的机器学习功力就能突飞猛进吗?如果把凸优化、拉格朗日乘数法、吉布斯采样、反向传播算法这些稍微上点难度的数学全部剔除,或只讲概念,不讲推导,这样的机器学习数学真的有用吗?有些东西你很难绕开,特别是跟机器学习息息相关的数学。你理解的程度,决定了你的眼界,决定了你在实践中解决问题的功力。
基于上述思考和指导思想,我编写了《机器学习中的数学修炼》一书(清华大学出版社)。本书自出版以来,多次加印,JD.com上累计有超过1000条购买评论(好评度99%)。日前,本书的姊妹版《Python机器学习中的数学修炼》也已正式出版发行(原版同步热销)。本书完全以机器学习为主导,系统地整理并介绍了机器学习中所涉及的必备数学基础,这些都是笔者从浩如烟海的数学知识中精心萃取的,在学习和研究机器学习技术时所必须的内容。具体包括微积分(主要是与最优化内容相关的部分)、概率论与数理统计、数值计算、信息论、凸优化、泛函分析基础与变分法,以及蒙特卡洛采样等话题。为了帮助读者加深理解并强化所学,本书还从上述数学基础出发进一步介绍了回归、分类、聚类、流形学习、集成学习,以及概率图模型等机器学习领域中的重要话题。其间,本书将引领读者循序渐进地拆解各路算法的核心设计思想及彼此间的关联关系,并结合具体例子演示基于Python进行实际问题求解的步骤与方法。真正做到理论与实践并重,让读者知其然更知其所以然。
特别感谢,青岛科技大学大数据学院副院长宋廷强教授、清华大学计算机系李兆麟教授、美国硅谷LoopTek公司创始人柯博文先生等业内知名专家的联袂推荐。
读者可以参考“清华大学出版社官网关于本书的介绍”来了解更多本书的具体细节,我们还给出了本书的详细目录,供读者参考,或者你也可以直接从清华大学出版社的官网上访问本书的“详细目录”。
如何购买?
另外,作者手头也有少量样书,对于有购书需求的读者,可以在QQ群(155911675)中联系店小二购买。需要入群购书的朋友,入群问题答案请直接填写“购书”。
勘误表:
P12
改为:
下面给出一个更为严谨的证明。假设是一个可微的凸函数,对于任意的和,有
然后把后续的变成即可。
参考链接(注意参考资料中是concave,书中的描述是convex,所以大于号小于号是相反的。)
P55
第一句“数学期望、方程、协方差都是矩”
应该改为“数学期望、方差、协方差都是矩”
P435
第三段“达朗贝尔给欧拉写信说明情况”
应该改为“达朗贝尔给拉格朗日写信说明情况”
第1章 最优化基础
1.1 泰勒公式
1.2 黑塞矩阵
1.3 正定与半正定矩阵
1.4 凸函数与詹森不等式
- 1.4.1凸函数的概念
- 1.4.2詹森不等式及其证明
- 1.4.3詹森不等式的应用
1.5 泛函与抽象空间
- 1.5.1线性空间
- 1.5.2距离空间
- 1.5.3赋范空间
- 1.5.4巴拿赫空间
- 1.5.5内积空间
- 1.5.6希尔伯特空间
1.6 从泛函到变分法
- 1.6.1理解泛函的概念
- 1.6.2关于变分概念
- 1.6.3变分法的基本方程
- 1.6.4哈密顿原理
- 1.6.5等式约束下的变分
第2章 概率论基础
2.1 概率论的基本概念
2.2 随机变量数字特征
- 2.2.1期望
- 2.2.2方差
- 2.2.3矩与矩母函数
- 2.2.4协方差与协方差矩阵
2.3 基本概率分布模型
- 2.3.1离散概率分布
- 2.3.2连续概率分布
2.4 概率论中的重要定理
- 2.4.1大数定理
- 2.4.2中心极限定理
2.5 经验分布函数
第3章 统计推断
3.1 随机采样
3.2 参数估计
- 3.2.1参数估计的基本原理
- 3.2.2单总体参数区间估计
- 3.2.3双总体均值差的估计
- 3.2.4双总体比例差的估计
3.3 假设检验
- 3.3.1基本概念
- 3.3.2两类错误
- 3.3.3均值检验
3.4 最大似然估计
- 3.4.1最大似然法的基本原理
- 3.4.2求最大似然估计的方法
第4章 采样方法
4.1 蒙特卡洛法求定积分
- 4.1.1无意识统计学家法则
- 4.1.2投点法
- 4.1.3期望法
4.2 蒙特卡洛采样
- 4.2.1逆采样
- 4.2.2博克斯-穆勒变换
- 4.2.3拒绝采样与自适应拒绝采样
4.3 矩阵的极限与马尔可夫链
4.4 查普曼-柯尔莫哥洛夫等式
4.5 马尔可夫链蒙特卡洛方法
- 4.5.1重要性采样
- 4.5.2马尔可夫链蒙特卡洛方法的基本概念
- 4.5.3米特罗波利斯-黑斯廷斯算法
- 4.5.4吉布斯采样
第5章 信息论基础
5.1 信息论中的熵
5.2 微分熵与Kullback-Leibler散度
- 5.2.1微分熵
- 5.2.2微分熵与香农熵的关系
- 5.2.3相对熵
5.3 率失真函数
5.4 香农下边界
第6章 一元线性回归
6.1 回归分析的性质
6.2 回归的基本概念
- 6.2.1总体的回归函数
- 6.2.2随机干扰的意义
- 6.2.3样本的回归函数
6.3 回归模型的估计
- 6.3.1普通最小二乘法原理
- 6.3.2一元线性回归的应用
- 6.3.3经典模型的基本假定
- 6.3.4总体方差的无偏估计
- 6.3.5估计参数的概率分布
6.4 正态条件下的模型检验
- 6.4.1拟合优度的检验
- 6.4.2整体性假定检验
- 6.4.3单个参数的检验
6.5 一元线性回归模型预测
- 6.5.1点预测
- 6.5.2区间预测
第7章 多元线性回归
7.1 多元线性回归模型
7.2 多元回归模型估计
- 7.2.1最小二乘估计量
- 7.2.2多元回归实例
- 7.2.3总体参数估计量
7.3 从线性代数角度理解最小二乘
- 7.3.1最小二乘问题的通解
- 7.3.2最小二乘问题的计算
7.4 多元回归模型检验
- 7.4.1线性回归的显著性
- 7.4.2回归系数的显著性
7.5 多元线性回归模型预测
7.6 格兰杰因果关系检验
第8章 线性回归进阶
8.1 更多回归模型函数形式
- 8.1.1双对数模型以及生产函数
- 8.1.2倒数模型与菲利普斯曲线
- 8.1.3多项式回归模型及其分析
8.2 回归模型的评估与选择
- 8.2.1嵌套模型选择
- 8.2.2赤池信息准则
8.3 现代回归方法的新进展
- 8.3.1多重共线性
- 8.3.2从岭回归到LASSO
- 8.3.3正则化与没有免费午餐原理
- 8.3.4弹性网络
- 8.3.5RANSAC
第9章 逻辑回归与最大熵模型
9.1 逻辑回归
9.2 牛顿法解Logistic回归
9.3 应用实例: 二分类问题
- 9.3.1数据初探
- 9.3.2建模
9.4 多元逻辑回归
9.5 最大熵模型
- 9.5.1最大熵原理
- 9.5.2约束条件
- 9.5.3模型推导
- 9.5.4极大似然估计
9.6 应用实例: 多分类问题
- 9.6.1数据初探
- 9.6.2建模
第10章 感知机与神经网络
10.1 从感知机开始
- 10.1.1感知机模型
- 10.1.2感知机学习
- 10.1.3多层感知机
- 10.1.4感知机应用示例
10.2 基本神经网络
- 10.2.1神经网络结构
- 10.2.2符号标记说明
- 10.2.3后向传播算法
10.3 神经网络实践
- 10.3.1建模
- 10.3.2Softmax与神经网络
第11章 支持向量机与核方法
11.1 线性可分的支持向量机
- 11.1.1函数距离与几何距离
- 11.1.2最大间隔分类器
- 11.1.3拉格朗日乘数法
- 11.1.4对偶问题的求解
11.2 松弛因子与软间隔模型
11.3 非线性支持向量机方法
- 11.3.1从更高维度上分类
- 11.3.2非线性核函数方法
- 11.3.3机器学习中的核方法
- 11.3.4默瑟定理
11.4 对数据进行分类的实践
- 11.4.1数据分析
- 11.4.2线性可分的例子
- 11.4.3线性不可分的例子
第12章 决策树
12.1 决策树基础
- 12.1.1Hunt算法
- 12.1.2基尼测度与划分
- 12.1.3信息熵与信息增益
- 12.1.4分类误差
12.2 决策树进阶
- 12.2.1ID3算法
- 12.2.2C4.5算法
12.3 分类回归树
12.4 决策树剪枝
12.5 决策树应用实例
第13章 集成学习
13.1 集成学习的理论基础
13.2 Bootstrap方法
13.3 Bagging与随机森林
- 13.3.1算法原理
- 13.3.2应用实例
13.4 Boosting与AdaBoost
- 13.4.1算法原理
- 13.4.2应用实例
13.5 梯度提升
- 13.5.1梯度提升树与回归
- 13.5.2梯度提升树与分类
- 13.5.3梯度提升树的原理推导
第14章 聚类分析
14.1 聚类的概念
14.2 k均值算法
- 14.2.1距离度量
- 14.2.2算法描述
- 14.2.3应用实例——图像的色彩量化
14.3 最大期望算法
- 14.3.1算法原理
- 14.3.2收敛探讨
14.4 高斯混合模型
- 14.4.1模型推导
- 14.4.2应用实例
14.5 密度聚类
- 14.5.1DBSCAN算法
- 14.5.2应用实例
14.6 层次聚类
- 14.6.1AGNES算法
- 14.6.2应用实例
14.7 谱聚类
- 14.7.1基本符号
- 14.7.2拉普拉斯矩阵
- 14.7.3相似图
- 14.7.4谱聚类切图
- 14.7.5算法描述
- 14.7.6应用实例
第15章 矩阵分解、降维与流形学习
15.1 主成分分析
15.2 奇异值分解
- 15.2.1一个基本的认识
- 15.2.2为什么可以做SVD
- 15.2.3SVD与PCA的关系
- 15.2.4应用示例与矩阵伪逆
15.3 多维标度法
第16章 贝叶斯定理及其应用
16.1 贝叶斯推断中的基本概念
- 16.1.1贝叶斯公式与边缘分布
- 16.1.2先验概率与后验概率
- 16.1.3共轭分布
16.2 朴素贝叶斯分类器原理
16.3 贝叶斯网络
- 16.3.1基本结构单元
- 16.3.2模型推理
16.4 贝叶斯网络的应用示例
16.5 隐马尔可夫模型
- 16.5.1随机过程
- 16.5.2从时间角度考虑不确定性
- 16.5.3前向算法
- 16.5.4维特比算法