PRML 基础知识

1 一个经典例子

​ 一个经典的例子就是Polynomial Curve Fitting问题,现在将以此为基础介绍一些基本概念和方法。该问题的主要思路是针对给定的训练集\(\mathbf{x}\equiv(x_1,x_2,\cdots,x_N)^T\)\(\mathbf{t}\equiv(t_1,t_2,\cdots,t_N)^T\),选取适当的模型(在这个问题中是多项式模型)和适当的参数集\(\mathbf{w}=(w_0,x_1,\cdots,w_M)^T\)使得与拟合结果

\[y(x,\mathbf{w})=w_0+w_1x+w_2x^2+\cdots+w_Mx^M=\sum_{j=0}^Mw_jx^j \]

相应的误差函数(error function)

\[E(\mathbf{w})=\frac12\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2 \]

最小,这样的参数集\(\mathbf{w}\)可能就是符合题意的答案。下面指出该思路可能会出现的问题并给出解决办法。

​ 当参数集\(\mathbf{w}\)中的参数数量\(M\)过少的时候,通常来说得到的结果拟合程度不足,这时应该适当增加参数数量。然而当参数数量过多的时候,可能会出现拟合过度的情况,即对给定的数据集,模型和参数拟合的很好,但是不能对新的自变量\(x\)给出合适的因变量估计,这种情况称为过拟合(over-fitting),过拟合出现的原因是对数据集中的噪声进行了过度的重视,导致拟合结果会倾向于将噪声纳也入模型中。出现这种的情况的时候,应该适当减少参数的数量。

​ 评价拟合的合理性的时候,我们仍然使用误差函数,其中的参数集取为已确定的\(\mathbf{w^*}\),即

\[E(\mathbf{w^*})=\frac12\sum_{n=1}^N\{y(x_n,\mathbf{w^*})-t_n\}^2 \]

但是此时的表达式的值与训练集中的\(N\)有关,为了直观比较不同\(N\)的误差函数,现定义根均方误差(RMS)如下

\[E_{RMS}=\sqrt{\frac{2E(\mathbf{w^*})}{N}} \]

这是某种意义上的单位化。

​ 虽然现在我们有了基本方法比较不同拟合程度的优劣,但是对于过拟合的情况,仍然没有量化的方法直接指出应该选择什么规模的参数集。一般来说,参数集规模越大,拟合函数的阶数(order)就会越高,则越有可能出现过拟合的情况,因此使用正则化(regularization)方法在误差函数上增加一项惩罚项(penalty term),得到

\[\tilde{E}(\mathbf{w})=\frac12\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2+\frac{\lambda}{2}||\mathbf{w}||^2 \]

其中\(\lambda\)决定了惩罚项的重要程度,称为正则化参数(regularization coefficient),在求解的时候应选择合适的\(\lambda\)的值。这种方法在统计学中被称为收缩(shrinkage)方法。二次正则项的一个特殊情况称为山脊回归(ridge regression)。在神经网络中,这种方法又被称为权值衰减(weight decay)

2 概率论

2.1 概率论基础知识

​ 概率论基础知识已经学过,此处不再赘述。

2.2 贝叶斯观点

​ 通常的概率观点基于重复事件的频率,认为概率及其模型是真实存在的,而事件本身是随机的,这称为概率的经典解释或频率解释(classical or frequentist interpretation of probability)。然而概率还有一种贝叶斯解释(Bayesian interpretation of probability),该观点基于不断的观测和修正,认为真实出现的事件是一种确定的存在,而模型和参数是不确定的随机变量,应随着样本的增加不断修正先验的概率分布。

​ 对于Polynomial Curve Fitting问题来说,我们不妨认为模型是真实存在且确定的,我们需要做的就是根据训练集给出合适的参数集从而解决问题,这是频率主义的思路。但是我们也可以通过同一问题的不同规模的数据集来逐步修正我们的参数集、甚至可以随着数据集规模的增加而否定已经选择的模型,这是贝叶斯主义的思路。

