线性回归
1 线性回归的原理
1 线性回归的一般形式
有数据集{(x1,y1),(x2,y2),…,(xn,yn)}{(x1,y1),(x2,y2),…,(xn,yn)},其中,xi=(xi1;xi2;xi3;…;xid),yi∈Rxi=(xi1;xi2;xi3;…;xid),yi∈R
其中n表示变量的数量,d表示每个变量的维度。
可以用以下函数来描述y和x之间的关系:
f(x)=θ0+θ1x1+θ2x2+…+θdxd=∑i=0dθixi
如何来确定θθ的值,使得f(x)f(x)尽可能接近y的值呢?均方误差是回归中常用的性能度量,即:
J(θ)=12∑j=1n(hθ(x(i))−y(i))2J(θ)=12∑j=1n(hθ(x(i))−y(i))2
我们可以选择θθ,试图让均方误差最小化:
思考:为什么要用均方误差作为性能度量
2 极大似然估计(概率角度的诠释)
目标值和变量写成如下等式:y(i)=θTx(i)+ϵ(i)
ϵϵ表示我们未观测到的变量的印象,即随机噪音。我们假定ϵϵ是独立同分布,服从高斯分布。(根据中心极限定理)
因此,
我们建立极大似然函数,即描述数据遵从当前样本分布的概率分布函数。由于样本的数据集独立同分布,因此可以写成
选择θθ,使得似然函数最大化,这就是极大似然估计的思想。
为了方便计算,我们计算时通常对对数似然函数求最大值:
显然,最大化l(θ)l(θ)即最小化
2、线性回归损失函数、代价函数、目标函数
损失函数(Loss Function):度量单样本预测的错误程度,损失函数值越小,模型就越好。代价函数(Cost Function):度量全部样本集的平均误差。目标函数(Object Function):代价函数和正则化函数,最终要优化的函数。
常用的损失函数包括:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等;常用的代价函数包括均方误差、均方根误差、平均绝对误差等。
思考题:既然代价函数已经可以度量样本集的平均误差,为什么还要设定目标函数?
回答:当模型复杂度增加时,有可能对训练集可以模拟的很好,但是预测测试集的效果不好,出现过拟合现象,这就出现了所谓的“结构化风险”。结构风险最小化即为了防止过拟合而提出来的策略,定义模型复杂度为J(F)J(F),目标函数可表示为:
例如有以上6个房价和面积关系的数据点,可以看到,当设定f(x)=∑5j=0θjxjf(x)=∑j=05θjxj时,可以完美拟合训练集数据,但是,真实情况下房价和面积不可能是这样的关系,出现了过拟合现象。当训练集本身存在噪声时,拟合曲线对未知影响因素的拟合往往不是最好的。 通常,随着模型复杂度的增加,训练误差会减少;但测试误差会先增加后减小。我们的最终目的时试测试误差达到最小,这就是我们为什么需要选取适合的目标函数的原因。
3、线性回归的优化方法
1、梯度下降法
设定初始参数θθ,不断迭代,使得J(θ)J(θ)最小化
注:下标j表示第j个参数,上标i表示第i个数据点。将所有的参数以向量形式表示,可得:
由于这个方法中,参数在每一个数据点上同时进行了移动,因此称为批梯度下降法,对应的,我们可以每一次让参数只针对一个数据点进行移动,即:
这个算法成为随机梯度下降法,随机梯度下降法的好处是,当数据点很多时,运行效率更高;缺点是,因为每次只针对一个样本更新参数,未必找到最快路径达到最优值,甚至有时候会出现参数在最小值附近徘徊而不是立即收敛。但当数据量很大的时候,随机梯度下降法经常优于批梯度下降法。
当J为凸函数时,梯度下降法相当于让参数θθ不断向J的最小值位置移动
梯度下降法的缺陷:如果函数为非凸函数,有可能找到的并非全局最优值,而是局部最优值。
2、最小二乘法矩阵求解
因此可以把损失函数写作
为最小化J(θ)J(θ),对θθ求导可得:
中间两项互为转置,由于求得的值是个标量,矩阵与转置相同,因此可以写成
令偏导数等于零,由于最后一项和θθ无关,偏导数为0。
因此,
利用矩阵求导性质,
令导数等于零,
3、牛顿法
重复迭代,可以让逼近取到f(θ)f(θ)的最小值
当我们对损失函数l(θ)l(θ)进行优化的时候,实际上是想要取到l′(θ)l′(θ)的最小值,因此迭代公式为:
其中,Δθl(θ)Δθl(θ)是l(θ)l(θ)对θiθi的偏导数,HH是J(θ)J(θ)的海森矩阵,
问题:请用泰勒展开法推导牛顿法公式。
Answer:将f(x)f(x)用泰勒公式展开到第二阶,
对上式求导,并令导数等于0,求得x值
可以求得,
牛顿法的收敛速度非常快,但海森矩阵的计算较为复杂,尤其当参数的维度很多时,会耗费大量计算成本。我们可以用其他矩阵替代海森矩阵,用拟牛顿法进行估计,
4、拟牛顿法
拟牛顿法的思路是用一个矩阵替代计算复杂的海森矩阵H,因此要找到符合H性质的矩阵。要求得海森矩阵符合的条件,同样对泰勒公式求导f′(x)=f′(x0)+f″(x0)x−f″(x0)x0f′(x)=f′(x0)+f″(x0)x−f″(x0)x0令x=x1x=x1,即迭代后的值,代入可得:
xkxk为第k个迭代值即找到矩阵G,使得它符合上式。 常用的拟牛顿法的算法包括DFP,BFGS等,作为选学内容,有兴趣者可自行查询材料学习。
4、线性回归的评价指标
但以上评价指标都无法消除量纲不一致而导致的误差值差别大的问题,最常用的指标是R2R2,可以避免量纲不一致问题
我们可以把R2R2理解为,回归模型可以成功解释的数据方差部分在数据固有方差中所占的比例,R2R2越接近1,表示可解释力度越大,模型拟合的效果越好。