(拖了8个多月,我终于又开始读PRML了。从年初到现在,中间被很多其他事情耽搁了,包括读CVMLI、重学线性代数、刷闫令琪老师的CG Games101、读花书,等等……终于轮到PRML了,开心的一批。这回尽量每周读一章,嗯,尽量……)
第3章 Linear Models For Regression
3.1 Linear Basis Function Models
P143 线性回归的几何解释
记训练集标注为 t = ( t 1 , . . . , t N ) T \bf t = (t_1, ..., t_N)^T t=(t1,...,tN)T,并构成标注空间 R N \mathbb R^N RN, S \mathcal{S} S是能在训练集的标注空间中用广义线性回归张成的超平面
- 这里线性回归的基可以是带核
φ
(
X
)
\varphi (X)
φ(X)的,实际上带核的仍然是张成超平面,而不是曲面,超平面的第
i
i
i个基由
φ
i
(
X
)
\varphi_i(X)
φi(X)决定,
φ
i
\varphi_i
φi表示第
i
i
i个特征,
X
X
X表示所以的N个数据。
这样线性回归是求了标注空间中训练集所在位置在超平面上的投影,垂直距离即为最小二乘的结果。
P143 多重共线性
之前只知道多重共线性不好,到底哪里不好一直说不清楚。这里把它讲清楚。
多重共线性的灾难在于参数值爆炸。
- 我们记训练集(经过核变换后)为 Φ ∈ R N × M \Phi \in \mathbb{R}^{N \times M} Φ∈RN×M,其中 M M M是特征维度。用 r ( ⋅ ) r(\cdot) r(⋅)表示秩, r ( Φ ) < M r(\Phi)<M r(Φ)<M时,即产生了多重共线性问题,也即特征之间线性相关。注意到 r ( Φ ) = r ( Φ T Φ ) = r ( Φ Φ T ) r(\Phi) = r(\Phi^T \Phi) = r(\Phi \Phi^T) r(Φ)=r(ΦTΦ)=r(ΦΦT),(注:方法为证明 Φ x = 0 \Phi x =0 Φx=0与 Φ T Φ x = 0 \Phi^T \Phi x= 0 ΦTΦx=0同解)。所以如何判断 r ( Φ ) r(\Phi) r(Φ)与 M M M的关系,只需要计算 Φ T Φ \Phi^T \Phi ΦTΦ是否奇异。
- 实际上,如果 Φ T Φ \Phi^T \Phi ΦTΦ接近奇异,即行列式很小,那么线性回归的参数闭式解 ( Φ T Φ ) − 1 Φ T t (\Phi^T \Phi)^{-1} \Phi^T \bf t (ΦTΦ)−1ΦTt会非常大。
- 从几何角度解释,即两个基向量方向非常近,那么为了表达出与这两个基向量几乎垂直的方向上的位置,这两个向量需要不断抵消,系数会增长非常快!
3.3 Bayesian Linear Regression
参考博客频率学派 vs 贝叶斯学派
P156 贝叶斯线性回归形式化
贝叶斯回归中,不断加样本,精确度矩阵的正定性会越强。
p
(
t
∣
X
,
w
,
β
)
=
∏
n
=
1
N
(
t
n
∣
w
T
ϕ
(
x
n
)
,
β
−
1
)
p
(
w
)
=
N
(
w
∣
m
0
,
S
0
)
\begin{aligned} p( \textbf t| \textbf X, \textbf w,\beta) &=\prod_{n=1}^N \mathcal (t_n| \textbf w^T\phi(\textbf x_n), \beta^{-1}) \\ p( \textbf w) &=\mathcal N( \textbf w|\textbf m_0, \textbf S_0) \end{aligned}
p(t∣X,w,β)p(w)=n=1∏N(tn∣wTϕ(xn),β−1)=N(w∣m0,S0)
可以得到参数后验分布
p
(
w
∣
t
)
=
N
(
w
∣
m
N
,
S
N
)
m
N
=
S
N
(
S
0
−
1
m
0
+
β
Φ
T
t
)
S
N
−
1
=
S
0
−
1
+
β
Φ
T
Φ
\begin{aligned} p(\textbf w| \textbf t) &=\mathcal N (\textbf w|\textbf m_N,\textbf S_N) \\ \textbf m_N&=\textbf S_N(\textbf S_0^{-1} \textbf m_0+\beta {\Phi}^T \textbf t) \\ \textbf S_N^{-1} &=\textbf S_0^{-1}+ \beta \Phi^T\Phi \end{aligned}
p(w∣t)mNSN−1=N(w∣mN,SN)=SN(S0−1m0+βΦTt)=S0−1+βΦTΦ
常取
m
0
=
0
\textbf m_0 = 0
m0=0,
S
0
=
α
−
1
I
\textbf S_0=\alpha ^{-1}\textbf I
S0=α−1I,所以
m
N
=
β
S
N
Φ
T
t
S
N
−
1
=
α
I
+
β
Φ
T
Φ
\begin{aligned} \textbf m_N &=\beta \textbf S_N \Phi^T \textbf t \\ \textbf S_N^{-1} &=\alpha \textbf I + \beta \Phi ^T \Phi \end{aligned}
mNSN−1=βSNΦTt=αI+βΦTΦ.
Φ
=
[
ϕ
(
x
0
)
T
;
ϕ
(
x
1
)
T
;
⋯
;
ϕ
(
x
N
−
1
)
T
]
\Phi=[\phi(x_0)^T; \phi(x_1)^T;\cdots;\phi(x_{N-1})^T]
Φ=[ϕ(x0)T;ϕ(x1)T;⋯;ϕ(xN−1)T],进而
p
(
t
t
e
s
t
∣
x
,
t
,
X
,
α
,
β
)
=
N
(
t
t
e
s
t
∣
m
N
T
ϕ
(
x
)
,
σ
N
2
(
x
)
)
σ
N
2
(
x
)
=
1
β
+
ϕ
(
x
)
T
S
N
ϕ
(
x
)
\begin{aligned} p(t_{test}|\textbf x,\textbf t, \textbf X, \alpha, \beta) &=\mathcal N (t_{test}|\textbf m_N^T\phi(\textbf x), \sigma^2_N(\textbf x)) \\ \sigma^2_N(\textbf x) &=\frac{1}{\beta} + \phi(\textbf x)^T\textbf S_N \phi(\textbf x) \end{aligned}
p(ttest∣x,t,X,α,β)σN2(x)=N(ttest∣mNTϕ(x),σN2(x))=β1+ϕ(x)TSNϕ(x)
- σ N + 1 2 ⩽ σ N 2 \sigma_{N+1}^2\leqslant \sigma_N^2 σN+12⩽σN2
- 当 N → ∞ N\rightarrow\infty N→∞时,上式第二项趋近于0.
P159 等价核Equivalent kernel
预测均值为
y
(
x
,
m
N
)
=
m
N
T
ϕ
(
x
)
=
β
ϕ
(
x
)
T
S
N
Φ
T
t
=
∑
n
=
1
N
β
ϕ
(
x
)
T
S
N
ϕ
(
x
n
)
t
n
=
∑
n
=
1
N
k
(
x
,
x
n
)
t
n
\begin{aligned} y(\textbf x, \textbf m_N)= \textbf m_N^T\phi(x) = \beta\phi(\textbf x) ^T \textbf S_N {\Phi}^T \textbf t = \sum_{n=1}^N \beta \phi(x)^T \textbf S_N \phi(x_n)t_n= \sum_{n=1}^N k(\textbf x, \textbf x_n)t_n \end{aligned}
y(x,mN)=mNTϕ(x)=βϕ(x)TSNΦTt=n=1∑Nβϕ(x)TSNϕ(xn)tn=n=1∑Nk(x,xn)tn
其中
k
(
x
,
x
′
)
=
β
ϕ
(
x
)
T
S
N
ϕ
(
x
′
)
k(x, x')=\beta \phi(x)^T \textbf S_N\phi(x')
k(x,x′)=βϕ(x)TSNϕ(x′)
称为平滑矩阵smoother matrix或等价核
对于数据集,可以证明(严谨的证明待补,自己整了一遍,能证出来),有
∑
n
=
1
N
k
(
x
,
x
n
)
=
1
\sum_{n=1}^N k(\textbf x,\textbf x_n)=1
n=1∑Nk(x,xn)=1
(这里需要数据点的个数
N
N
N多于独立的基函数;还要一个基函数是常数,对应偏置项,例如
ϕ
0
(
x
)
=
1
\phi_0(\textbf x)=1
ϕ0(x)=1)
另外,等价核可以分解成
k
(
x
,
z
)
=
ψ
(
x
)
T
ψ
(
z
)
k(\textbf x,\textbf z)=\psi(\textbf x)^T \psi (\textbf z)
k(x,z)=ψ(x)Tψ(z)
其中
ψ
(
x
)
=
β
1
/
2
S
N
1
/
2
ϕ
(
x
)
\psi(\textbf x)=\beta^{1/2}\textbf S_N^{1/2} \phi(\textbf x)
ψ(x)=β1/2SN1/2ϕ(x)
3.4 Bayesian Model Comparison
贝叶斯方法防止过拟合的原因在于平滑。而贝叶斯模型比较的方法则也是不需要测试集的,评估的是模型的后验分布
假设有一堆模型
{
M
i
∣
i
=
1
,
.
.
.
,
L
}
\{\mathcal M_i | i=1, ..., L\}
{Mi∣i=1,...,L},则
p
(
M
i
∣
D
)
∝
p
(
M
i
)
p
(
D
∣
M
i
)
p(\mathcal M_i|\mathcal D) \propto p(\mathcal M_i) p(\mathcal D |\mathcal M_i)
p(Mi∣D)∝p(Mi)p(D∣Mi)
如果假设所有模型的
p
(
M
i
)
p(\mathcal M_i)
p(Mi)相等,则直接比较模型证据model evidence(也叫边缘似然marginal likelihood)
p
(
D
∣
M
i
)
p(\mathcal D|\mathcal M_i)
p(D∣Mi)。两个模型的后验之比
p
(
D
∣
M
i
)
/
p
(
D
∣
M
j
)
p(\mathcal D|\mathcal M_i)/p(\mathcal D|\mathcal M_j)
p(D∣Mi)/p(D∣Mj)叫做贝叶斯因子(Bayes factor)
一旦知道了模型关于数据的后验,数据预测方法为
p
(
t
∣
x
,
D
)
=
∑
i
=
1
L
p
(
t
∣
x
,
M
i
,
D
)
p
(
M
i
∣
D
)
p(t|\textbf x, \mathcal D)=\sum_{i=1}^L p(t|\textbf x, \mathcal M_i, \mathcal D)p(\mathcal M_i |\mathcal D)
p(t∣x,D)=i=1∑Lp(t∣x,Mi,D)p(Mi∣D)
这是混合分布mixture distribution的一个例子。其简单近似是选其中最可能的模型做预测,这叫做模型选择model selection
模型证据可以写成
p
(
D
∣
M
i
)
=
∫
p
(
D
∣
θ
,
M
i
)
p
(
θ
∣
M
i
)
d
θ
p(\mathcal D|\mathcal M_i)=\int p(\mathcal D|\theta, \mathcal M_i)p(\theta|\mathcal M_i)d\theta
p(D∣Mi)=∫p(D∣θ,Mi)p(θ∣Mi)dθ
注意模型证据实际上是参数后验估计的分母归一化项
p
(
θ
∣
D
,
M
i
)
=
p
(
D
∣
θ
,
M
i
)
p
(
θ
∣
M
i
)
p
(
D
∣
M
i
)
p(\theta|\mathcal D,\mathcal M_i)=\frac{p(\mathcal D|\theta, \mathcal M_i)p(\theta|\mathcal M_i)}{p(\mathcal D|\mathcal M_i)}
p(θ∣D,Mi)=p(D∣Mi)p(D∣θ,Mi)p(θ∣Mi)
- 对于越复杂的模型, θ \theta θ维度越高, p ( D ∣ θ , M i ) p(\mathcal D|\theta, \mathcal M_i) p(D∣θ,Mi)能取得越高,但是对应高概率的 θ \theta θ区域 θ p ( θ ∣ M i ) Δ θ \theta p(\theta|\mathcal M_i) \Delta \theta θp(θ∣Mi)Δθ会越低,所以这里有一个trade-off
- 贝叶斯模型比较倾向于选择正确的模型,假设模型
M
1
\mathcal M_1
M1是数据集
D
\mathcal D
D的真实模型,
M
2
\mathcal M_2
M2是另一个模型,则数据集
D
\mathcal D
D的分布服从
p
(
D
∣
M
1
)
p(\mathcal D|\mathcal M_1)
p(D∣M1),在某种采样下会出现
p
(
D
∣
M
1
)
p(\mathcal D| \mathcal M_1)
p(D∣M1)小于
p
(
D
∣
M
2
)
p(\mathcal D|\mathcal M_2)
p(D∣M2)的情况,但是在期望贝叶斯因子来看,则一定会选出
M
1
\mathcal M_1
M1
∫ p ( D ∣ M 1 ) ln p ( D ∣ M 1 ) p ( D ∣ M 2 ) d D \int p(\mathcal D|\mathcal M_1)\ln \frac{p(\mathcal D|\mathcal M_1)}{p(\mathcal D|\mathcal M_2)}d\mathcal D ∫p(D∣M1)lnp(D∣M2)p(D∣M1)dD
注意上式是KL散度的形式,恒为正。实际上如果不用对数贝叶斯因子,直接比较贝叶斯因子也能证,即 ∫ p ( D ∣ M 1 ) p ( D ∣ M 1 ) p ( D ∣ M 2 ) d D ⩾ 1 \int p(\mathcal D|\mathcal M_1) \frac{p(\mathcal D|\mathcal M_1)}{p(\mathcal D|\mathcal M_2)}d\mathcal D\geqslant 1 ∫p(D∣M1)p(D∣M2)p(D∣M1)dD⩾1 - 贝叶斯比较方法虽好,但需要对模型的形式作出假设(应是对 θ \theta θ的先验分布做出假设),如果假设出问题,那就会出错。此外,如果参数的先验分布是反常的(例如方差趋于无穷大的高斯分布),那么模型证据会趋近于0,但也可以通过先考虑证据比值,即贝叶斯因子,取极限,得到有意义的答案。而在实际应用中,则直接用一个测试集,进行评估。(不得不说,这是一种妥协)
3.5 The Evidence Approximation
P165 线性基函数模型的证据近似
对于线性回归问题中的超参数
α
,
β
\alpha, \beta
α,β,可以用经验贝叶斯empirical Bayes(也叫第2类最大似然type 2maximum likelihood,推广的最大似然generalized maximum likelihood)的方法进行固定值优化
p
(
t
∣
α
,
β
)
=
∫
p
(
t
∣
w
,
β
)
p
(
w
∣
α
)
d
w
p(\textbf t|\alpha, \beta)=\int p(\textbf t|\textbf w, \beta)p(\textbf w|\alpha)d\textbf w
p(t∣α,β)=∫p(t∣w,β)p(w∣α)dw
这里
t
\textbf t
t是label,省略了feature
X
X
X.
化简后得到(配平方或者带入线性高斯模型)
ln
p
(
t
∣
α
,
β
)
=
M
2
ln
α
+
N
2
ln
β
−
E
(
m
N
)
−
1
2
ln
∣
A
∣
−
N
2
ln
(
2
π
)
\ln p(\textbf t|\alpha, \beta)=\frac{M}{2}\ln \alpha + \frac{N}{2}\ln \beta -E(\textbf m_N)-\frac{1}{2}\ln |\textbf A| - \frac{N}{2}\ln(2\pi)
lnp(t∣α,β)=2Mlnα+2Nlnβ−E(mN)−21ln∣A∣−2Nln(2π)
其中
E
(
m
N
)
=
β
2
∥
t
−
Φ
m
N
∥
2
+
α
2
m
N
T
m
N
A
=
α
I
+
β
Φ
T
Φ
m
N
=
β
S
N
Φ
t
=
β
A
−
1
Φ
T
t
\begin{aligned} E( \textbf m_N) &=\frac{\beta}{2}\|\textbf t - \Phi \textbf m_N\|^2 + \frac{\alpha}{2}\textbf m_N^T \textbf m_N \\ A &=\alpha I+\beta \Phi^T\Phi \\ \textbf m_N &= \beta \textbf S_N \Phi \textbf t = \beta \textbf A^{-1} \Phi^T \textbf t \end{aligned}
E(mN)AmN=2β∥t−ΦmN∥2+2αmNTmN=αI+βΦTΦ=βSNΦt=βA−1ΦTt
- 凑巧的是 A = ∇ 2 E A=\nabla^2E A=∇2E,是E的Hessian矩阵
- 由此可以做实验观察 M M M的阶数与模型证据的关系
- 考虑优化
α
\alpha
α和
β
\beta
β,记特征值分解:
(
β
Φ
T
Φ
)
u
i
=
λ
i
u
i
(\beta \Phi^T \Phi) \textbf u_i=\lambda_i \textbf u_i
(βΦTΦ)ui=λiui,则
A
\textbf A
A的特征值为
α
+
λ
i
\alpha +\lambda_i
α+λi. 所以有
d d α ln ∣ A ∣ = d d α ln ∏ i ( λ i + α ) = ∑ i 1 λ i + α \frac{d}{d\alpha}\ln |\textbf A| = \frac{d}{d\alpha} \ln \prod_i (\lambda_i + \alpha)=\sum_i \frac{1}{\lambda_i + \alpha} dαdln∣A∣=dαdlni∏(λi+α)=i∑λi+α1
所以极值点方程为(这我怎么觉得不对啊,尤其中间 1 2 m N T m N \frac{1}{2}\textbf m_N^T \textbf m_N 21mNTmN那一项)
∂ ln p ( t ∣ α , β ) ∂ α = M 2 α − 1 2 m N T m N − 1 2 ∑ i 1 λ i + α = 0 \frac {\partial \ln p(\textbf t|\alpha, \beta)}{\partial \alpha} =\frac{M}{2\alpha}-\frac{1}{2}\textbf m_N^T \textbf m_N -\frac{1}{2}\sum_i \frac{1}{\lambda_i+\alpha} = 0 ∂α∂lnp(t∣α,β)=2αM−21mNTmN−21i∑λi+α1=0
即
α m N T m N = M − α ∑ i 1 λ i + α = γ \alpha \textbf m_N ^T \textbf m_N = M-\alpha \sum_i \frac{1}{\lambda_i +\alpha} = \gamma αmNTmN=M−αi∑λi+α1=γ
其中记 γ = ∑ i λ i α + λ i \gamma = \sum_i \frac{\lambda_i}{\alpha + \lambda_i} γ=i∑α+λiλi
得
α = γ m N T m N \alpha = \frac{\gamma}{\textbf m_N^T\textbf m_ N} α=mNTmNγ
注意右侧也和 α \alpha α有关,是一个隐方程
对 α \alpha α优化方法为迭代方式:由 α \alpha α的初始值,找 m N \textbf m_N mN,再计算 γ \gamma γ,再估计 α \alpha α,如此迭代。
对于 β \beta β,注意到 d λ i / d β = λ i / β d\lambda_i /d\beta = \lambda_i /\beta dλi/dβ=λi/β,所以
d d β ln ∣ A ∣ = d d β ∑ i ln ( λ i + α ) = 1 β ∑ i λ i λ i + α = γ β \frac{d}{d\beta}\ln |\textbf A| = \frac{d}{d\beta}\sum_i \ln (\lambda_i + \alpha)=\frac{1}{\beta} \sum_i \frac{\lambda_i}{\lambda_i + \alpha } = \frac{\gamma}{\beta} dβdln∣A∣=dβdi∑ln(λi+α)=β1i∑λi+αλi=βγ
不动点方程整理后可得(没有验证这个方程)
1 β = 1 N − γ ∑ n = 1 N [ t n − m N T ϕ ( x n ) ] 2 \frac{1}{\beta} = \frac{1}{N-\gamma} \sum_{n=1}^N [t_n - \textbf m_N^T \phi(\textbf x_n)]^2 β1=N−γ1n=1∑N[tn−mNTϕ(xn)]2
优化方法同样是 β , m N , γ \beta, \textbf m_N, \gamma β,mN,γ迭代进行。当同时优化 α , β \alpha,\beta α,β时,可以在估计 γ \gamma γ后同时估计
P170 参数的有效数量
上一段的
γ
\gamma
γ其实衡量了良好确定well determined的参数数量,当
λ
i
α
+
λ
i
\frac{\lambda_i}{\alpha +\lambda_i}
α+λiλi越接近1,对应
m
N
\textbf m_N
mN的该分量越接近最大似然解;
当
λ
i
α
+
λ
i
\frac{\lambda_i}{\alpha +\lambda_i}
α+λiλi越接近0,对应
m
N
\textbf m_N
mN的该分量越接近先验
m
0
\textbf m_0
m0
参考文献:
[1] Christopher M. Bishop. Pattern Recognition and Machine Learning. 2006