[PRML]1.Introduction
Example: Polynomial Curve Fitting
PRML 的第一章是围绕着一个简单的回归问题——多项式拟合展开的。问题虽然简单,但其中蕴藏着许多奥妙。作者分别阐述了概率论、决策论和信息论三个贯穿全书的重要工具,展示了频率学派和贝叶斯学派面对问题的不同思考与处理手段,尤其侧重于贝叶斯方法相比频率方法体现出的优势。对于只看过吴恩达入门机器学习的我来说,本章直接为我踹开了贝叶斯的大门,刷新了我的认知。
废话不多说,书中举例的回归问题如下图所示:
在这个例子中,训练数据(蓝色空心圆点)是基于 (绿色曲线)添加随机高斯噪声生成的。记训练集为 ,对应的观测值为 ,图 1.2 展示了包含 10 个样本的训练集。我们希望从数据集中找到一些规律,使得询问一个新的 时能预测其对应 的值。
考虑用多项式做回归: 其中 是模型的参数, 为多项式的阶数。这是一个线性模型(linear model),因为 是关于 的线性函数(尽管关于 是非线性的)。
为了拟合训练数据,我们会定义一个误差函数并最小化之: 通过求导取零一通计算,这个优化问题可以算出一个闭式解。不过先别急着算,这里还有一个问题尚待解决——如何选择 ?不同的 对应了不同的模型,会导致效果完全不同的解,如下图所示:
有点机器学习基础的同学都知道, 时模型能力不够,发生了欠拟合;而 时模型完美地穿过了所有训练数据,但会在测试数据上表现极差,发生了过拟合; 则刚刚好。过拟合现象其实挺讽刺的—— 明明包含了 ,它理应表现得至少不比后者差;另外,如果要用多项式无限逼近 函数,甚至需要无限阶的多项式(泰勒级数),所以我们期待 越大、模型效果越好才对。
的多项式有 10 个自由参数,所以刚好能拟合大小为 10 的训练集。那如果我们加大训练集的规模呢?下图展示了 15 和 100 个数据点下的结果:
可以看见,随着训练集规模增大,过拟合现象得到了缓解。因此,一个启发式的经验是说,参数量应该比数据量少若干倍(如 5~10 倍)。但是,这样的解决方案其实不是很让人满意,我们更希望参数量与问题的复杂程度挂钩,而不是与数据量挂钩。在下文中,我们会看到上述最小二乘法的本质其实是极大似然估计,而过拟合是极大似然估计的一般属性。相反,贝叶斯方法可以避免过拟合问题。事实上,当参数量多于数据量时,贝叶斯模型能够自适应地调节有效参数量。
另一个常见的解决过拟合的方案是正则化。如果我们考察不同
可以看见,随着
在正则化的作用下,
Probability Theory
基础的概率知识直接跳过,我们从贝叶斯说起。
Bayesian probabilities
经典频率学派将概率视作随机可重复事件发生的频率,而在贝叶斯视角下,概率是对不确定性(uncertainty)的度量。考虑一个不确定的事件,例如北极的冰川是否会在世纪末消失,这可不是一个可以重复试验的事情,但是我们依旧能对冰川的融化速度有大致的评估。如果我们现在有了一些新的观测,我们也许会更新之前的评估,进而调整我们的动作,例如减少温室气体的排放。这个过程可以用贝叶斯概率做定量地描述。
在上文多项式拟合的例子中,我们可以用概率来表示模型参数
The Gaussian distribution
上文说过,最小二乘法本质就是极大似然估计,为了建立二者的联系,我们先考虑另一个问题:用高斯分布为数据的分布建模。假设数据集为
推导过程中用了高斯分布的二阶矩为
的结论。
下图直观地描绘了这个问题:
当
Curve fitting re-visited
现在让我们回过头来,从概率角度重新审视多项式曲线拟合问题。我们为模型的预测值赋以不确定性,并用高斯分布来建模:
于是乎,使用极大似然估计,我们有似然:
当然,上式还有另一个参数
Bayesian curve fitting
虽然我们现在用先验、后验概率分布来描述参数
本书中,sum rule 指的是
;product rule 指的是 .
在多项式曲线拟合问题中,我们已知的是
把
The Curse of Dimensionality
多项式曲线拟合问题只有一个输入变量
如果我们想对 × 做分类,一个简单的做法是把空间分成若干小格,每一个格子的类别定义为落在其中的点的大多数类别;那么询问一个新的数据点时,我们看它落在哪一个格子里即可,如下图所示:
当然,这个方法比较 naive,存在很多问题,但是最重要的问题之一就是维度灾难。当维度从 2 维上升到更高维时,用来划分高维空间的格子数量将呈指数增长,那么,为了让每个格子里有足够多的数据点,所需要的数据数量也就随之呈指数增加。如下图所示:
我们也可以从多项式拟合问题里看到维度灾难。假设我们有
当维度变高后,很多低维空间下的直觉将变得不再正确。例如,设有
这意味着,高维空间中的一个超球体,其大部分体积都集中在接近表面的薄薄的一层上!
高维高斯分布也有类似的情况。在极坐标下,做出
虽然如此,在实践中我们依旧能够有效地处理高维数据,原因有两点:
- 真实数据往往处于低维的子空间/流形上;
- 真实数据往往有一定的光滑性,即输入变量的微小变化会引起目标变量的微小变化,因此我们可以用插值等方式对新的输入做预测。
Decision Theory
本节我们围绕一个非常经典的例子——癌症诊断展开:输入一张 X 光片
使用第二节概率论的方法,我们能够推断出一些概率分布,其中核心是联合概率
直觉上,我们会选取
Minimizing the misclassification rate
对于一种决策,设区域
拓展到
Minimizing the expected loss
很多应用场景中,我们的目标比单单最小化错误率要复杂。例如癌症诊断,如果把一个健康的人诊断为患癌,那么大不了再多做点检测;但如果把一个患癌的人诊断为健康,那就要对他/她的生命负责了。虽然两种情况都是误诊,但后者的后果更为严重。为此,我们可以定义一个 loss matrix
例如,在癌症诊断的例子中,我们可以定义
The reject option
当最大的
Inference and decision
通过上文的叙述,我们看到一个分类问题被划分为了两个阶段——先推断(inference),再决策(decision)。在推断阶段,我们用概率论方法获得
事实上,我们有三种解决决策问题的方案:
Generative models:首先对每个
推断 和 ,然后运用贝叶斯定理: 计算后验概率 . 等价地,也可以先推断出联合分布 ,然后归一化得到后验概率。如此建模的模型被称作生成模型,因为我们可以从 中采样生成合成数据。Discriminative models:直接推断后验概率
,然后依其做决策。如此建模的模型被称作判别模型。Discriminant function:将输入
直接映射到其类别标签 ,跳过所有概率。
对生成模型而言,在实际应用中
第三种方案抛弃了后验概率,但我们认为后验概率在很多时候还是很有用的:
Minimizing risk. 如果一个问题的 loss matrix 会随时间不断变化(在金融中很常见),那么有后验概率我们可以随时调整决策,但如果只有 discriminant function,每次变化就要重新训练一遍;
Reject option. 根据后验概率的大小,我们可以拒绝分类,如上一小节所述;
Compensating for class priors. 很多分类问题面临类别不平衡问题,比如癌症的 X 光片数量远少于健康的 X 光片数量。这时要训练一个好的分类器是很困难的,因为就算分类器无论输入是什么都输出健康,那它的正确率也非常高。可行的解决方案是人为构造一个类别平衡的数据集(如在多类中只采样和少类一样多的样本),在上面训练模型。但由于我们更改了数据类别的分布,所以回归实际应用时应该做相应的补偿。具体而言,假设原本数据的类别分布为
,更改后为 ,在更改后的数据上训练的模型为 ,根据贝叶斯定理: 注意类别条件分布 是不会因为我们对数据集的更改而变化的,所以: 这样就解决了类别不平衡问题。如果我们没有后验概率,就无法完成这样的操作。Combining models. 对于复杂的应用,我们也许会在不同的特征上训练多个模型,这时我们能够依据它们的后验概率合并它们的输出。例如,在癌症诊断的例子中,假设除了 X 光片
,我们还有血液样本 ,并且二者是条件独立的: 那么: 其中,条件独立假设的引入就是朴素贝叶斯模型的思想。
Loss functions for regression
这一节前面一直在讨论分类模型,其实回归模型也有类似的决策阶段。仍然以多项式拟合问题为例,在推断阶段我们已经计算了联合概率分布
当然,平方误差并不是唯一的损失函数的选择,如果用绝对值误差,那么解就是
同分类问题一样,对于回归问题我们也有生成模型、判别模型和判别函数三种解决问题的方案,且有着同样的优缺点。
Information Theory
信息论也是模式识别和机器学习中的重要工具。设有一个离散随机变量
对于随机变量
上述信息量和熵的定义方式显得非常“启发式”,给人不够严谨的感觉。事实上,熵最早来源于物理学中的热力学,并被用来表述一个系统的混乱程度。我们可以考虑将
显然,熵的最小值为
上面都是离散情形。对于连续分布
前文证明了,离散情形下的熵在均匀类别分布下取到最大,那么连续情形下也是如此吗?事实上这取决于约束条件[1]。如果我们约束分布的均值为
如果我们将约束条件更改为在支撑集
Relative entropy and mutual information
在机器学习中,一个常见的需求是用一个分布
我们可以用琴生不等式证明 KL 散度非负,并且当且仅当
在应用中,我们常常用一个参数化概率分布
第二项与
现在考虑两个随机变量
References
- 为什么熵值最大的分布状态是正态分布而不是均匀分布? - 椎名的回答 - 知乎 https://www.zhihu.com/question/357032828/answer/907586249 ↩︎