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

记号说明

1.X={x1,...,xN}N,{xn},n=1,2,...,N,x_train,D
2.t={t1,...,tn},y_train
3.t=y(x),xt
4.p(t|x)
5.线y(x,w)=w0+w1x1+...+wDxD=w0+j=1M1wjϕ(x)=wTϕ(x)
6.M
7.ϕj(x)(basis function)j=0,...,M1
8.w0 bias parameter
9.w=(w0,...,wM1)T
10.ϕ(x)=(ϕ0,...,ϕM1)T
11.ϕj(x)=xj,
12.β,,p(t|x,w,β)=N(t|y(x,w),β1)
13.Φ=(ϕ0(x1)ϕ1(x1)ϕM1(x1)ϕ0(x2)ϕ1(x2)ϕM1(x2)ϕ0(xN)ϕ1(xN)ϕM1(xN))N×M
14.Φ+(ΦTΦ)1ΦT,摩尔彭罗斯伪逆(Moore-Penrose pseudo-inverse)
15.ED(w)=12n=1N{tnw0j=1M1wjϕj(xn)}2=12n=1N{tnwTϕ(xn)}2,
15.EW(w)=12wTw,

3.1.常用的基函数

  • 多项式基函数,ϕj(x)=xj
  • 高斯基函数,ϕj(x)=exp{(xμj)22s2}
  • sigmod基函数,ϕj(x)=σ(xμjs)
    其中σ(a)是logistic sigmod函数,σ(a)=11+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) $加上高斯噪声给出的:

(3.7)t=y(x,w)+ϵ

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

(3.8)p(t|x,w,β)=N(t|y(x,w),β1)


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

(1.86)E[L]=L(t,y(x))p(x,t)dxdt

求导=0可以得到条件xt的条件均值,也就是回归函数

(1.89)y(x)=tp(x,t)dtp(x)=tp(t|x)dt=Et[t|x]


回忆结束
则有

(3.9)E[t|x]=tp(t|x)dt=y(x,w)

假设X从3.8式p(t|x,w,β)=N(t|y(x,w),β1)中抽取
则得到下面的似然函数

(3.10)p(t|X,w,β)=n=1NN(tn|wTϕ(xn),β1)

求对数似然

(3.11)lnp(t|w,β)=n=1NlnN(tn|wTϕ(xn),β1) =N2lnβN2ln(2π)βED(w)

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

(3.12)ED(w)=12n=1N{tnwTϕ(xn)}2

最大似然法求确定wβ

(3.13)lnp(t|w,β)=βn=1N{tnwTϕ(xn)}ϕ(xn)T

(3.14)0=n=1Ntnϕ(xn)TwT(n=1Nϕ(xn)ϕ(xn)T)

(3.15)wML=(ΦTΦ)1ΦTt

这是最小二乘法的解析解

(3.16)Φ=(ϕ0(x1)ϕ1(x1)ϕM1(x1)ϕ0(x2)ϕ1(x2)ϕM1(x2)ϕ0(xN)ϕ1(xN)ϕM1(xN))N×M

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

(3.18)ED(w)=12n=1N{tnw0j=1M1wjϕj(xn)}2

对于$ w_0 使0 w_0 $可得:

(3.19)w0=t¯j=1M1wjϕ¯j

其中定义了:

(3.20)t¯=1Nn=1Ntn,ϕ¯j=1Nn=1Nϕj(xn)

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

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

(3.21)1βML=1Nn=1N{tnwMLTϕ(xn)}2

3.1.3 顺序学习

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

(3.22)w(τ+1)=w(τ)ηΔEn

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

(3.23)w(τ+1)=w(τ)η(tnw(τ)Tϕn)ϕn

3.1.4 正则化最小平方

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

(3.24)ED(w)+λEW(w)

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

(3.25)EW(w)=12wTw

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

(3.27)12n=1N{tnwTϕ(xn)}2+λ2wTw

添加正则化项

(3.28)w=(λI+ΦTΦ)1ΦTt

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

(3.29)12n=1N{tnwTϕ(xn)}2+λ2j=1M|wj|q

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

(3.30)j=1M|wj|qη

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


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

minw12tΦw22s.t.wqqη.

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

minw12tΦw22+λ2(wqqη)

记最优解为 wλ,若 λ>0,则由 KKT 条件有等式约束满足,即 η=wλqq,即 η 对应最优解的 q-范数。

解2

ED(w)=12n=1N{tnwTϕ(xn)}2(3.12)
限制j=1M|wj|qη

L(w,λ)=12n=1N{tnwTϕ(xn)}2+λ2(n=1N|wj|qη)
=12n=1N{tnwTϕ(xn)}2+λ2n=1N|wj|qλ2η
w(λη2)=0
L(w,λ)w3.29w
这次不等式制约为g(w)=12(j=1M|wj|qη)0
f(w)=12n=1N{tnwTϕ(xn)}2
,kkt
g(w)0,λ0,λg(w)=0
λ2(n=1M|wj|qη)=0
η=n=1M|wj|q


wη,η=n=1M|wj|q
η3.1.3


3.1.5多个输出

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

posted @   筷点雪糕侠  阅读(186)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示