PRML-3.1 回归的线性模型-线性基函数模型

记号说明

\(1.输入集\textbf{X}=\{x_1,...,x_N\}是N个观测值,某一个观测\{x_n\},其中n=1,2,...,N,通俗讲就是\)x_train\(,或者文中称为\mathcal{D}\)
\(2.观测对应的目标值\textbf{t}=\{t_1,...,t_n\},通俗讲就是\)y_train
\(3.模型函数 t=y(x),输入变量x,输出对应的t的预测\)
\(4.预测分布p(t|x)\)
\(5.线性模型y(x,w)=w_0+w_1x_1+...+w_Dx_D=w_0+\sum\limits_{j=1}^{M-1}w_j\phi(x)=w^T\phi(x)\)
\(6.M 多项式拟合的最高阶数\)
\(7.\phi_j(x)被称为基函数\)(basis function)\(j=0,...,M-1\)
\(8.w_0被称为偏置参数\) bias parameter
\(9.w = (w_0,...,w_{M-1})^T\)
$10.\phi(x) = (\phi_0,...,\phi_{M-1})^T $
\(11.\phi_j(x)=x^j,多项式基函数\)
\(12.\beta,先验为高斯分布的精度,p(t|x,w,\beta) = \mathcal{N}(t|y(x,w), \beta^{-1})\)
\(13.\boldsymbol{\Phi}=\left(\begin{array}{cccc} \phi_{0}\left(\boldsymbol{x}_{1}\right) & \phi_{1}\left(\boldsymbol{x}_{1}\right) & \cdots & \phi_{M-1}\left(\boldsymbol{x}_{1}\right) \\ \phi_{0}\left(\boldsymbol{x}_{2}\right) & \phi_{1}\left(\boldsymbol{x}_{2}\right) & \cdots & \phi_{M-1}\left(\boldsymbol{x}_{2}\right) \\ \vdots & \vdots & \ddots & \vdots \\ \phi_{0}\left(\boldsymbol{x}_{N}\right) & \phi_{1}\left(\boldsymbol{x}_{N}\right) & \cdots & \phi_{M-1}\left(\boldsymbol{x}_{N}\right) \end{array}\right)_{N\times M}\)
\(14. \Phi^+ \equiv (\Phi^T\Phi)^{-1}\Phi^T,\)摩尔彭罗斯伪逆(Moore-Penrose pseudo-inverse)
\(15.E_{D}(\boldsymbol{w})=\frac{1}{2} \sum_{n=1}^{N}\left\{t_{n}-w_{0}-\sum_{j=1}^{M-1} w_{j} \phi_{j}\left(\boldsymbol{x}_{n}\right)\right\}^{2}= \frac{1}{2}\sum\limits_{n=1}^N\{t_n-w^T\phi(x_n)\}^2,误差函数\)
\(15.E_W(w) = \frac{1}{2}w^Tw ,正则化项\)

3.1.常用的基函数

  • 多项式基函数,\(\phi_j(x)=x^j\)
  • 高斯基函数,\(\phi_j(x)=exp\{-\frac{(x-\mu_j)^2}{2s^2}\}\)
  • sigmod基函数,\(\phi_j(x)=\sigma(\frac{x-\mu_j}{s})\)
    其中\(\sigma(a)\)是logistic sigmod函数,\(\sigma(a)=\frac{1}{1+exp(-a)}\)
  • 傅里叶基函数

不同基函数的sin函数拟合

点击查看代码

# 不同基函数拟合
def sinusoidal(x):
    return np.sin(2 * np.pi * x)

x_train, y_train = create_toy_data(sinusoidal, 10, 0.25)
x_test = np.linspace(0, 1, 100)
y_test = sinusoidal(x_test)

# Pick one of the three features below
#feature = PolynomialFeature(8)
#feature = GaussianFeature(np.linspace(0, 1, 8), 0.1)
feature = SigmoidalFeature(np.linspace(0, 1, 8), 10)

X_train = feature.transform(x_train)
X_test = feature.transform(x_test)
model = LinearRegression()
model.fit(X_train, y_train)
y, y_std = model.predict(X_test, return_std=True)

plt.scatter(x_train, y_train, facecolor="none", edgecolor="b", s=50, label="training data")
plt.plot(x_test, y_test, label="$\sin(2\pi x)$")
plt.plot(x_test, y, label="prediction")
plt.fill_between(
    x_test, y - y_std, y + y_std,
    color="orange", alpha=0.5, label="std.")
plt.legend()
plt.show()

3.1.1.线性回归的最大似然和最小平方

假定目标变量$ t \(是由确定函数\) y(x, w) $加上高斯噪声给出的:

\[t = y(x,w) + \epsilon \tag{3.7} \]

其中\(\epsilon\)是均值为0,精度(方差的逆)为\(\beta\)的高斯随机变量。因此可以写成:

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


回忆下1.89式
对曲线拟合,计算平均损失,求期望.

\[\mathbb{E}[L] = \int\int L(t,y(x))p(x,t)dxdt \tag{1.86} \]