​ 贝叶斯方法的理论基础是贝叶斯定理(Bayes' theorem),下面以Polynomial Curve Fitting问题为例说明贝叶斯定理更一般的含义

\[p(\mathbf{w}|D)=\frac{p(D|\mathbf{w})p(\mathbf{w})}{p(D)} \]

我们的猜想用\(\mathbf{w}\)表示,也就是说,每次计算完成之后都可能会修正\(\mathbf{w}\),至于是否修正\(\mathbf{w}\)取决于\(p(\mathbf{w}|D)\)的值。\(D\)用来表示新的观测值(在Polynomial Curve Fitting问题中可认为是新的数据集)。因此\(p(\mathbf{w}|D)\)的意义是在新观测值(新数据集)下猜想\(\mathbf{w}\)仍然正确的概率,\(p(D|\mathbf{w})\)的意义是已知猜想\(\mathbf{w}\)正确的前提下可以表示(导出)新观测值(新数据集)的概率。通过此式可以评估猜想\(\mathbf{w}\)是否随着观测量(数据集)的变化仍然具有较高的合理性。如果仍然具有较高的合理性,那么就是说在新观测值(新数据集)下猜想\(\mathbf{w}\)正确的概率较大;如果不具有较高的合理性,那么就是说在新观测值(新数据集)下猜想\(\mathbf{w}\)正确的概率较小。

​ 在上述贝叶斯定理中,每个名词都有约定俗称的名称。\(p(\mathbf{w})\)称为\(\mathbf{w}\)先验概率(prior)或边缘概率,之所以称为“先验”是因为它不考虑任何\(D\)方面的因素,也就是某个猜想的初始概率,在一些问题中我们提出一些备选猜想,不妨设它们的初始概率相同;\(p(\mathbf{w}|D)\)是已知\(D\)发生之后的条件概率,也由于得自\(D\)的取值而被称为\(\mathbf{w}\)后验概率(posterior),后验概率是经过新的数据集\(D\)训练之后猜想\(\mathbf{w}\)正确的概率、是经过学习的结果,可以用来指导决策;\(p(D|\mathbf{w})\)\(\mathbf{w}\)成立时\(D\)的概率,也就是假设猜想\(\mathbf{w}\)正确从而得到\(D\)的概率,可称为相似度(likelihood)或类条件概率密度\(p(D)\)\(D\)的先验概率或边缘概率,也称作标准化常量,其含义是任何猜想都未知或不确定时的\(D\)的概率。那么贝叶斯公式可以表示为

\[\text{后验概率}=\frac{\text{相似度}\times\text{先验概率}}{\text{标准化常量}} \]

那么就有如下的导出关系

\[\text{后验概率}\varpropto\text{相似度}\times\text{先验概率}\\ (\text{posterior}\varpropto\text{likelihood}\times\text{prior}) \]

​ 在频率主义和贝叶斯主义中,都有一个概念叫做似然函数(likelihood function),它描述了在一次试验中取某一观测情况的概率。由于似然函数可以用来评价不同猜想(参数集)下取某一事件的概率,故往往和某一猜想(参数集)结合使用。根据这样的观点,似然函数就是\(p(D|\mathbf{w})\)。如果对任意可能的观测情况,似然函数都能取到最大值,那么此时的猜想(参数集)显然是合理的,这就是极大似然(maximum likelihood)方法的原理。在频率主义中,\(\mathbf{w}\)被认为是固定的参数,它的值通过某种形式的估计(比如说通过极大似然方法确定的极大似然估计)来确定,并且这个估计的误差通过可能的数据集\(D\)来得到(比如说极大似然估计的误差函数可取广义距离的平方和);而在贝叶斯主义中,只有一个数据集\(D\)(即实际观测的数据集),认为\(\mathbf{w}\)服从某种形式的概率分布,故其不确定性通过\(\mathbf{w}\)的概率分布来表达。

​ 关于极大似然方法的基础知识已经在概率论课程中已经学过,此处不再详细介绍。

​ 本专题将主要基于贝叶斯主义的方法,并在必要的时候介绍一些频率主义的方法。

2.3 再论经典例子

​ 之前我们解决Polynomial Curve Fitting问题的时候采用的是曲线直接拟合的思路,现在从概率角度再次思考这个问题。现在我们有一系列假设(一系列参数集\(\{\mathbf{w_1},\mathbf{w_2},\mathbf{w_3},\cdots\}\))并选择一个参数集\(\mathbf{w}\)作为暂时的假设,当给定某一个新的输入\(x_0\)的时候,真实的输出\(t\)暂时是未知的,但根据已有假设我们可以得到一个预测量\(t_0=y(x_0,\mathbf{w})\)。不妨认为输出是一个随机变量,直观来看,如果假设是合理的,那么\(t=t_0\)的概率就应该较大。现认为输出符合正态分布(或高斯分布,Gaussian distribution)且这个预测值\(t_0\)就是该正态分布的期望,随着输入的变化,输出可能会对应不同的正态分布。设输入为\(x\),则输出\(t\)的概率满足

\[p(t|x,\mathbf{w},\beta)=N(t|y(x,\mathbf{w}),\beta^{-1}) \]

此式的含义为:在假设\(\mathbf{w}\)正确并选择参数\(\beta\)的前提下输入\(x\),得到的值\(t\)恰好为模型的预测值\(y(x,\mathbf{w})\)的概率满足参数\(\beta^{-1}\)的条件下的正态分布。也就是说,在假设\(\mathbf{w}\)正确并选择参数\(\beta\)的前提下输入\(x\),输出的\(t\)的概率表达式为

\[P(t)= \frac{1}{\sqrt{2\pi}{\sqrt{\beta^{-1}}}}\text{exp}\{-\frac{(t-y(x,\mathbf{w}))^2}{2\beta^{-1}}\} \]

对于给定训练集而言,有\(N\)个数据点可供使用,因此可设极大似然函数为

\[p(\mathbf{t}|\mathbf{x},\mathbf{w},\beta)=\prod_{n=1}^NN(t_n|y(x_n,\mathbf{w}),\beta^{-1}) \]

对数处理可得

\[\ln p(\mathbf{t}|\mathbf{x},\mathbf{w},\beta)= -\frac\beta2\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2+\frac{N}{2}\ln\beta-\frac{N}{2}\ln(2\pi) \]

一般来说,先通过某些方法得到\(\mathbf{w_{ML}}\)(比如说从一系列的候选\(\mathbf{w}\)中选出一个\(\mathbf{w_ML}\)),然后上式便只剩下了一项待估计的\(\beta\),使其求导式等于零,解得

\[\frac{1}{\beta_{ML}}=\frac{1}{N}\sum_{n=1}^N\{y(x_n,\mathbf{w_{ML}})-t_n\}^2 \]

现在,得到了模型

\[p(t|x,\mathbf{w_{ML}},\beta_{ML})=N(t|y(x,\mathbf{w_{ML}}),\beta_{ML}^{-1}) \]

便可以对输入的\(x\)进行估计了。

​ 下面介绍超参数(hyperparameter)的概念,以正态分布为例,假设输入为\(\mathbf{w}\),那么式

\[p(\mathbf{w}|\alpha)=N(\mathbf{w}|0,\alpha^{-1}I)=(\frac{\alpha}{2\pi})^{(M+1)/2}\text{exp}\{-\frac{\alpha}{2}\mathbf{w}^T\mathbf{w}\} \]

给出了在超参数\(\alpha\)的条件下,随机变量\(\mathbf{v}\)(是一个向量)的概率表达式(该式也可以通过向量\(\mathbf{v}\)中每一项的正态分布相乘得到),其中\(M+1\)\(\mathbf{v}\)中元素的个数。之前讨论的参数属于模型参数,其值在训练中得到并优化,是数据驱动的。而超参数是决定模型本身性质的参数,是人为设置的,不是数据驱动的。超参数可以分为许多类别,通常来说重要性不同,共同影响模型的性能。常说的“调参”指的就是调整某一确定模型中的超参数使该模型的表现得到优化。

​ 之前在说明“贝叶斯公式更一般的含义”的时候,其实已经给出了参数集\(\mathbf{w}\)的修正方法:不断迭代计算,看计算得到的后验概率值是否始终维持在一个较高水平,如果是则说明参数集\(\mathbf{w}\)的正确性较高;如果不是则说明参数集\(\mathbf{w}\)的正确性较低,需对参数集进行修正,通常来说是在所有备选的参数集\(\{\mathbf{w_1},\mathbf{w_2},\mathbf{w_3},\cdots\}\)中选择一个新的参数集。当引入超参数之后,贝叶斯公式的导出关系就可以表示为

\[p(\mathbf{w}|\mathbf{x},\mathbf{t},\alpha,\beta)\varpropto p(\mathbf{t}|\mathbf{x},\mathbf{w},\beta)p(\mathbf{w}|\alpha) \]

该式说明,在新的训练集\(\mathbf{x}\)\(\mathbf{t}\)的条件下参数集\(\mathbf{w}\)仍然正确的概率与右侧二者的乘积成正比。所以现在只需要选择合适的参数集\(\mathbf{w}\)(超参数在此之前已经确定),使该关系式左侧的(后验概率)表达式的值取到最大值,该方法称为后验概率最大化(maximum posterior or MAP)。根据对数方法取负对数法,欲求后验概率\(p(\mathbf{w}|\mathbf{x},\mathbf{t},\alpha,\beta)\)的最大值,即在下式中

\[\frac{\beta}{2}\sum_{n=1}^{N}\{y(x_n,\mathbf{w})-t_n\}^2+\frac{\alpha}{2}\mathbf{w}^T\mathbf{w} \]

选择合适的\(\mathbf{w}\)使其取得最小值。补充一句,求该式的最小值就是在\(\tilde{E}(\mathbf{w})\)中令\(\lambda=\frac{\alpha}{\beta}\)并求其最小值。

​ 在后续的内容中,我们将会介绍如何确定参数\(\alpha\)\(\beta\),假设现在已经确定了这两个参数,那么我们来预测当输入为\(x\)的时候,输出值的具体情况。设给定的训练集为\(\mathbf{x}\)\(\mathbf{t}\),设新的输入为\(x\)、新的输出为\(t\)。如之前所述,此处的输出\(t\)可以视为一个随机变量,故目标就是给出预测分布\(p(t|x,\mathbf{x},\mathbf{t})\),由于我们有一系列假设\(\{\mathbf{w_1},\mathbf{w_2},\mathbf{w_3},\cdots\}\),所以用全概率公式得到

\[p(t|x,\mathbf{x},\mathbf{t})=\int p(t|x,\mathbf{w})p(\mathbf{w}|\mathbf{x},\mathbf{t})d\mathbf{w} \]

其中,\(p(t|x,\mathbf{w})\)​​就是之前提到的\(p(t|x,\mathbf{w},\beta)\)​​,其中参数\(\beta\)​​已经确定。从后面关于回归模型的叙述可以知道,这种曲线拟合问题的后验分布的形式是正态分布,即

\[p(t|x,\mathbf{x},\mathbf{t})=N(t|m,s^2) \]

均值和方差分别为

\[\begin{aligned} m&=\beta\phi(x)^TS\sum_{n=1}^N\phi(x_n)t_n\\ s^2&=\beta^{-1}+\phi(x)^TS\phi(x) \end{aligned} \]

这表示预测分布的均值和方差依赖于\(x\),其中,矩阵\(S\)由下式给出

\[S^{-1}=\alpha I+\beta\sum_{n=1}^N\phi(x_n)\phi(x)^T \]

其中,矩阵\(I\)为单位矩阵,向量\(\phi(x)\)中的元素被定义为\(\phi_i(x)=x^i~(i=0,1,\cdots,M)\)\(M\)为参数集\(\mathbf{w}\)中的元素个数,也就是拟合函数的阶数。\(N\)为训练集中数据点的数量,\(x_n\)\(t_n\)为训练集\(\mathbf{x}\)\(\mathbf{t}\)的第\(n\)个数据点。

3 模型选择

​ 在向模型输入训练集之前,往往需要先确定一些模型中的参数,比如\(\tilde{E}(\mathbf{w})\)中的超参数\(\lambda\)。通常来说,模型中的参数有一定的候选范围,我们可以从中选取一些值构成一些候选模型,本小节将讨论模型的选择。

​ 如果数据集是足够大的,则将数据集分为三部分:训练集(train set)验证集(validation set)测试集(test set),先选定一个参数\(\lambda\)并使用训练集来求出模型,然后用验证集对得到的模型进行测试,从而确定选择的\(\lambda\)是否合适。另外,如果模型经过多次有限数据集的迭代,可能会出现过拟合的情况(原因是经历了大量噪声的影响),此时应使用测试集对模型进行最终的估计。一个典型的划分是训练集占总数据集的50%,而其余两者各占25%,三部分都是从数据集中随机抽取。

​ 如果数据集是相对有限的,为了得到尽可能准确的模型,我们将尽可能多的数据用作训练集,此时在评估模型的优劣时,使用S折交叉验证法(S-fold cross-validation),其思路是:将整个数据集分为\(S\)份,轮流选择其中的\(S-1\)份来训练模型,剩下的用作验证,如此循环直到数据集所有划分为\(S\)份的情况被穷尽。特别地,如果\(S=N\),称为留一法(leave-one-out)

​ 但是我们必须在此指出交叉验证的两个重要缺点。其一是,训练次数可能会比较大、尤其是S折交叉验证的训练次数会随着\(S\)的选取而变得异常大,从而导致计算性能上的巨大问题。其二是,对于一个模型可能有多个超参数,而每个超参数又可能有一些候选值,因此可能的模型数量是非常多的(不同超参数之间的组合),所以如果能忽略模型中的超参数将会大大减少候选模型的数量,但是忽略超参数往往会导致过拟合的问题,所以现在只要找出一种新的模型评估度量,既与超参数无关、又不会受到过拟合的影响,也就是说这个新的模型评估度量的唯一变量仅为训练集,就能解决第二个缺点。

4 维数灾难

维数灾难(Curse of Dimensionality)往往发生在分类问题中。描述一个数据点可能需要多个变量、也就是维数。在分类问题中,我们常常先将数据空间分成若干个小空间,再根据训练集确定每个小空间的性质,此时向其中放入待分类量,通过观察其处于哪个小空间便可以对待分类量进行分类。但问题是,随着维数的增加,小空间的数量可能会变得非常多(可能以几何级数增长),这就是维数灾难的直观表现。

​ 当然,维数灾难不仅仅发生在分类问题中,事实上,只要输入变量不止一个(即,是一个向量),就可能出现维数灾难。以polynomial curve fitting问题为例,如果输入是一个\(D\)维向量且限制自变量交叉乘积的个数至多为\(3\),那么拟合模型在形式上为

\[y(\mathbf{x},\mathbf{w})=w_0+\sum_{i=1}^Dw_ix_i+\sum_{i=1}^D\sum_{j=1}^Dw_{ij}x_ix_j+\sum_{i=1}^D\sum_{j=1}^D\sum_{k=1}^Dw_{ijk}x_ix_jx_k \]

注意到这里仍限制了自变量交叉乘积的个数,如果不加任何限制,则需要穷尽所有自变量交叉乘积的可能性,这会导致系数数量随着维数的增加而急剧增加。

5 决策论

​ 下面讨论一个重要的概念:决策论(Decision Theory)。在回归问题中,当输入一个\(\mathbf{x}\)的时候,我们希望得到一个预测的输出\(\mathbf{t}\);在分类问题中,当输入一个\(\mathbf{x}\)的时候,我们希望将该数据点进行分类、使其归入到某个类别中。上面的思路是一种“输入——输出”的思路,将变量自然地分为地位不对等的两部分,如果将所有变量视为地位相等的一个整体,那么它们的联合分布\(p(\mathbf{x},\mathbf{t})\)就反映了这个模型的所有信息,包括各变量的边缘分布与条件分布、各变量之间的相关性等。

5.1 决策论与分类问题

​ 下面以分类问题为例介绍决策论的基本知识。分类问题的目标是针对输入变量\(\mathbf{x}\)对结果进行分类,假设所有分类为\(\{C_1,C_2,\cdots,C_k\}\),一个朴素的想法是针对输入\(\mathbf{x}\)选择概率最大的分类,也就是在\(p(C_n|\mathbf{x})~(n=1,2,\cdots,k)\)中选择值最大的,注意到

\[p(C_n|\mathbf{x})=\frac{p(\mathbf{x}|C_n)p(C_n)}{p(\mathbf{x})} \]

并且

\[p(\mathbf{x})=\sum_{n=1}^kp(\mathbf{x}|C_n)p(C_n) \]

这是决策论的基本理论依据。

​ 在实际应用中,划分分类往往是一个重要的问题。如果一个划分能使犯错误的概率最小,那么这个划分自然是一个比较合理的划分。这里的“犯错误”具体指的是:一个本应该被放入\(A\)分类的数据点被放入\(B\)分类。对于二分类情况而言,犯错误概率为

\[\begin{aligned} p(\text{mistake})&=p(\mathbf{x}\in R_1,C_2)+p(\mathbf{x}\in R_2,C_1)\\ &=\int_{R_1}p(\mathbf{x},C_2)d\mathbf{x}+\int_{R_2}p(\mathbf{x},C_1)d\mathbf{x} \end{aligned} \]

其中\(R_k\)表示决策区域(decision region),其含义是:当数据点落入\(R_k\)的时候,数据点的分类结果应该为\(C_k\)。决策区域的边界称为决策边界(decision boundary)或者决策面(decision surface)。现在考虑如何让犯错误的概率最小化。因为总的积分区域实际上是不变的,只是在不同的分区(决策区域)上对不同的被积函数进行积分,所以当被积函数尽可能小的时候,犯错误的概率会尽可能小。由于\(p(\mathbf{x},C_k)=p(C_k|\mathbf{x})p(\mathbf{x})\),其中\(p(\mathbf{x})\)是与分类无关的量,所以只要将每个\(x\)放入后验概率\(p(C_k|\mathbf{x})\)最大的类别中,那么积分值(犯错误的概率)自然就是最小的(因为此时被积函数“除去”了最大后验概率的分类,即对应被积函数最小)。现在的任务只剩下了确定决策区域。决策区域应当这样确定:使得对一个新输入\(\mathbf{x}\)而言,犯错误的概率最小,那么就是让\(\mathbf{x}\)对应的数据点落入此时后验概率最大的类别,也就是找到最大的\(p(C_k|\mathbf{x})\)。以二分类为例

PRML 基础知识_第1张图片

图中\(\hat{x}\)为决策边界,通过分析\(p(\text{mistake})\)可以知道,仅在\(\hat{x}=x_0\)时,\(p(\text{mistake})\)取最小值,下面说说为什么是这样。首先明确,图中三色部分的面积表示了整体的\(p(\text{mistake})\),具体来说,蓝色部分表示“本属于\(R_1\)被分到\(R_2\)”,红色和绿色部分之和表示“本属于\(R_2\)被分到\(R_1\)”,适当移动\(\hat{x}\)时,蓝色和绿色部分之和保持不变,而当\(\hat{x}=x_0\)时,红色部分面积为零,即\(p(\text{mistake})\)取最小值。

​ 对于\(K\)分类问题,如果\(K\)十分大,那么在计算上最大化正确概率会比最小化错误概率简单

\[\begin{aligned} p(\text{correct})&=\sum_{k=1}^Kp(\mathbf{x}\in R_k,C_k)\\ &=\sum_{k=1}^K\int_{R_k}p(\mathbf{x},C_k)d\mathbf{x} \end{aligned} \]

​ 在分类问题中,每种错误的严重程度可能是不尽相同的,不妨用矩阵形式来表示不同错误的严重程度

\[\begin{bmatrix} L_{11} & L_{12} & \cdots\\ L_{21} & L_{22} & \cdots\\ \vdots & \vdots & \end{bmatrix} \]

其中元素\(L_{kj}\)表示:输入\(\mathbf{x}\)的真实类别是\(C_k\)、但将其放入\(C_j\)的惩罚程度,数值越大越严重。这个矩阵称为损失矩阵(loss matrix)。那么就可以用损失函数(loss function)或称代价函数(cost function)来量化地表示整个模型出错的严重程度,一般而言数值越大则模型越糟糕。当然,另一种思路是用一个函数、称为效用函数(utility function),来量化地表示整个模型工作良好的程度,数值越大则模型越优秀。本专题采用损失函数的思路,即优化模型的时候只需要最小化整体平均损失

\[E(L)=\sum_k\sum_j\int_{R_j}L_{kj}p(\mathbf{x},C_k)d\mathbf{x} \]

此式描述了模型的整体平均损失,对于某个具体的输入\(\mathbf{x}\),将其分类的可能性有\(N\)种、即\(\{C_1,C_2,\cdots,C_N\}\),放入每一类都可能犯错误,考虑到\(p(\mathbf{x},C_k)=p(C_k|\mathbf{x})p(\mathbf{x})\),其中\(p(\mathbf{x})\)是共同因子,故用损失函数的思路来看,犯错误的严重程度可以依次用\(\{\sum_kL_{k1}p(C_k|\mathbf{x}),\sum_kL_{k2}p(C_k|\mathbf{x}),\cdots,\sum_kL_{kN}p(C_k|\mathbf{x}),\}\)来表示,在其中选择值最小的就可以作为输入\(\mathbf{x}\)的分类结果。

​ 到目前为止我们讨论的是非此即彼的分类情况,但是在实际应用中,可能有一些摸棱两可的情况,模型不能对其进行有效分类,摸棱两可的数据点所在的区域称为拒绝域(reject region),这种避免做出决策的做法称为拒绝选项(reject option),下图是一个典型的例子

PRML 基础知识_第2张图片

​ 分类问题严格来说应分为两个阶段:推断(inference)阶段决策(decision)阶段。在推断阶段我们使用训练集训练模型,得到一系列的后验概率\(p(C_k|\mathbf{x})\),并在决策阶段使用这些后验概率来对新的输入进行最优的分类。另一种方法是对一个函数进行学习,这时得到的这个函数可以将输入直接映射为决策结果。

​ 下面介绍分类问题的三种基本思路。

​ (a)生成式模型(generative model)方法:在此方法中,一般来说有多少个分类就会有多少个模型,对每个可能的分类\(C_k\)使用训练集确定出一系列的先验的\(p(\mathbf{x}|C_k)\)(即类条件概率密度),并在输入新的\(\mathbf{x}\)时计算一系列后验概率\(\{p(C_1|\mathbf{x}),(C_2|\mathbf{x}),\cdots,p(C_k|\mathbf{x})\}\),计算公式为

\[\begin{aligned} p(C_k|\mathbf{x})&=\frac{p(\mathbf{x}|C_k)p(C_k)}{p(\mathbf{x})}\\ &=\frac{p(\mathbf{x}|C_k)p(C_k)}{\sum_kp(\mathbf{x}|C_k)p(C_k)} \end{aligned} \]

在决策时并从中选择最大的作为分类结果。当然,如果已知各个联合分布\(p(\mathbf{x},C_k)\),也可以通过数学方法得到上述条件概率。

​ (b)判别式模型(discriminative model)方法:在此方法中,首先根据训练集确定出决策边界,并在决策时直接根据决策边界得到决策结果。

​ (c)判别函数(discriminant function)方法:此方法与概率无关,找到一个函数\(f(\mathbf{x})\),该函数直接把输入\(\mathbf{x}\)映射为决策结果。

​ 上述三种基本方法各有优劣。第一种方法当\(\mathbf{x}\)的维数较高时,需要较多的数据点才能合理确定出一系列的类条件概率密度\(p(\mathbf{x}|C_k)\),但是\(p(C_k)\)可以简单地根据训练集中各类别所占比例来得到,此种方法的一个优点在于得到了数据的边缘概率密度\(p(\mathbf{x})\),通过这个边缘概率密度可以看出训练集中哪一部分的数据点较少,从而当预测该部分的数据点时采取一些其他方法保证预测的有效性。这种手段称为离群点检测(outlier detection)或者异常检测(novelty detection)。当然,如果只想进行分类决策,则没必要计算概率分布,直接使用第二种方法更简便。第三种方法在形式上最为简便,但可能带来诸多问题,包括Minimizing risk、Reject option、Compensating for class priors、Combining models等(详见PRML一书)。

5.2 决策论与回归问题

​ 上面已经对决策论在分类问题上的应用进行了较为详细的讨论,下面将对决策论在回归问题上的应用进行讨论。分类问题是离散型的,而回归问题是连续型的,因此不能继续使用损失矩阵来衡量不同错误的严重程度,现引入一个连续的函数\(L(t,y(\mathbf{x}))\),其含义是:输入\(\mathbf{x}\)得到对\(t\)的估计为\(y(\mathbf{x})\),这样做的平均损失(或者直观来说就是出错之后的严重程度)为\(L(t,y(\mathbf{x}))\),那么平均损失就是

\[E(L)=\iint L(t,y(\mathbf{x}))p(\mathbf{x},t)d\mathbf{x}dt \]

回归问题中常设平方损失函数(squared loss),定义为\(L(t,y(\mathbf{x}))=(y(\mathbf{x})-t)^2\),即有

\[E(L)=\iint(y(\mathbf{x})-t)^2p(\mathbf{x},t)d\mathbf{x}dt \]

假设\(y(\mathbf{x})\)是任意形式的函数,现在就是要求出某个(种)函数\(y(\mathbf{x})\)使得\(E(L)\)的值最小,根据变分法(variational principle)中的欧拉-拉格朗日方程(Euler-Lagrange equation)

\[\frac{\delta f}{\delta y}=\frac{\partial f}{\partial y}-\frac{d}{dx}(\frac{\partial f}{\partial y'})=0 \]

代入\(f=E(L)\)可得

\[\frac{\delta E(L)}{\delta y(\mathbf{x})}=2\int(y(\mathbf{x})-t)p(\mathbf{x},t)dt=0 \]

可以解得

\[y(\mathbf{x})=\frac{\int tp(\mathbf{x},t)dt}{p(\mathbf{x})}=E_t(t|\mathbf{x}) \]

这表示回归函数(regression function)\(y(\mathbf{x})\)就是由条件概率分布\(p(t|\mathbf{x})\)所决定的随机变量\(t\)的均值,当然,该结果可以拓展到多个目标变量、而不仅仅只有一个目标变量\(t\)的形式。

​ 下面用一种技巧性的方法来推出同样的结论

\[\begin{aligned} (y(\mathbf{x})-t)^2&=(y(\mathbf{x})-E_t(t|\mathbf{x})+E_t(t|\mathbf{x})-t)^2\\ &=(y(\mathbf{x})-E_t(t|\mathbf{x}))^2+2(y(\mathbf{x})-E_t(t|\mathbf{x}))(E_t(t|\mathbf{x})-t)+(E_t(t|\mathbf{x})-t)^2 \end{aligned} \]

将此式代入\(E(L)\)表达式对\(t\)进行积分发现交叉项消失(详见参考资料),即得到

\[E(L)=\int(y(\mathbf{x})-E_t(t|\mathbf{x}))^2p(\mathbf{x})d\mathbf{x}+\int\text{var}(t|\mathbf{x})p(\mathbf{x})d\mathbf{x} \]

显然,当\(y(\mathbf{x})=E_t(t|\mathbf{x})\)时,\(E(L)\)取到最小值。

​ 下面介绍回归问题的三种基本思路。

​ (a)首先确定联合概率密度\(p(\mathbf{x},t)\),然后计算条件概率密度\(p(t|\mathbf{x})\),最后使用积分求出条件均值。

​ (b)首先直接求出条件概率密度\(p(t|\mathbf{x})\),然后使用积分求出条件均值。

​ (c)直接从训练集中确定出一个回归函数\(y(\mathbf{x})\)

​ 最后介绍另一个常用的损失函数:闵可夫斯基损失函数(Minkowski loss)

\[L(q)=|y(\mathbf{x})-t|^q \]

可以认为闵可夫斯基损失函数是平方损失函数的一种推广。

6 信息论

​ 考虑一个随机变量\(x\),当我们观察这个随机变量的时候,自然会得到一些信息,并且,可以认为信息量的大小反映了我们观察这个随机变量的值的“惊讶程度”:如果观察到\(x\)的一个罕见取值,那么可以认为我们得到了较多的信息;如果观察到\(x\)的一个常见取值,那么可以认为得到较少的信息。从这个观点来看,信息量的大小与随机变量\(x\)的概率分布\(p(x)\)有较强的联系,并且\(p(x)\)越大则信息量越少、\(p(x)\)越小则信息量越大。引入函数\(h(x)\)表示信息量的大小,为了确定\(h(x)\)的具体形式,需要先看看\(h(x)\)具有何种性质。

​ 当独立地观察两个随机变量\(x\)\(y\)的时候,收到的信息量可以认为是单独观察两者得到的信息量之和,也就是\(h(x+y)=h(x)+h(y)\),又因为两者独立发生,有\(p(x,y)=p(x)p(y)\),自然得到\(h(x)\)是对数形式

\[h(x)=-\log_2p(x) \]

采取\(2\)为底数完全是因为信息论的传统,此时信息的单位是比特(bit)

6.1 离散形式的熵——离散熵

​ 传输一个离散型随机变量\(x\)的时候,传输的信息量自然就是\(h(x)\)的期望

\[H(x)=-\sum_xp(x)\log_2p(x) \]

这个量被定义为随机变量\(x\)熵(entropy)。考虑到\(\lim_{p\rightarrow0}p\log_2p=0\),因此当\(p(x)=0\)时,就应当令\(p(x)\log_2p(x)=0\)

​ 在实际应用中,信息是由一组单位比特的形式向外传输的,如果一个随机变量\(x\)有八种独立的可能状态且每种状态出现的概率是等可能的,那么一种自然的编码方式是采用三位比特来对每一个状态进行编码,此时该随机变量的熵为

\[H(x)=-8\times\frac18\log_2\frac18=3~\text{bits} \]

​ 现在考虑一个不等概率的八状态随机变量\(x\),它的八状态改率分别为\(\{\frac12,\frac14,\frac18,\frac1{16},\frac1{64},\frac1{64},\frac1{64},\frac1{64}\}\),如果仍采用三比特编码则熵为

\[H(x)=-\frac12\log_2\frac12-\frac14\log_2\frac14-\frac18\log_2\frac18-\frac1{16}\log_2\frac1{16}-\frac4{64}\log_2\frac1{64}=2~\text{bits} \]

这表明,在同一种编码方式下,非均匀分布比均匀分布的熵要小,在后面从无序程度的角度讨论熵的概念的时候,还将感受到这一点。除了三比特编码方式之外,为了使平均编码长度最小,也可以使用哈夫曼编码(Huffman Coding)对八状态编码得到\(\{0,10,110,1110,111100,111101,111110,111111\}\)

\[\text{最小平均编码长度}=\frac12\times1+\frac14\times2+\frac18\times3+\frac1{16}\times4+\frac1{64}\times6=2~\text{bits} \]

无噪声编码定理(noiseless coding theorem)表明,熵是传输一个随机变量状态值所需比特位的下界。

​ 现在开始,我们将熵定义中的底数\(2\)换成自然对数\(e\),信息的单位变为奈特(nat),和比特相比,两者的差异仅是一个\(\ln2\)的因子。

​ 现在从无序程度的角度来讨论熵的概念。考虑一组完全相同的物体,共有\(N\)个,这些物体将要放入若干个箱子中,每个箱子放入\(n_i\)个,问一共有多少种放法?根据简单的组合学知识,不难得到放法为

\[W=\frac{N!}{\prod_in_i!} \]

这被称为乘数(multiplicity),现在根据乘数的概念导出熵的定义

\[H=\frac1N\ln W=\frac1N\ln N!-\frac1N\sum_i\ln n_i! \]

现在考虑\(N\rightarrow\infty\)并保持\(\frac{n_i}{N}\)不变,根据Stirling的估计

\[\ln N!\sim N\ln N-N \]

可以得到

\[H=-\lim_{N\rightarrow\infty}\sum_i(\frac{n_i}{N})\ln(\frac{n_i}{N})=-\sum_ip_i\ln p_i \]

这里的\(p_i=\lim_{N\rightarrow\infty}\frac{n_i}{N}\)是一个物体被放入第\(i\)个箱子的概率。用物理学属于来说,箱子中物体的具体分配方案被称为微观状态(microstate),而整体的占领数的分布,表示为比值\(\frac{n_i}{N}\),被称为宏观状态(macrostate)。乘数\(W\)也被称为宏观状态的权重(weight)

​ 现在假设箱子具有一组离散的不同状态\(x_i\),则熵为

\[H(p)=-\sum_ip(x_i)\ln p(x_i) \]

定性讨论\(H(p)\)的大小不难发现:如果\(p(x_i)\)较大(接近\(1\)),则\(-\ln p(x_i)\)较小(接近\(0\));如果\(p(x_i)\)较小(接近\(0\)),则\(-\ln p(x_i)\)较大(接近\(+\infty\)),也就是说\(-\ln p(x_i)\)的增长速度完全可以抵消\(p(x_i)\)的减小速度。于是可以知道:如果分布\(p(x_i)\)在某几个地方有尖锐的峰值,则\(H(p)\)的值倾向于变小。在概率归一化(normalization constraint)限制条件下用拉格朗日乘数法

\[\tilde{H}=-\sum_ip(x_i)\ln p(x_i)+\lambda(\sum_ip(x_i)-1) \]

可知当\(p(x_i)=\frac1M\)时、即所有\(p(x_i)\)都相等时,可以取得\(\tilde{H}\)的最大值,此时对应的\(H=\ln M\)。注意到用拉格朗日乘数法得到的驻点不一定是极值,为了证明确实是极值,可对\(\tilde{H}\)求二阶导数

\[\frac{\partial^2\tilde{H}}{\partial p(x_i)\partial p(x_j)}=-\delta_{ij}\frac1{p_i} \]

其中\(\delta_{ij}\)Kronecker符号

6.2 连续形式的熵——微分熵

​ 现在考虑将熵的概念从离散情况扩展到连续情况。注意到熵的概念与具体状态的分布有紧密联系,因此从根本上来说熵具有离散的因素。将连续情况分割成离散情况,也就是认为区间\(\Delta\)是一个箱子,那么根据均值定理(mean value theorem)

\[\int_{i\Delta}^{(i+1)\Delta}p(x)dx=p(x_i)\Delta \]

只要\(x\)在区间\(\Delta\)中,就将其赋值为\(x_i\),这实际上将区间\(\Delta\)中的无限个状态\(x\)用一个状态\(x_i\)来表示了,此时观察到\(x_i\)的概率为\(p(x_i)\Delta\)。现在,熵的形式为

\[H_{\Delta}=-\sum_ip(x_i)\Delta\ln(p(x_i)\Delta)=-\sum_ip(x_i)\Delta\ln p(x_i)-\ln\Delta \]

那么

\[\lim_{\Delta\rightarrow0}\{-\sum_ip(x_i)\Delta\ln p(x_i)\}=-\int p(x)\ln p(x)dx \]

等式右侧的量称为微分熵(differential entropy),此式当自变量为向量\(\mathbf{x}\)时仍然成立。上述过程揭示了一个深刻的现象:熵的离散形式和连续形式相差\(\ln\Delta\),又因为\(\ln\Delta\)\(\Delta\rightarrow0\)时是发散的,这就说明:具体化一个连续变量需要大量的比特位。现在考虑当随机变量\(x\)具有何种分布时,微分熵具有最大值,首先有三个限制条件

\[\begin{aligned} \text{归一化限制}&\quad\int_{-\infty}^{+\infty}p(x)dx=1\\ \text{一阶矩限制}&\quad\int_{-\infty}^{+\infty}xp(x)dx=\mu\\ \text{二阶矩限制}&\quad\int_{-\infty}^{+\infty}(x-\mu)^2p(x)dx=\sigma^2 \end{aligned} \]

(后两个限制条件的必要性将在后面讨论)。下面就是使用拉格朗日乘数法最大化下面的函数

\[\begin{aligned} F(x,\lambda_1,\lambda_2,\lambda_3)=&-\int_{-\infty}^{+\infty}p(x)\ln p(x)dx +\lambda_1(\int_{-\infty}^{+\infty}p(x)dx-1)\\ &+\lambda_2(\int_{-\infty}^{+\infty}xp(x)dx-\mu) +\lambda_3(\quad\int_{-\infty}^{+\infty}(x-\mu)^2p(x)dx-\sigma^2) \end{aligned} \]

使用变分法可得

\[p(x)=\frac{1}{\sqrt{2\pi}\sigma}\text{exp}\{-\frac{(x-\mu)^2}{2\sigma^2}\} \]

如果之前没有给出后两个限制条件,那么上面得到的\(p(x)\)的表达式中\(\mu\)\(\sigma\)部分将不是定值(即会变化),那么将不会存在\(p(x)\)使熵取最大值(比如,熵将会随着\(\sigma\)的无限增大而无限增大,原因下述)。如果随机变量\(x\)服从正态分布,那么\(x\)的熵就是

\[\begin{aligned} H(x)&=-\int\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}\ln(\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}})dx\\ &=-\int\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}(-\frac12\ln(2\pi\sigma^2)-\frac{(x-\mu)^2}{2\sigma^2})\\ &=\frac12\ln(2\pi\sigma^2)\int\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}dx+\frac{1}{\sqrt{2\pi}\sigma}\int e^{-\frac{(x-\mu)^2}{2\sigma^2}}\frac{(x-\mu)^2}{2\sigma^2}dx\\ &=\cdots\\ &=\frac12\{1+\ln(2\pi\sigma^2)\} \end{aligned} \]

