机器学习之线性回归

来源:互联网 发布:教师网络信息管理平台 编辑:程序博客网 时间:2024/04/29 19:06

线性回归的函数表示

线性回归就是用线性方程去拟合一组数据, x 的最高阶是1, 用方程可以表示为:

hθ(x)=θ0+θ1x1++θnxn

我们令 x0=1 则上式可以改写为:

h(x)=i=0nθixi=θTx

代价函数

既然是拟合的模型, 则肯定会存在不符合该模型的点, 第 i 个点的真实值与模型预测的值之间的差称为误差:

e=h(x(i))y(i)

假设总共有 m 个数据点, 则我们定义代价函数为:

J(θ)=12i=1m(h(x(i))y(i))2

我们的目的是使总的误差最小, 只需求得使 J(θ) 最小的 θ 即可。

代价函数的概率解释

那代价函数为什么是这个形式的呢? 我们可以假定目标变量具有如下的形式

y(i)=θTx(i)+ϵ(i)

其中 ϵi是服从N(0,σ2)的且满足iid的随机噪声, 其概率密度可写作为:

p(ϵ(i))=12πσexp((ϵ(i))22σ2)

也即:

p(y(i)|x(i);θ)=12πσexp((y(i)θTx(i))22σ2)

因为参数 θ 未知, 我们寻求使满足(xi,yi)可能性最高的 θ 值估计:

L(θ)=i=1mp(y(i)|x(i);θ)=i=1m12πσexp((y(i)θTx(i))22σ2)

为了计算上的方便, 使两边取对数, 则有:

l(θ)=logL(θ)=logi=1m12πσexp((y(i)θTx(i))22σ2)=i=1mlog12πσexp((y(i)θTx(i))22σ2)=mlog12πσ1σ212i=1m(y(i)θTx(i))2

从上面式子的结果可以看出, 我们只须令

12i=1m(y(i)θTx(i))2

取最小值即可. 这便是为什么在线性回归中使用均方误差作为性能度量的一个解释。

求最优参数 θ

由于代价函数 J(θ) 是凸函数, 存在全局最优解.
下面介绍两种方法:

梯度下降

由于梯度是函数下降最快的方向, 因此我们可以重复对 J(θ) 做梯度下降使其收敛到全局最小.
更新 θ 的步骤为:

θj:=θjαθjJ(θ)

其中 α 是学习率.假设现在我们只有一个样本(x,y)来看看如何求:

θjJ(θ)=θj12(h(θ)y)2=(h(x)y)θj(h(x)y)=(h(x)y)θj(θ0x0+θ1x1++θjxj++θnxny)=(h(x)y)xj

根据以上导出的式子可以看出, 对于只有一个数据点的情形, 参数 θ 的更新规则为:

θj:=θj+α(yh(x))xj

那么考虑所有的 m 个数据点之后的更新式子为:

θj:=θj+α1mi=1m(y(i)h(x(i)))x(i)j

随机梯度下降

我们从上面更新 θ 的式子中可以看出, 每更新一个一个参数 θj, 我们都要进行m个样本的求和, 这样如果样本数非常大的话, 是非常消耗计算资源的. 为了避免上述问题, 我们可以只应用一个样本数据对参数进行更新.

θj:=θj+α(yih(xi))xij

注意我们不保证随机梯度下降一定能收敛到全局最小, 但在实践中, 其收敛结果是足够接近最优 θ 的.

正规方程

J(θ) 写成向量形式可以表示为:

J(θ) =12i=1m(h(x(i))y(i))2=12(Xθy⃗ )T(Xθy⃗ )

由于 J(θ) 有全局最优解, 我们令其导数为0可以直接求解最优参数.

θJ(θ)=θ(12(Xθy)T(Xθy))=θ(12(θTXTyT)(Xθy))=θ(12(θTXTXθθTXTyyTXθ+yTy))=12(2XTXθXTy(yTX)T)=XTXθxTy

从而有

θ=(XTX)1XTy

注意这一步的求解需要满足一个隐含的条件:XTX是满秩的或是正定的。

岭回归

如果 XTX 不满秩,可以在代价函数上计入正则化项:

J(θ)=12(Xθy⃗ )T(Xθy⃗ )+λ2θ2

对该代价函数求导:

θJ(θ)=XTXθXTy+λθ

令其为0可得:

θ=(XTX+λI)1XTy

梯度下降法与正规方程的优劣比较

只要在训练样本的特征数 n<10000 的情况下, 都可以考虑使用正规方程, 因为它不需要选择学习率 α, 不需要一步一步的进行迭代. 而当 n>10000 时, 计算 (XTX)1 耗费的时间就不容忽视了, 其时间复杂度为 O(n3) , 此时推荐使用梯度下降法进行参数求解.

局部加权线性回归

线性回归可能存在的一个问题是欠拟合,因为它求的是具有最小均方误差的无偏估计,有些方法允许在估计中引入一些偏差,从而降低预测的均方误差。

我们为每个样本点赋予不同的权重,则代价函数可表示为:

J(θ)=12i=1mw(i)(h(x(i))y(i))2

其中样本权重定义为:

w(i)=exp((x(i)x)22τ2)

参数 τ 控制着权重随 预测值 x 与样本 x(i) 的距离衰减速率。

最后求得参数为:

θ=(XTWX)1XTWy

可以看到每次预测 x 的回归值,都要重新计算权系数矩阵 W,也就是说使用局部加权回归时需要储存训练样本,而线性回归则不需要。

0 0
原创粉丝点击