Multivariate Linear Regression的参数估计

来源:互联网 发布:非农就业数据原因 编辑:程序博客网 时间:2024/04/29 16:47

多元线性回归的表现形式是

hθ(x)=y=θ0+θ1x1+θ2x2+...+θnxn(1)

其中x1...xnn个变量,θ0...θnn+1个参数。h是hypothesis的简称。如果定义x0=1,(1)式可以变为(2)式:

hθ(x)=y=θ0x0+θ1x1+θ2x2+...+θnxn(2)

其中x0=1.

令:

X=x0x1xn,Θ=θ0θ1θn

(2)式可简记为(3)式:
hθ(x)=ΘTX(3)

例如下表,我们要根据房屋属性预测房屋价格。那么在该例中,一共有4个属性,分别是Size, Number of bedrooms, Number of floors, Age of home,表示为x1,x2,x3,x4. Price是要预测的值,即y,这里表示为hθ(x).
表格

上表中有很多行,每一行称为一个训练样本(training example/sample). 为方便描述,定义以下符号:
n: 属性数量
m: 训练样本数量
x(i): 第i个训练样本的属性
x(i)j: 第i个训练样本的第j个属性

从(3)式可知,如果我们知道了参数矩阵ΘT的每一个值,就可以用方程(3)来预测未知样本的值。如何求得ΘT?机器学习中的一个重要任务就是估计ΘT. 足够好的ΘT必定会使得预测值无限接近于真实值,如果设计一个关于ΘT的函数用来表示预测值与真实值之间的差异,那么求得一个足够小的差异,就可以解出ΘT,这个函数通常成为代价函数(cost function),简记为J(θ).

代价函数及其参数的估计

多元线性回归方程的代价函数定义如下:

J(θ0,θ1,...,θn)=12mi=1m(hθ(x(i))y(i))2(4)

其中hθ(x(i))是预测值,y(i)是真实值。特意在右项乘以12m是为了之后计算方便(求极值需求导,可约去)。代价函数的直观理解是若J(θ)越小,表示预测值与真实值之间的差异越小,一定程度上说明我们的假设hθ(x)比较好;反之差异越大,hθ(x)不够好。

梯度下降法估计参数

估计θ (本文中θ=ΘT)的本质是在代价函数J(θ)取最小值(局部最小值)的情况下θ的取值。梯度下降(Gradient descent)法估计参数就是不断对每一个θi求偏导,得到新的参数θi,迭代一定次数或新的参数θi与上一个参数相比不再变化或变化很小时,即求得θ.

梯度下降法的过程描述:

Repeat:

θj:=θjαθjJ(θ0,θ1,...,θn)

θj:=θjα1mmi=1(hθ(x(i))y(i))x(i)j(5)