这表明熵将会随着分布宽度(即\(\sigma^2\))的增大而增大。该结果也表明微分熵可以为负,而之前提到的离散熵一定是正数。

6.3 条件熵

​ 下面介绍条件熵(conditional entropy)的概念。条件熵是指在一个随机变量给定的条件下的系统的熵,也就是在一个给定变量的前提下,该系统熵的期望。举例来讲,当一个系统具有两个随机变量\(x\)\(y\)且具有概率分布\(p(x,y)\)的时候,如果\(x\)的值已知,那么

\[H(y|x)=-\iint p(y,x)\ln p(y|x)dydx \]

这称为给定\(x\)的条件下,\(y\)的条件熵。容易看出,条件熵具有以下关系

\[H(x,y)=H(y|x)+H(x) \]

其中\(H(x,y)\)\(p(x,y)\)的微分熵,\(H(x)\)是边缘分布\(p(x)\)的微分熵。上述关系式可以这样理解:描述\(x\)\(y\)所需的信息等于描述\(x\)的信息加上已知\(x\)时描述\(y\)所需的信息。

6.4 相对熵

​ 假设真实的分布\(p(x)\)是未知的,现在我们用\(q(x)\)\(p(x)\)进行了近似建模,那么在具体化\(x\)的值时,定义相对熵(relative entropy)Kullback-Leibler散度(Kullback-Leibler divergence,简称KL散度)来度量使用基于\(q(x)\)的估计表示\(p(x)\)的样本平均所需的额外信息量