求导=0可以得到条件\(x\)\(t\)的条件均值,也就是回归函数

\[y(x) = \frac{\int t p(x,t)dt}{p(x)} = \int t p(t|x)dt = \mathbb{E}_t[t|x] \tag{1.89} \]


回忆结束
则有

\[\mathbb{E}[t|x] = \int tp(t|x)dt = y(x,w) \tag{3.9} \]

假设\(X\)从3.8式\(p(t|x,w,\beta) = \mathcal{N}(t|y(x,w), \beta^{-1})\)中抽取
则得到下面的似然函数

\[p(\textbf{t}|\textbf{X},w,\beta) = \prod\limits_{n=1}^N\mathcal{N}(t_n|w^T\phi(x_n),\beta^{-1}) \tag{3.10} \]

求对数似然

\[\begin{eqnarray} \ln p(\textbf{t}|w, \beta) &=& \sum\limits_{n=1}^N \ln\mathcal{N}(t_n|w^T\phi(x_n),\beta^{-1}) \ &=& \frac{N}{2}\ln\beta-\frac{N}{2}\ln(2\pi) - \beta E_D(w) \tag{3.11} \end{eqnarray} \]

其中平方和误差函数定义为:

\[E_D(w) = \frac{1}{2}\sum\limits_{n=1}^N\{t_n - w^T\phi(x_n)\}^2 \tag{3.12} \]

最大似然法求确定\(w\beta\)

\[\nabla\ln p(\textbf{t}|w,\beta) = \beta\sum\limits_{n=1}^N\{t_n - w^T\phi(x_n)\}\phi(x_n)^T \tag{3.13} \]

\[0 = \sum\limits_{n=1}^Nt_n\phi(x_n)^T - w^T\left(\sum\limits_{n=1}^N\phi(x_n)\phi(x_n)^T\right) \tag{3.14} \]

\[w_{ML} = (\Phi^T\Phi)^{-1}\Phi^T\textbf{t} \tag{3.15} \]

这是最小二乘法的解析解

\[\boldsymbol{\Phi}=\left(\begin{array}{cccc} \phi_{0}\left(\boldsymbol{x}_{1}\right) & \phi_{1}\left(\boldsymbol{x}_{1}\right) & \cdots & \phi_{M-1}\left(\boldsymbol{x}_{1}\right) \\ \phi_{0}\left(\boldsymbol{x}_{2}\right) & \phi_{1}\left(\boldsymbol{x}_{2}\right) & \cdots & \phi_{M-1}\left(\boldsymbol{x}_{2}\right) \\ \vdots & \vdots & \ddots & \vdots \\ \phi_{0}\left(\boldsymbol{x}_{N}\right) & \phi_{1}\left(\boldsymbol{x}_{N}\right) & \cdots & \phi_{M-1}\left(\boldsymbol{x}_{N}\right) \end{array}\right)_{N\times M} \tag{3.16} \]

现在,我们可以更加深刻地认识偏置参数$ w_0 $。如果显式地写出偏置参数,那么误差函数(3.12)变为:

\[E_{D}(\boldsymbol{w})=\frac{1}{2} \sum_{n=1}^{N}\left\{t_{n}-w_{0}-\sum_{j=1}^{M-1} w_{j} \phi_{j}\left(\boldsymbol{x}_{n}\right)\right\}^{2} \tag{3.18} \]

对于$ w_0 \(求导并使其等于0,求解\) w_0 $可得:

\[w_0 = \bar{t} - \sum\limits_{j=1}^{M-1}w_j\bar{\phi}_j \tag{3.19} \]

其中定义了:

\[\bar{t}=\frac{1}{N} \sum_{n=1}^{N} t_{n}, \quad \bar{\phi}_{j}=\frac{1}{N} \sum_{n=1}^{N} \phi_{j}\left(\boldsymbol{x}_{n}\right) \tag{3.20} \]

因此偏置$ w_0 $补偿了目标值的均值(在训练集上的)与基函数的值的加权均值之间的差。

我们也可以对于噪声精度参数$ \beta $最大化对数似然函数(3.11),得到:

\[\frac{1}{\beta_{ML}} = \frac{1}{N}\sum\limits_{n=1}^N\{t_n - w_{ML}^T\phi(x_n)\}^2 \tag{3.21} \]

3.1.3 顺序学习

如果误差函数由数据点的和 \(E = \sum_nE_n\)组成,那么在\(n\)次这样的观测之后随机梯度算法使用

\[w^{(\tau+1)} = w^{(\tau)} - \eta\Delta E_n \tag{3.22} \]

来更新参数向量\(w\)。其中\(\tau\)是迭代次数,\(\eta\)是学习率参数。稍后会讨论\(\eta\)的选择问题。\(w\)被初始化为某个起始向量\(w^{(0)}\)。在平方和误差函数(3.12)的情况下,得到:

\[w^{(\tau+1)} = w^{(\tau)} - \eta(t_n - w^{(\tau)T}\phi_n)\phi_n \tag{3.23} \]