以上过程要同时求出所有的θ0,...,θn并同时更新所有的θ0,...,θn. 上式中的α称为learning rate,它控制了学习的速率。当α赋值很大时,上述迭代过程有可能不收敛;但当α赋值太小时,对大数据量而言,收敛过程可能会很慢。理想的α赋值会使的θj会随着迭代次数的增大而逐步减小(每一个新的迭代θj的值都会比上一次迭代周期中的值小。

迭代终止的条件是:
达到指定的迭代的次数,或者
新的θj与上次的θj差值在某个阈值之内

正规方程求解参数

正规方程(Normal Equation)求解参数是解析法求解,不需要迭代过程。
过程參考正规方程推导(我不想輸公式了)

代价函数的概率解释与推导

上面给出了代价函数的定义与参数估计的过程。代价函数的定义如(4)式,直觉上很好理解,但为何代价函数要定义成这个样子?下面给出一个概率上的解释。

文章最开始给出了线性回归模型的表现形式,如(1)式。更准确的写法应该是:

hθ(x)=y=θ0+θ1x1+θ2x2+...+θnxn+ε(1')

多出来的ε是误差项,表示线性回归的假设方程包含未知的误差和随机噪声。通常假设误差项是独立同分布(iid, Independent Identically Distribution),且服从均值为0,方差为σ2的正态分布。假设误差项服从正态分布的原因是:
1. 数学上处理的便利
2. 根据中心极限定理,独立的随机变量的和,即多种随机误差的累积,其总的影响是接近正态分布的。实际应用中,诸多独立随机变量的分布是服从正态分布的。

因此,对于每一个训练样本,其误差ε(i)的密度函数为:

p(ε(i))=12πσexp((ε(i))22σ2)(6)

再由(1’)式和(3)式,改写成机器学习中常见的条件概率形式,有:
p(y(i)|x(i);θ)=12πσexp((y(i)ΘTx(i))22σ2)(7)

简记为:
p(y(i)|x(i);θ)N(ΘTx(i),σ2)(8)

上式表示,若给定参数θ,在已知随机变量(训练样本)为x(i)的情况下,y(i)的概率密度分布。

注意到x(i)是iid,对所有随机变量(训练样本)x(i)的联合概率密度可以写成连乘的形式:

L(θ)=p(y|X;Θ)=i=1mp(y(i)|x(i);θ)

L(θ)=mi=112πσexp((y(i)ΘTx(i))22σ2)(9)

L(θ)称为似然(likelihood)函数。注意到似然函数是关于参数θ的函数,求解参数θ的过程称为参数的极大似然估计。含义是找到一个θ,使得L(θ)的值最大。显然,对L(θ)θ的导数并令该导数等于0,此时求得的θ即为最小值或极小值(对于单变量的线性回归方程,可以求得最小值,但是对于多变量线性回归,一般求得极小值)。

对(9)式两边取对数,将连乘化为求和:

l(θ)=logL(θ)=mlog(12πσ1σ212i=1m(y(i)ΘTx(i))2)(10)

显然,要使得l(θ)最小,则上式中的mi=1(y(i)ΘTx(i))2要最大。将该项中的y(i)替换为hθ(x(i))ΘTx(i)替换为y(i)即得(4)式中的形式。

线性回归的规范化

拿到training data,提取属性后,构造(4)式作为代价函数,通过梯度下降或正规方程可以得到回归方程的参数,将参数代入(2)式即可预测未知数据。但是如果数据的属性很多,例如一个语料库(corpus)用了2000个不同的单词,将这些单词全部作为线性回归方程的输入,那么属性数量n=2000,最后需要求解的参数θ数量为2001个。若以单词是否出现作为属性值,即某篇文章中,一个单词出现记为1,反之记为0,那么属性矩阵X将是一个十分稀疏的矩阵。

通常规范化(regularization)为了解决以下问题:
1. 相对于训练样本数量,属性数量太多,容易造成过度拟合(over-fitting)
2. 属性数量太多且属性矩阵是个稀疏矩阵

线性回归的主要任务是计算代价函数的最小值得到参数。线性方程的规范化(Regularized Linear Regression)就从改造代价函数开始。

如下图,若要根据房屋面积预测房价,根据图中的训练样本分布(那些叉叉),一个二次多项式足够了。
二次多項式擬合|center

但是如果用更高次的多项式呢?如下图,可以将训练样本拟合得更加好;然而此时用下圖预测,结果肯定惨不忍睹。
多次項擬合

注意到两个方程之间只差了θ3x3θ4x4两项。若令θ3θ4足够小,这两项会趋近于0,进而相当与二次多项式。规范化即以此为理念,如果参数太多,就将多余的参数的缩小。但实际上不知道哪些参数是多余的,因此将所有参数都缩小,改造一下代价函数,得到:

J(θ)=12m[i=1m(hθ(x(i))y(i))2+λj=1nθ2j](11)

其中λ称为规范化系数(regularization parameter)。在迭代过程中,最后的θ1,...,θn会变小。

规范化后的梯度下降过程

略加推导,规范化后的线性回归梯度下降估计参数过程变为:

Repeat:

θj:=θjαθjJ(θ0,θ1,...,θn)

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

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

规范化后的正规方程

规范化后的正规方程形式如下(我也不知道怎么推导):

θ=(XTX+λA)1XTy(13)

其中A是对角线上除了第一个元素为0的对角方阵:
A=0111

Reference

以上例子、公式、圖片來源於Coursera Machine Learning在線課程。
回归模型的代价函数的推导过程参考:回归模型的概率解释。

0 0
原创粉丝点击