Linear_regression基础

线性回归笔记

1. 线性回归问题(模型引入)

一条趋势线代表着时间序列数据的长期走势。它告诉我们一组特定数据(如GDP、石油价格和股票价格)是否在一段时期内增长或下降。虽然我们可以用肉眼观察数据点在坐标系的位置大体画出趋势线,更恰当的方法是利用线性回归计算出趋势线的位置和斜率。

又或者如
入一家房产网,可以看到房价、面积、厅室呈现以下数据:
Linear_regression基础
我们可以把这些关系,如价格和面积、厅室数量的关系表示为:
f(x)=θ0+θ1x1+θ2x2f(x)=\theta_0+\theta_1x_1+\theta_2x_2
使得f(x)yf(x)\approx y
这就是一个直观的线性回归问题

2 线性回归问题模型建立

2.1 线性回归问题的一般形式

线性回归的假设是在输入X1,…,Xp与回归方程E(Y|X)的关系是线性的。
有数据集{(x1,y1),(x2,y2),...,(xn,yn)}\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\}
其中xi=(xi1;xi2;xi3;...;xid),yiRx_i = (x_{i1};x_{i2};x_{i3};...;x_{id}),y_i\in R n表示变量的数量
d表示变量的维度

则线性回归问题可以表示为:
Linear_regression基础
均方误差是回归中常用的性能度量,即:
J(θ)=12j=1n(hθ(x(i))y(i))2J(\theta)=\frac{1}{2}\sum_{j=1}^{n}(h_{\theta}(x^{(i)})-y^{(i)})^2
我们可以使θ\theta改变,rang均方误差取得最小值

2.2 极大似然估计

似然(likelihood),其实就是可能性的意思。
极大似然估计是一种统计方法,用已知的数据推测具体的分布情况。

为什么使用极大似然估计
我们使用机器学习解决具体现实问题时,我们是无法确切知道具体的数据分布情况的。
我们可以用部分已知数据去预测整体的分布。

极大似然估计就是一个解决这类问题的方法。但是,这并不是绝对准确的,只能说实际情况最有可能接近这种猜测的分布。

由此可以推出使用极大似然估计的条件
极大似然估计的条件

  1. 我们假定数据服从某种已知的特定数据分布型。
  2. 已知一定数据集

似然函数
P(x|θ):输入有两个:x表示某一个具体的数据;θ表示模型的参数

  • 如果θ是已知确定的,x是变量,这个函数叫做概率函数(probability function),它描述对于不同的样本点x,其出现概率是多少。
  • 如果x是已知确定的,θ是变量,这个函数叫做似然函数(likelihood function), 它描述对于不同的模型参数,出现x这个样本点的概率是多少

举例:

随机从10个男生中统计身高
我们可以得到条件

  • 男生的身高服从正态分布
  • 10个男生的身高数据

那么得到数据集
D=(x1,x2,x3,...,x10)D= (x_{1},x_{2},x_{3},...,x_{10})
D服从一个数学期望为μ、标准方差为σ2的正态分布(也叫高斯分布),记为:
D~N(μ,σ2)
期望μ决定了分布图形在坐标轴中的位置,σ决定了分布图形的幅度.
我们把在参数向量θ下的正态分布下,某个男生身高的概率密度写做
p=(xiθ)p=(x_{i}|\theta)
对于可能性取连乘时最大
Linear_regression基础

2.3 均方误差的推导

