线性回归模型
贝叶斯线性回归
如前所述,最小二乘法可以看成对概率模型的最大似然估计,存在过拟合的风险;同时,为了对估计的质量进行刻画,需要考虑多次重复性实验(即对多次的训练数据集D\mathcal{D}D进行平均)。这种“重复实验”的范式在实际应用中存在不足,首先,多次重复实验带来更多的计算代价。其次,如果有多个训练集,更加有效的方式应该是将其合并成一个更大的数据集,更加充分的训练模型。贝叶斯推断提供了另外一种思路,在给定一个数据集的情况下,刻画模型自身的不确定性,可以有效避免过拟合。同时,带有正则化项的回归模型可以看作贝叶斯推断的特例。
贝叶斯推断的基本思想是将未知变量看成随机变量,在观察数据之前,对变量的取值用一个先验分布刻画。在观察到数据之后,利用贝叶斯定理对先验分布进行更新,得到后验分布。一线性回归为例,模型的参数w\boldsymbol{w}w是未知的。为此,假设先验分布p(w)p(\boldsymbol{w})p(w),给定训练集D\mathcal{D}D,贝叶斯后验分布为
p(w∣D)=p(D∣w)⋅p(w)p(D)
p(\boldsymbol{w}|\mathcal{D}) = \frac{p(\mathcal{D}|\boldsymbol{w})\cdot p(\boldsymbol{w})}{p(\mathcal{D})}
p(w∣D)=p(D)p(D∣w)⋅p(w)
其中p(D∣w)p(\mathcal{D}|\boldsymbol{w})p(D∣w)是描述数据生成的似然函数,p(D)p(\mathcal{D})p(D)为“证据”。
最大后验分布估计
从贝叶斯的角度,正则化可以看成对后验分布的MAP估计,即最大后验估计(Maximum a Posterior, MAP),其一般形式如下:
w^MAP=argmaxwlogp(D∣w)+logp(w)
\hat{\boldsymbol{w}}_{\text{MAP}} = \arg{\max_{\boldsymbol{w}}{ \log{p(\mathcal{D}|\boldsymbol{w})} + \log{p(\boldsymbol{w})} }}
w^MAP=argwmaxlogp(D∣w)+logp(w)
这里忽略了与w\boldsymbol{w}w无关的项−logp(D)-\log{p(\mathcal{D})}−logp(D)。对于线性回归模型,数据的似然函数是一个高斯分布。如果先验分布是均匀分布,MAP估计退化为最大似然估计。通常情况下,我们选择高斯分布作为先验分布:
p(w)=∏i=1dN(wi∣0,τ2)
p(\boldsymbol{w}) = \prod_{i=1}^{d}{\mathcal{N}(w_{i}|0,\tau^{2})}
p(w)=i=1∏dN(wi∣0,τ2)
这里设置均值为0,表示在得到数据之前我们倾向于认为各个参数wiw_{i}wi越接近0,可能性越大。将上式代入MAP的一般形式,可以得到具体的MAP估计:
w^MAP=argmaxw∑i=1NN(yi∣w⊤xi,σ2)+∑i=1dlogN(wj∣0,τ2)
\hat{\boldsymbol{w}}_{\text{MAP}} = \arg{\max_{\boldsymbol{w}}{ \sum_{i=1}^{N}{\mathcal{N}(y_{i}|\boldsymbol{w^{\top}x}_{i},\sigma^{2})} + \sum_{i=1}^{d}{\log{\mathcal{N}(w_{j}|0,\tau^{2})}} }}
w^MAP=argwmaxi=1∑NN(yi∣w⊤xi,σ2)+i=1∑dlogN(wj∣0,τ2)
在设定合适的超参数σ2\sigma^{2}σ2和τ2\tau^{2}τ2的情况下,该问题与岭回归等价。因此,岭回归实际上是一种特殊贝叶斯模型的MAP估计。类似地,Lasso实际上也是一种MAP估计,其中先验分布设为拉普拉斯分布:
p(w)=∏i=1d12bexp(−∣wi−μ∣b)
p(\boldsymbol{w}) = \prod_{i=1}^{d}{\frac{1}{2b}\exp{\left( -\frac{|w_{i} - \mu|}{b} \right)}}
p(w)=i=1∏d2b1exp(−b∣wi−μ∣)
其中均值μ∈R\mu\in\Rμ∈R,b>0b\gt0b>0为尺度参数。在Lasso回归中,均值设为0。相比于高斯分布,拉普拉斯分布具有更加“平缓”的尾部。事实上,拉普拉斯分布可以写成无穷多个高斯分布的“混合”:
p(w)=12bexp(−∣wi−μ∣b)=∫p(w∣μ,τ)p(τ)dτ
p(w) = \frac{1}{2b}\exp{\left( -\frac{|w_{i} - \mu|}{b} \right)} = \int{p(w|\mu,\tau)p(\tau)d\tau}
p(w)=2b1exp(−b∣wi−μ∣)=∫p(w∣μ,τ)p(τ)dτ
其中p(τ)=12b2exp(−w2b2)p(\tau) = \frac{1}{2b^{2}}\exp\left( -\frac{w}{2b^{2}} \right)p(τ)=2b21exp(−2b2w)为指数分布,p(w∣μ,τ)=N(μ,τ)p(w|\mu,\tau) = \mathcal{N}(\mu,\tau)p(w∣μ,τ)=N(μ,τ)为高斯分布。这种形式称为“尺度高斯混合”(Scale Mixture of Gaussians),是一种很有用的表示方式,后文将利用该形式推导贝叶斯Lasso的采样算法。
贝叶斯预测分布
最大似然估计和MAP估计均是寻找某种目标函数下最优的单一参数,而贝叶斯推断可以充分利用后验分布p(w∣D)p(\boldsymbol{w}|\mathcal{D})p(w∣D)的信息。如何准确、高效地计算后验分布是贝叶斯推断的核心问题,通常情况下,也是一个困难的问题。
首先考虑相对简单的情况——先验分布和似然函数满足共轭性。具体地,对于线性回归模型,其似然函数p(y∣x)p(y|\boldsymbol{x})p(y∣x)是一个正态分布N(μ,σ2)\mathcal{N}(\mu,\sigma^{2})N(μ,σ2),其中μ=w⊤x\mu = \boldsymbol{w^{\top}x}μ=w⊤x。假设先验分布也是高斯分布:
p(w)=N(w∣w0,V0)
p(\boldsymbol{w}) = \mathcal{N}(\boldsymbol{w}|\boldsymbol{w}_{0},\boldsymbol{V}_{0})
p(w)=N(w∣w0,V0)
其中w0\boldsymbol{w}_{0}w0为均值,V0\boldsymbol{V}_{0}V0为协方差矩阵。可以推出后验分布:
p(w∣X,y,σ2)∝N(w0,V0)N(y∣Xw,σ2IN)=N(w∣wN,VN)
p(\boldsymbol{w}|\boldsymbol{X},\boldsymbol{y},\sigma^{2})\propto\mathcal{N}(\boldsymbol{w}_{0},\boldsymbol{V}_{0})\mathcal{N}(\boldsymbol{y}|\boldsymbol{Xw},\sigma^{2}\boldsymbol{I}_{N}) = \mathcal{N}(\boldsymbol{w}|\boldsymbol{w}_{N},\boldsymbol{V}_{N})
p(w∣X,y,σ2)∝N(w0,V0)N(y∣Xw,σ2IN)=N(w∣wN,VN)
其中具体参数如下:
wN=VNV0−1w0+1σ2VNX⊤yVN=σ2(σ2V0−1+X⊤X)−1
\boldsymbol{w}_{N} = \boldsymbol{V}_{N}\boldsymbol{V}_{0}^{-1}\boldsymbol{w}_{0}+\frac{1}{\sigma^{2}}\boldsymbol{V}_{N}\boldsymbol{X}^{\top}\boldsymbol{y}
\\[10pt]
\boldsymbol{V}_{N} = \sigma^{2}\left( \sigma^{2}\boldsymbol{V}_{0}^{-1}+\boldsymbol{X}^{\top}\boldsymbol{X} \right)^{-1}
wN=VNV0−1w0+σ21VNX⊤yVN=σ2(σ2V0−1+X⊤X)−1
在实际应用中,最常用的高斯先验分布为N(w∣0,σ2I)\mathcal{N}(\boldsymbol{w}|\boldsymbol{0},\sigma^{2}\boldsymbol{I})N(w∣0,σ2I)。
对于给定的测试数据x\boldsymbol{x}x,需要做出相应的预测yyy。在贝叶斯推断中,我们计算预测分布:
p(y∣x,D)=∫p(y∣w,x,D)p(w∣D)dw
p(y|\boldsymbol{x},\mathcal{D}) = \int{p(y|\boldsymbol{w},\boldsymbol{x},\mathcal{D})p(\boldsymbol{w}|\mathcal{D})d\boldsymbol{w}}
p(y∣x,D)=∫p(y∣w,x,D)p(w∣D)dw
其中p(w∣D)p(\boldsymbol{w}|\mathcal{D})p(w∣D)为后验分布。由前文所述,一般情况下,假设p(y∣w,x,D)=p(y∣w,x)p(y|\boldsymbol{w},\boldsymbol{x},\mathcal{D}) = p(y|\boldsymbol{w},\boldsymbol{x})p(y∣w,x,D)=p(y∣w,x),即在给定模型参数的情况下,当前数据的分布于历史数据无关。这种假设通常是合理的,因为我们希望历史数据的信息都包含在模型w\boldsymbol{w}w的后验分布中。具体地,对于高斯先验的线性回归模型,可以得到:
p(y∣x,D)=∫N(y∣x⊤w,σ2)N(w∣wN,VN)dw=N(y∣wN⊤x,σN2(x))
\begin{aligned}
p(y|\boldsymbol{x},\mathcal{D}) &= \int{\mathcal{N}(y|\boldsymbol{x^{\top}w},\sigma^{2})\mathcal{N}(\boldsymbol{w}|\boldsymbol{w}_{N},\boldsymbol{V}_{N})d\boldsymbol{w}}
\\[5pt]
&= \mathcal{N}(y|\boldsymbol{w}_{N}^{\top}\boldsymbol{x},\sigma_{N}^{2}(\boldsymbol{x}))
\end{aligned}
p(y∣x,D)=∫N(y∣x⊤w,σ2)N(w∣wN,VN)dw=N(y∣wN⊤x,σN2(x))
其中σN2(x)=σ2+x⊤VNx\sigma_{N}^{2}(\boldsymbol{x}) = \sigma^{2}+\boldsymbol{x^{\top}V}_{N}\boldsymbol{x}σN2(x)=σ2+x⊤VNx。输出yyy的后验是一个正态分布,其均值是参数与输入的线性组合wN⊤x\boldsymbol{w}_{N}^{\top}\boldsymbol{x}wN⊤x,这与我们的直觉相符。而方差也是一个随着输入x\boldsymbol{x}x变化的量,而非一个定值。但σN2\sigma_{N}^{2}σN2由两部分组成:前一项考虑数据自身的方差(噪声);而后一项考虑与D\mathcal{D}D中数据点的关系,属于模型的不确定性。在已经给定了数据点的x\boldsymbol{x}x福建对应的不确定性较小,后验分布的方差也较小;反之,距离数据点较远的x\boldsymbol{x}x处不确定性较大,得到的方差也会较大。此外,可以证明σN+12(x)≤σN2(x)\sigma_{N+1}^{2}(\boldsymbol{x})\le\sigma_{N}^{2}(\boldsymbol{x})σN+12(x)≤σN2(x),且当N→∞N\to\infinN→∞时,σN2(x)\sigma_{N}^{2}(\boldsymbol{x})σN2(x)的第二项趋于0,即当训练样本足够多时,模型的不确定性逐渐消失。
贝叶斯模型选择
贝叶斯方法通过考虑模型不确定性,可以进行模型选择。假设有LLL个不同的模型可供选择:
{Mi},i=1,2,…,L
\left\{ \mathcal{M}_{i} \right\},\quad i = 1,2,\dots,L
{Mi},i=1,2,…,L
其中每个模型Mi\mathcal{M}_{i}Mi代表数据集D\mathcal{D}D上的一个分布。例如,在线性回归模型中,模型刻画分布为p(y∣x)p(y|\boldsymbol{x})p(y∣x),使用不同阶的多项式函数对应了不同的概率分布。对一个给定的数据集,假设其服从候选模型(分布)的某一个,但不知道具体是哪个,因此需要模型选择。
贝叶斯方法通过先验和后验分布描述模型的不确定性。对于给定的数据D\mathcal{D}D,模型的后验分布为
p(Mi∣D)∝p(Mi)⋅p(D∣Mi)
p(\mathcal{M}_{i}|\mathcal{D}) \propto p(\mathcal{M}_{i})\cdot p(\mathcal{D}|\mathcal{M}_{i})
p(Mi∣D)∝p(Mi)⋅p(D∣Mi)
其中先验分布表达了对不同模型的偏好程度,第二项称为模型证据。在没有足够先验知识的情况下,一般假设不同模型具有相同的先验概率(即均匀先验分布)。因此,模型证据通常是我们更关心的,它描述了数据对不同模型的偏好程度。模型证据也称为边缘似然,因为对于参数化模型Mi\mathcal{M}_{i}Mi,它可以写成对未知参数w\boldsymbol{w}w进行边缘化得到的:
p(D∣Mi)=∫p(w,D∣Mi)dw=∫p(w∣Mi)p(D∣w,Mi)dw
\begin{aligned}
p(\mathcal{D}|\mathcal{M}_{i}) &= \int{p(\boldsymbol{w},\mathcal{D}|\mathcal{M}_{i})d\boldsymbol{w}}
\\[5pt]
&= \int{p(\boldsymbol{w}|\mathcal{M}_{i})p(\mathcal{D}|\boldsymbol{w},\mathcal{M}_{i})d\boldsymbol{w}}
\end{aligned}
p(D∣Mi)=∫p(w,D∣Mi)dw=∫p(w∣Mi)p(D∣w,Mi)dw
通常将两个模型的模型证据之比称为贝叶斯因子:
Bayes Factor=p(D∣Mi)p(D∣Mj)
\text{Bayes Factor} = \frac{p(\mathcal{D}|\mathcal{M}_{i})}{p(\mathcal{D}|\mathcal{M}_{j})}
Bayes Factor=p(D∣Mj)p(D∣Mi)
如果贝叶斯因子大于1,代表Mi\mathcal{M}_{i}Mi比Mj\mathcal{M}_{j}Mj更符合此数据集,反之亦然。
通过对模型参数进行边缘化,模型证据可以综合考虑模型复杂度,选择适中的模型。如果假设候选模型集合足够大,包含真实数据分布,那么可以证明上述贝叶斯模型选择在平均意义上可以选择出正确模型。具体地,假设候选模型M1\mathcal{M}_{1}M1是生成D\mathcal{D}D的正确模型,对于任意一个其他模型M2\mathcal{M}_{2}M2,通过对数据分布(即p(D∣M1)p(\mathcal{D}|\mathcal{M}_{1})p(D∣M1))求期望,计算平均意义下的贝叶斯因子:
∫p(D∣M1)logp(D∣M1)p(D∣M2)dD
\int{p(\mathcal{D}|\mathcal{M}_{1})\log{\frac{p(\mathcal{D}|\mathcal{M}_{1})}{p(\mathcal{D}|\mathcal{M}_{2})}}d\mathcal{D}}
∫p(D∣M1)logp(D∣M2)p(D∣M1)dD
可以发现,这实际上是分布p(D∣M1)p(\mathcal{D}|\mathcal{M}_{1})p(D∣M1)和p(D∣M2)p(\mathcal{D}|\mathcal{M}_{2})p(D∣M2)之间的KL散度。根据KL散度的非负性,平均而言贝叶斯模型选择会倾向选择正确的模型M1\mathcal{M}_{1}M1,即贝叶斯因子所定义的比较方式在所有数据集平均的角度上会做出正确的选择。
模型评估
对模型性能的评估是机器学习的重要方面:一方面,模型评估是对学习结果的诊断分析;另一方面,在正则化线性回归以及后文将介绍的很多机器学习模型中,往往涉及超参数的选择,需要评估不同超参数下的模型性能。
评价指标
评价指标是模型评估的一个重要方面。以二分类任务为例,设测试样本数为MMM,其中正样本数为PPP,负样本数为NNN。记正确分为正类的样本数为TPTPTP,错误分为正类的样本数为FPFPFP;正确分为负类的样本数为TNTNTN,错误分为负类的样本数为FNFNFN。常用的评价准则包括如下5个:
- 准确率:分类正确样本占总样本数的比率,即TP+TNM\frac{TP+TN}{M}MTP+TN。
- 精度(也称召回率、真阳率):准确预测为正类的样本占所有正类样本的比率,即TPP\frac{TP}{P}PTP。
- 混淆矩阵:描述每一类样本中被正确分类或错误分类的数目(或比率)。相比于准确率和精度,混淆矩阵包含了更详细的信息。
- 对数损失:对于输出是预测概率的分类器,对数损失定义为正确类别对应预测概率值的对数。
- AUC(ROC曲线下面积):ROC曲线是描述真阳率(纵轴TPR=TPPTPR = \frac{TP}{P}TPR=PTP)随假阳率(横轴FPR=FPPFPR = \frac{FP}{P}FPR=PFP)变化的曲线。该变化是由分类决策时采用的阈值决定的——分类器预测正类的准则为f(x)>Tf(\boldsymbol{x})\gt Tf(x)>T,其中TTT为阈值,改变TTT值得到不同的分类结果。AUC值是ROC曲线的线下面积,它描述了分类器在不同阈值设定下的性能。AUC值越高,表明分类器能够更好地区分正负样本。