参考文档 · 速查

第 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。好处:模型简单、可解释、只依赖少数特征。

术语在讲义里出现时会沿用这里的译名和记号。如果发现某个词在讲义里用法和这里不一致,以这里为准,并告诉我,我来改。