\[\text{KL}(p||q)=-\int p(x)\ln q(x)dx-(-\int p(x)\ln p(x)dx)=-\int p(x)\ln(\frac{q(x)}{p(x)})dx \]

注意,一般而言\(\text{KL}(p||q)\neq\text{KL}(q||p)\)。从直观上知道,为了用估计来表示一个分布的样本,所需的信息量应该是非负的,也就是\(\text{KL}(p||q)\geq0\),下面从数学角度证明这一点。对于凸函数(convex function)有一个重要的结论:琴生不等式(Jensen's inequality)

\[f(\sum_{i=1}^M\lambda_ix_i)\leq\sum_{i=1}^Mf(x_i) \]

对于概率分布的情况,该不等式具有如下形式

\[f[E(x)]\leq E[f(x)] \]

也就有

\[f(\int xp(x)dx)\leq \int f(x)p(x)dx \]

则对于KL散度,有

\[\text{KL}(p||q)=-\int p(x)\ln(\frac{q(x)}{p(x)})dx\geq-\ln(\int{q(x)}dx)=0 \]

等号当且仅当\(q(x)=p(x)\)​对所有\(x\)​都成立时才成立。最后给出离散形式的KL散度

\[\text{KL}(p||q)=-\sum_xp(x)\ln q(x)-(-\sum_xp(x)\ln p(x))=-\sum_xp(x)\ln(\frac{q(x)}{p(x)}) \]

显然,当我们在用\(q(x)\)\(p(x)\)进行建模的时候,自然想要让KL散度尽可能的小,这样\(q(x)\)\(p(x)\)之间就有尽可能高的相似度。由于\(p(x)\)未知,故不能直接对KL散度的定义式进行最小化操作,但训练集给了我们一些准确的满足\(p(x)\)​的数据点,因此

\[\begin{aligned} \text{KL}(p||q)&\sim\frac1N\sum_{n=1}^N\{-\ln q(x_n|\theta)+\ln p(x_n)\}\\ &=\frac1N\{-\ln{\prod_{i=1}^N{q(x_n|\theta)}}+\ln{\prod_{i=1}^N{p(x_n)}}\} \end{aligned} \]

其中\(q(x|\theta)\)中的\(\theta\)是选定模型的超参数,可以进行人为调整。此式第一项是估计分布\(q(x|\theta)\)的似然函数的负对数,第二项与估计分布\(q(x|\theta)\)无关,这从理论上说明了:最小化KL散度等价于最大化似然函数。

6.5 互信息

​ 从一般意义上说,KL散度衡量了两个信息的相似程度,这在某些方面和协方差的实际含义类似,但协方差只能反映线性关系,而KL散度具有更一般的意义。现在考虑一个二元分布\(p(x,y)\),如果\(x\)\(y\)相互独立,那么\(p(x,y)=p(x)p(y)\),但如果不知道\(x\)\(y\)不是独立的,我们可以用KL散度来衡量\(x\)\(y\)是否接近于独立。此时的KL散度为

\[I(x,y)\equiv \text{KL}(p(x,y)||p(x)p(y))=-\iint p(x,y)\ln(\frac{p(x)p(y)}{p(x,y)})dxdy \]

这称为变量\(x\)和变量\(y\)之间的互信息(mutual information)。根据KL散度的性质知道\(I(x,y)\geq0\),并且等号当且仅当\(x\)\(y\)相互独立时成立。互信息具有下面重要性质

\[I(x,y)=H(x)-H(x|y)=H(y)-H(y|x) \]

可以认为当知道\(y\)条件下\(x\)的分布时,\(x\)的不确定性减小(反之亦然)。

7 参考资料

  • Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006
  • Markus Svensen, Christopher M. Bishop, Pattern Recognition and Machine Learning - Solutions to the Exercises: Tutors’ Edition, Springer, 2009
  • 马春鹏,《模式识别与机器学习》(本文部分名词翻译来自此书),PRML的网传中文版,2014
  • 概率论中的频率主义和贝叶斯主义
  • 贝叶斯法则
  • 贝叶斯学习
  • 深度学习超参数介绍及调参
  • 训练集 验证集 测试集
  • What Is Cross-Validation?
  • Curse of Dimensionality Definition
  • Decision Theory
  • Decision Theory - A Brief Introduction
  • 机器学习中的判别式模型和生成式模型
  • 浅谈变分原理
  • 泛函导数(变分导数)
  • PRML第47页损失函数中交叉项为什么会消失
  • Bayesian Scientific Computing
  • Why constrain mean and standard deviation when proving Gaussian is maximum differential entropy probability density function?
  • 相对熵
  • 互信息
  • 互信息(Mutual Information)
    PRML 基础知识_第3张图片

你可能感兴趣的:(PRML 基础知识)