3.1.4 正则化最小平方

在1.1节中,我们介绍了通过添加一个正则项来防止误差函数过拟的想法,得到的需要最小化的总误差函数的形式为:

\[E_D(w) + \lambda E_W(w) \tag{3.24} \]

其中$ \lambda \(是控制数据依赖误差\) E_D(w) \(和正则项\) E_W(w) $的相对重要性的正则化参数。一个最简单的正则化项是加权向量元素的平方和:

\[E_W(w) = \frac{1}{2}w^Tw \tag{3.25} \]

那么我们的总误差函数为:

\[\frac{1}{2}\sum\limits_{n=1}^N\{t_n-w^T\phi(x_n)\}^2 + \frac{\lambda}{2}w^Tw \tag{3.27} \]

添加正则化项

\[w = (\lambda I + \Phi^T\Phi)^{-1}\Phi^Tt \tag{3.28} \]

这是最小二乘解(3.15)的一个简单扩展。
有时会使用一种更加一般的正则化项,其误差形式为-q=1表示L1正则

\[\frac{1}{2}\sum\limits_{n=1}^N\{t_n - w^T\phi(x_n)\}^2 + \frac{\lambda}{2}\sum\limits_{j=1}^M|w_j|^q \tag{3.29} \]

\(q=1\)时,在统计文献中被称为lasso(Tibshirani, 1996)。它具有如果\(\lambda\)充分大,那么某些系数\(w_j\)会变为零,从而得到一个使得对应的基函数不起作用的稀疏模型。为了证明这点,首先注意到最小化式(3.29)等价于最小化满足限制

\[\sum\limits_{j=1}^M|w_j|^q \leq \eta \tag{3.30} \]

的未正则化的平方和误差(3.12)


习题3.5 使用附录E中讨论的拉格朗日乘数法,证明最小化正则化的误差函数(3.29)等价于在限制条件(3.30)下最小化为政者的平方和误差函数(3.12),讨论参数\(\eta\)\(\lambda\)的关系
解1
带约束的优化问题

\[\begin{aligned} \min_{\mathbf{w}}&\,\frac{1}{2}\|\mathbf{t}-\Phi \mathbf{w}\|^2_2\\ \text{s.t.}&\,\|\mathbf{w}\|^q_q\leq \eta. \end{aligned} \]

用拉格朗日乘子法等价转为无约束优化问题

\[\min_{\mathbf{w}}\,\frac{1}{2}\|\mathbf{t}-\Phi \mathbf{w}\|^2_2+\frac{\lambda}{2}(\|\mathbf{w}\|^q_q- \eta) \]

记最优解为 \(\mathbf{w}^*_\lambda\),若 \(\lambda >0\),则由 KKT 条件有等式约束满足,即 \(\eta=\|\mathbf{w}^*_\lambda\|^q_q\),即 \(\eta\) 对应最优解的 \(q\)-范数。

解2

\(E_D(w) = \frac{1}{2}\sum\limits_{n=1}^N\{t_n - w^T\phi(x_n)\}^2 (3.12)\)
限制\(\sum\limits_{j=1}^M|w_j|^q \leq \eta\)
\(用拉格朗日乘子法\)
\(L(w,\lambda)=\frac{1}{2}\sum\limits_{n=1}^N\{t_n - w^T\phi(x_n)\}^2+\frac{\lambda}{2}(\sum\limits_{n=1}^N |\mathbf{w_j}|^q- \eta)\)
\(=\frac{1}{2}\sum\limits_{n=1}^N\{t_n - w^T\phi(x_n)\}^2+\frac{\lambda}{2}\sum\limits_{n=1}^N |\mathbf{w_j}|^q- \frac{\lambda}{2}\eta\)
\(因为\frac{\partial}{\partial w}(\frac{\lambda \eta}{2})=0\)
\(所以对L(w,\lambda)最小化的w和对3.29最小化的w等价\)
这次不等式制约为\(g(w)=\frac{1}{2}(\sum\limits_{j=1}^{M}|w_j|^q-\eta)\le 0\)
\(f(w)= \frac{1}{2}\sum\limits_{n=1}^N\{t_n - w^T\phi(x_n)\}^2最小化\)
\(为了极值在边缘,kkt条件要成立\)
\(g(w)\le 0,\lambda \ge 0,\lambda g(w)=0\)
\(\frac{\lambda}{2}(\sum\limits_{n=1}^M|w_j|^q-\eta)=0\)
\(所以\eta = \sum\limits_{n=1}^M|w_j^*|^q\)


\(w和\eta 关系,在边界上达到最优,即\eta = \sum\limits_{n=1}^M|w_j^*|^q\)
\(这里注意下,这里的\eta 不是前面3.1.3中提到的学习率\)


3.1.5多个输出

这章节不是重点,一般不会做多目标输出

posted @ 2022-03-21 15:27  筷点雪糕侠  阅读(176)  评论(0编辑  收藏  举报