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) $加上高斯噪声给出的:
其中\(\epsilon\)是均值为0,精度(方差的逆)为\(\beta\)的高斯随机变量。因此可以写成:
回忆下1.89式
对曲线拟合,计算平均损失,求期望.
求导=0可以得到条件\(x\)下\(t\)的条件均值,也就是回归函数
回忆结束
则有
假设\(X\)从3.8式\(p(t|x,w,\beta) = \mathcal{N}(t|y(x,w), \beta^{-1})\)中抽取
则得到下面的似然函数
求对数似然
其中平方和误差函数定义为:
最大似然法求确定\(w\beta\)
这是最小二乘法的解析解
现在,我们可以更加深刻地认识偏置参数$ w_0 $。如果显式地写出偏置参数,那么误差函数(3.12)变为:
对于$ w_0 \(求导并使其等于0,求解\) w_0 $可得:
其中定义了:
因此偏置$ w_0 $补偿了目标值的均值(在训练集上的)与基函数的值的加权均值之间的差。
我们也可以对于噪声精度参数$ \beta $最大化对数似然函数(3.11),得到:
3.1.3 顺序学习
如果误差函数由数据点的和 \(E = \sum_nE_n\)组成,那么在\(n\)次这样的观测之后随机梯度算法使用
来更新参数向量\(w\)。其中\(\tau\)是迭代次数,\(\eta\)是学习率参数。稍后会讨论\(\eta\)的选择问题。\(w\)被初始化为某个起始向量\(w^{(0)}\)。在平方和误差函数(3.12)的情况下,得到:
3.1.4 正则化最小平方
在1.1节中,我们介绍了通过添加一个正则项来防止误差函数过拟的想法,得到的需要最小化的总误差函数的形式为:
其中$ \lambda \(是控制数据依赖误差\) E_D(w) \(和正则项\) E_W(w) $的相对重要性的正则化参数。一个最简单的正则化项是加权向量元素的平方和:
那么我们的总误差函数为:
添加正则化项
这是最小二乘解(3.15)的一个简单扩展。
有时会使用一种更加一般的正则化项,其误差形式为-q=1表示L1正则
当\(q=1\)时,在统计文献中被称为lasso(Tibshirani, 1996)。它具有如果\(\lambda\)充分大,那么某些系数\(w_j\)会变为零,从而得到一个使得对应的基函数不起作用的稀疏模型。为了证明这点,首先注意到最小化式(3.29)等价于最小化满足限制
的未正则化的平方和误差(3.12)
习题3.5 使用附录E中讨论的拉格朗日乘数法,证明最小化正则化的误差函数(3.29)等价于在限制条件(3.30)下最小化为政者的平方和误差函数(3.12),讨论参数\(\eta\)和\(\lambda\)的关系
解1
带约束的优化问题
用拉格朗日乘子法等价转为无约束优化问题
记最优解为 \(\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多个输出
这章节不是重点,一般不会做多目标输出