参考文档 · 速查
第 3 章术语表
每个术语给三样东西:中英文对照、一句大白话、以及它在原书里的出处。设计成可以打印的一页纸。
用的时候别看整页——卡在哪个词就查哪个词。右边的编号是它在讲义 / 原书里的位置。
基本概念
- 线性模型 linear model3.1
- 假设输出是各属性的加权求和再加一个偏置:f(x) = wTx + b。它只能表达"直"的关系(直线、平面、超平面)。
- 权重 weight / 偏置 bias3.1
- 权重 wi 表示第 i 个属性的重要程度(其他属性不变时,该属性每变 1 个单位,预测值变多少)。偏置 b 是"不管属性是什么都先垫的底",没有它模型必须穿过原点。
- 可解释性 comprehensibility3.1
- 能直接读懂模型为什么这么判断。线性模型的可解释性来自"权重的大小 = 重要性排序"(但前提是各特征尺度相近)。
- 非线性模型 nonlinear model3.1
- 不能写成加权求和的模型。常见做法是在线性模型外面套非线性函数(3.2 结尾),或者堆很多层(第 5 章)。
线性回归
- 线性回归 linear regression3.2
- 用线性模型做回归任务(输出是连续实数)。
- 多元线性回归 multivariate linear regression3.2
- 样本有 d 个属性时的线性回归,即 f(x) = wTx + b。
- 均方误差 mean squared error / square loss3.2 · 式 3.4
- 把所有样本的误差平方求和:∑(yi − f(xi))2。它是回归任务最常用的"差"的度量。
- 最小二乘法 least square method3.2
- 以"最小化均方误差"为目标来求参数的方法。在线性回归里,它就是"找一条让所有样本到直线的竖直距离平方和最小的直线"。用途不限于线性回归。
- 闭式解 closed-form solution3.2 · 式 3.7、3.12
- 能直接用公式一步算出来的解(相对"只能迭代逼近的数值解")。线性回归有闭式解,对数几率回归没有。
- 参数估计 parameter estimation3.2
- 从数据里把参数(w、b)定下来的过程。
- 设计矩阵 design matrix3.2 · 式 3.10 前
- 把数据集写成 m×(d+1) 的矩阵 X,每行一个样本,最后一列全是 1(为了把偏置 b 吸收进参数向量)。
- 增广向量(把 b 吸收进去)augmented vector3.2、3.3
- 令 ŵ = (w; b)、x̂ = (x; 1),则 wTx + b 可以简写成 ŵTx̂。好处是推导时不用单独处理 b。
- 满秩 / 正定 full-rank / positive definite3.2 · 式 3.12
- 矩阵"信息不重复、可逆"的性质。XTX 满秩时闭式解唯一;不满秩时有无穷多组解。属性数多于样本数、或属性间线性相关时,往往不满秩。
- 正则化 regularization3.2(第 6、11 章详述)
- 在目标函数里加一项"惩罚",用来在多个同样好的解里挑一个(比如"挑系数最小的"),也用来防止过拟合。典型做法:岭回归把 (XTX) 换成 (XTX + λI),保证可逆。
- 归纳偏好 inductive bias3.2(第 1.4 节)
- 算法在面对多个同样符合数据的答案时,"倾向于选哪个"的偏好。没有它就无法从有限样本推出通用规律。
广义线性模型
- 对数线性回归 log-linear regression3.2 · 式 3.14
- 不拟合 y,改拟合 ln y:ln y = wTx + b。等价于让 ewTx+b 去逼近 y。形式上是线性回归,实质是非线性映射。
- 广义线性模型 generalized linear model3.2 · 式 3.15
- y = g−1(wTx + b)。把"线性模型的输出"用某个函数翻译成"真正的预测值"。3.3 的对数几率回归就是它的特例。
- 联系函数 link function3.2 · 式 3.15
- 上式的 g(·)。要求单调(能反解)且可微(能优化)。
对数几率回归
- 单位阶跃函数 unit-step / Heaviside function3.3 · 式 3.16
- z<0 输出 0,z>0 输出 1,z=0 输出 0.5。最符合直觉的分类翻译,但不连续不可导,不能当联系函数用。
- 替代函数 surrogate function3.3
- 用来代替理想但不合用的函数(如阶跃)的"近似品",要求近似它且单调可微。sigmoid 就是阶跃的替代函数。
- 对数几率函数 / Sigmoid logistic function / sigmoid3.3 · 式 3.17
- y = 1/(1+e−z)。S 形,把整个实数轴压到 (0,1) 区间;z=0 时 0.5,两端饱和。注意它不是对数函数 ln。
- 几率 odds3.3
- y/(1−y),即"正例可能性是反例的几倍"。y=0.8 时几率是 4。
- 对数几率 / logit log odds / logit3.3 · 式 3.19
- ln[y/(1−y)]。对率回归就是在用线性模型去拟合它,所以叫"对数几率回归"。
- 对数几率回归 logistic / logit regression3.3
- 名字叫回归,实际是分类方法。输出的是概率而非硬标签。有书译作"逻辑回归",但"逻辑"与 logistic 本义无关。
- 极大似然法 maximum likelihood method3.3 · 式 3.25
- 找一组参数,使"观察到当前这批样本标签"的概率最大。直觉:事情已经发生了,那就调参数让这件事最不意外。
- 对数似然 log-likelihood3.3 · 式 3.25、3.27
- 似然的连乘取对数变成连加。最大化它是凸问题;等价地最小化它的相反数(式 3.27),即 binary cross-entropy / log loss。
- 牛顿法 Newton method3.3 · 式 3.28
- 用二次函数近似目标函数,一步跳到近似碗底。收敛快,但每轮要算 Hessian 并求逆,代价大。更新式形如 β ← β − H−1g。
- Hessian 矩阵 Hessian3.3 · 式 3.31
- 二阶偏导组成的矩阵,描述"曲率"。对率回归的 Hessian 是正定的,说明目标函数是凸的(开口朝上的碗)。
线性判别分析
- 线性判别分析 Linear Discriminant Analysis, LDA3.4
- 把数据投影到一个方向上,使同类挤、异类远,再在这个低维空间里分类。二分类时也叫 Fisher 判别分析(Fisher, 1936)。同时是分类器和监督降维方法。
- 投影 projection3.4
- 把高维点"压"到一条直线(或低维空间)上。数学上就是与方向向量做点积:wTx 得到的是该点在这条直线上的坐标(一个数)。
- 类内散度矩阵 within-class scatter matrix, Sw3.4 · 式 3.33
- 把每类样本减去自己类的中心后"自乘转置"再相加。度量每一类自己有多散。(除以样本数就是协方差矩阵,只差常数倍。)
- 类间散度矩阵 between-class scatter matrix, Sb3.4 · 式 3.34
- (μ0−μ1)(μ0−μ1)T,只用两个类的中心,度量类中心离多远。秩为 1。
- 广义瑞利商 generalized Rayleigh quotient3.4 · 式 3.35
- 形如 (wTAw)/(wTBw) 的比值。在这里就是"类间 ÷ 类内",越大越好。它是零次齐次的:w 换成 αw 值不变,所以只能定方向、定不了长度。
- 拉格朗日乘子法 Lagrange multiplier3.4 · 式 3.36→3.37(附录 B.1)
- 解"带约束的优化"的标准工具:把约束乘一个系数 λ 加进目标,转成无约束问题再求导置零。
- 广义特征值问题 generalized eigenvalue problem3.4 · 式 3.37、3.45
- 形如 Aw = λBw 的问题(普通特征值问题 B=I 的特例)。LDA 的解就是这个问题的特征向量。
- 奇异值分解 Singular Value Decomposition, SVD3.4(附录 A.3)
- 把矩阵拆成 UΣVT。实践里用它来稳定地求 Sw−1,因为直接求逆数值不稳定。代码里用伪逆 pinv 就行。
- 白化 whitening3.4(讲义用语)
- 按数据散开的形状做线性变换,让"椭球"变成"球"。LDA 里的 Sw−1 起的就是这个作用,然后再沿类中心连线投影。
- 监督降维 supervised dimensionality reduction3.4 末
- 利用类别标签来降低维度。LDA 把 d 维投到 N−1 维,且投影时用了标签,所以属于监督降维(对比无监督的 PCA)。
多分类与 ECOC
- 拆解法 decomposition3.5
- 把多分类任务拆成若干个二分类任务,分别训练,再集成结果。三步:拆 → 训 → 合。
- OvO One vs. One3.5
- 两两配对,共 N(N−1)/2 个分类器,投票定结果。分类器多,但每个只用到两类的样本,所以类别多时训练反而快。
- OvR One vs. Rest(也称 OvA,但 OvA 不严格)3.5
- 每次一类当正、其余当反,共 N 个分类器。多个都判正时,取置信度最大的。分类器少、测试快,但每个都用全部样本、训练慢。
- MvM Many vs. Many3.5
- 每次若干类当正、若干类当反。OvO 和 OvR 都是它的特例。正反类构造必须特殊设计,不能随意选取。
- ECOC Error Correcting Output Codes3.5(Dietterich & Bakiri, 1995)
- 把"纠错码"思想引入类别拆分。编码阶段做 M 次划分训 M 个分类器;解码阶段把预测编码与各类编码比距离,取最近的类。
- 编码矩阵 coding matrix3.5
- 行是类别、列是分类器。格子取值表示该分类器该类的角色。
- 二元码 / 三元码 binary / ternary code3.5
- 二元码只有 +1/−1。三元码多了 0 = 停用类(该分类器不使用这一类的样本),更灵活(Allwein et al., 2000)。
- 海明距离 Hamming distance3.5
- 两个等长编码"有多少位不同"。ECOC 解码时常用它(或欧氏距离)挑最近的类。
- 多标记学习 multi-label learning3.7
- 一个样本可以同时有多个标签(一张图既是"蓝天"又是"羊群")。它不是多分类——多分类里每个样本只属于一个类。
类别不平衡
- 类别不平衡 class imbalance3.6
- 不同类别的训练样本数差别很大(不是"稍有差别")。典型场景:患病/健康、欺诈/正常。
- 观测几率 observed odds3.6 · 式 3.47
- m+/m−,训练集里正例数与反例数之比。若训练集是真实总体的无偏采样,它就等于真实几率。
- 再缩放 rescaling3.6 · 式 3.48
- 把预测几率乘上 m−/m+(正例越少乘得越大)。这样用原来的 0.5 门槛决策,效果就等于用观测几率当门槛。代价敏感学习里把该系数换成 cost+/cost−。
- 欠采样 undersampling3.6
- 删掉一些反例。开销小,但可能丢信息。代表算法 EasyEnsemble:把反例分成多份给不同学习器,集成后全局不丢信息。
- 过采样 oversampling3.6
- 增加一些正例。不能简单重复(会严重过拟合)。代表算法 SMOTE:在正例之间插值造新样本。
- 阈值移动 threshold-moving3.6
- 不动数据,把式 (3.48) 嵌进预测时的决策过程。
- 代价敏感学习 cost-sensitive learning3.6、3.7
- 不同错误的代价不同时,按代价来调整决策。cost+ = 正例误判为反例的代价,cost− = 反例误判为正例的代价。和类别不平衡本质不同:一个是数据分布,一个是代价定价。
数学工具(附录相关)
- 凸函数 convex function3.2
- 碗形函数:任意两点的中点函数值 ≤ 两点函数值的平均。一元时判据是二阶导 ≥ 0。凸函数没有"局部最优陷阱",所以求导置零就是全局最优。
- 点积 dot product3.1
- wTx = ∑wixi,对应位置相乘再相加。结果是一个数。
- 转置 transpose, T全章
- 把列向量变成行向量、把矩阵沿对角线翻转。作用是"让形状对得上,才能相乘"。
- 矩阵的迹 trace, tr(·)3.4 · 式 3.44
- 对角线元素之和,等于所有特征值之和。可以理解为矩阵的"总能量"。多分类 LDA 用它把矩阵比值变成标量比值。
- L0 / L1 范数 L0 / L1 norm3.7
- L0:向量里非零元素的个数(衡量稀疏度,但优化是 NP 难)。L1:各元素绝对值之和(凸、可优化,且会把系数压到 0)。LASSO 用 L1 近似 L0(Tibshirani, 1996)。
- 稀疏性 sparsity3.7
- 解里大部分分量为 0。好处:模型简单、可解释、只依赖少数特征。
术语在讲义里出现时会沿用这里的译名和记号。如果发现某个词在讲义里用法和这里不一致,以这里为准,并告诉我,我来改。