我们可以把目标值和变量写成如下等式:
y(i)=θTx(i)+ϵ(i) y^{(i)} = \theta^T x^{(i)}+\epsilon^{(i)}
ϵ\epsilon表示我们未观测到的变量的印象,即随机噪音。我们假定ϵ\epsilon是独立同分布,服从高斯分布。(根据中心极限定理)
p(ϵ(i))=12πσexp((ϵ(i))22σ2) p(\epsilon^{(i)}) = \frac{1}{\sqrt{2\pi}\sigma}exp\left(-\frac{(\epsilon^{(i)})^2}{2\sigma^2}\right)
因此,
p(y(i)x(i);θ)=12πσexp((y(i)θTx(i))22σ2) p(y^{(i)}|x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\sigma}exp\left(-\frac{(y^{(i)}-\theta^T x^{(i)})^2}{2\sigma^2}\right)
我们建立极大似然函数,即描述数据遵从当前样本分布的概率分布函数。由于样本的数据集独立同分布,因此可以写成:
L(θ)=p(yX;θ)=i=1n12πσexp((y(i)θTx(i))22σ2) L(\theta) = p(\vec y | X;\theta) = \prod^n_{i=1}\frac{1}{\sqrt{2\pi}\sigma}exp\left(-\frac{(y^{(i)}-\theta^T x^{(i)})^2}{2\sigma^2}\right)
选择θ\theta,使得似然函数最大化,这就是极大似然估计的思想。
为方便运算,我们一般通过取对数变换化简e指数
Linear_regression基础
显然,最大化l(θ)l(\theta)即最小化 12i=1n((y(i)θTx(i))2\frac{1}{2}\sum^n_{i=1}((y^{(i)}-\theta^T x^{(i)})^2

2.4 线性回归的损失函数、代价函数、目标函数

  • 损失函数(Loss Function):度量单样本预测的错误程度,损失函数值越小,模型就越好。
  • 代价函数(Cost Function):度量全部样本集的平均误差。
  • 目标函数(Object Function):代价函数和正则化函数,最终要优化的函数。

那么我们是不是使损失函数越小越好?

这个时候还有一个概念叫风险函数(risk function)。风险函数是损失函数的期望。
f(x)f(x)关于训练集的平均损失称作经验风险,即:
Linear_regression基础
使其达到最小。
Linear_regression基础
但我们同时需要关注函数的复杂度,避免过拟合结果。如图三。
这里就定义出J(f)J(f)函数用来度量模型的复杂度。
即正则化。

当训练集本身存在噪声时,拟合曲线对未知影响因素的拟合往往不是最好的。 通常,随着模型复杂度的增加,训练误差会减少;但测试误差会先减小后增加。我们的最终目的时试测试误差达到最小,这就是我们为什么需要选取适合的目标函数的原因。

最终优化函数为:
Linear_regression基础

3. 优化策略

优化策略指的是按照什么样的准则学习或选择最优模型,所以在优化之前需引入一个函数在评判模型的拟合或预测的程度,即损失函数.

3.1 矩阵求解

可以把损失函数写作:
J(θ)=12(XθY)T(XθY)J(\theta)=\frac{1}{2}(X\theta-Y)^T(X\theta-Y)
为最小化 ????(????) ,对 ???? 求导可得:
Linear_regression基础
中间两项互为转置,由于求得的值是个标量,矩阵与转置相同,因此可以写成
Linear_regression基础
令偏导数等于零,由于最后一项和 ???? 无关,偏导数为0
因此,
J(θ)θ=12θθTXTXθθθTXTY\frac{\partial{J(\theta)}}{\partial\theta} = \frac{1}{2}\frac{\partial}{\partial\theta} \theta^TX^TX\theta - \frac{\partial}{\partial\theta} \theta^T X^TY
进行矩阵求导,得
J(θ)θ=XTXθXTY\frac{\partial{J(\theta)}}{\partial\theta} = X^TX\theta - X^TY
令导数等于零,
XTXθ=XTYX^TX\theta = X^TY

θ=(XTX)(1)XTY\theta = (X^TX)^{(-1)}X^TY

3.2 梯度下降法

设定初始参数θ\theta,不断迭代,使得J(θ)J(\theta)最小化:
θj:=θjαJ(θ)θ\theta_j:=\theta_j-\alpha\frac{\partial{J(\theta)}}{\partial\theta}
这里:=代表赋值

注意这里的θ是同时变化

Linear_regression基础
公式推导

Linear_regression基础
即:
θj=θj+αi=1n(y(i)fθ(x)(i))xj(i) \theta_j = \theta_j + \alpha\sum_{i=1}^{n}(y^{(i)}-f_\theta(x)^{(i)})x_j^{(i)}

将所有的参数以向量形式表示,可得:
θ=θ+αi=1n(y(i)fθ(x)(i))x(i) \theta = \theta + \alpha\sum_{i=1}^{n}(y^{(i)}-f_\theta(x)^{(i)})x^{(i)}

随机梯度下降法
它是指在每一次迭代时使用所有样本来进行梯度的更新。
θ=θ+α(y(i)fθ(x)(i))x(i) \theta = \theta + \alpha(y^{(i)}-f_\theta(x)^{(i)})x^{(i)}

这个算法成为随机梯度下降法

  • 好处是,当数据点很多时,运行效率更高;
  • 缺点是,因为每次只针对一个样本更新参数,未必找到最快路径达到最优值,甚至有时候会出现参数在最小值附近徘徊而不是立即收敛。

但当数据量很大的时候,随机梯度下降法经常优于批梯度下降法。
Linear_regression基础
当J为凸函数时,梯度下降法相当于让参数 ???? 不断向J的最小值位置移动

梯度下降法的缺陷:如果函数为非凸函数,有可能找到的并非全局最优值,而是局部最优值

3.3 牛顿法与拟牛顿法

参考链接

3.3.1 牛顿法

Linear_regression基础
由图例得:
f(θ)=f(θ)Δ,Δ=θ0θ1f(\theta)' = \frac{f(\theta)}{\Delta},\Delta = \theta_0 - \theta_1
θ1=θ0f(θ0)f(θ0)可求得,\theta_1 = \theta_0 - \frac {f(\theta_0)}{f(\theta_0)'}
当我们对损失函数 ????(????) 进行优化的时候,实际上是想要取到 ????′(????) 的最小值,因此迭代公式为:θ:=θl(θ)l(θ) \theta :=\theta-\frac{l'(\theta)}{l''(\theta)}
θθ:=θH1Δθl(θ) 当\theta是向量值的时候,\theta :=\theta - H^{-1}\Delta_{\theta}l(\theta)
其中,Δθl(θ)\Delta_{\theta}l(\theta)l(θ)l(\theta)θi\theta_i的偏导数,HHJ(θ)J(\theta)的海森矩阵,

Hij=2l(θ)θiθjH_{ij} = \frac{\partial ^2l(\theta)}{\partial\theta_i\partial\theta_j}

将泰勒公式推导至两阶
f(x)=f(x0)+f(x0)xf(x0)x0=0f'(x) = f'(x_0) + f''(x_0)x -f''(x_0)x_0 = 0
可以求得
x=x0f(x0)f(x0)x = x_0 - \frac{f'(x_0)}{f''(x_0)}

Linear_regression基础
优点:
牛顿法对比梯度下降法在于考虑了二阶导数,利用曲线本身得信息,比梯度下降法更容易收敛
缺点:
海森矩阵比较难于运算

红色为牛顿法路线
绿色为梯度下降法曲线
Linear_regression基础

3.3.2 拟牛顿法

拟牛顿法的思路是用一个矩阵替代计算复杂的海森矩阵H,因此要找到符合H性质的矩阵。

要求得海森矩阵符合的条件,同样对泰勒公式求导
f(x)=f(x0)+f(x0)xf(x0)x0f'(x) = f'(x_0) + f''(x_0)x -f''(x_0)x_0
x=x1x = x_1,即迭代后的值,代入可得:
f(x1)=f(x0)+f(x0)x1f(x0)x0f'(x_1) = f'(x_0) + f''(x_0)x_1 - f''(x_0)x_0
一般形式

f(xk+1)=f(xk)+f(xk)xk+1f(xk)xkf'(x_{k+1}) = f'(x_k) + f''(x_k)x_{k+1} - f''(x_k)x_k

f(xk+1)f(xk)=f(xk)(xk+1xk)=H(xk+1xk)f'(x_{k+1}) - f'(x_k) = f''(x_k)(x_{k+1}- x_k)= H(x_{k+1}- x_k)

xkx_k为第k个迭代值
即找到矩阵G,使得它符合上式。
常用的拟牛顿法的算法包括DFP,BFGS等,作为选学内容,有兴趣者可自行查询材料学习。

4. 线性回归评价指标

最常用的指标是R2R^2,可以避免量纲不一致问题:

R2:=1i=1m(y(i)y^(i))2i=1m(yˉy^(i))2=11mi=1m(y(i)y^(i))21mi=1m(yˉy^(i))2=1MSEVARR^2: = 1-\frac{\sum^{m}_{i=1}(y^{(i)} - \hat y^{(i)})^2}{\sum^{m}_{i=1}(\bar y - \hat y^{(i)})^2} =1-\frac{\frac{1}{m}\sum^{m}_{i=1}(y^{(i)} - \hat y^{(i)})^2}{\frac{1}{m}\sum^{m}_{i=1}(\bar y - \hat y^{(i)})^2} = 1-\frac{MSE}{VAR}

我们可以把R2R^2理解为,回归模型可以成功解释的数据方差部分在数据固有方差中所占的比例,R2R^2越接近1,表示可解释力度越大,模型拟合的效果越好。