线性回归模型(linear regression)

1.模型定义

给定数据集,$T={(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})}$,其中$x^{(i)}=(1, x_1, x_2, ..., x_n)^T\in X= R^{n+1}$,$y^{(i)}\in Y=R$,线性回归模型试图学到一个通过属性的线性组合来进行预测的函数,即

$$ f(x)=w_1x_1+w_2x_2+...+w_nx_n+b $$

一般用向量写成:

$$ f(x)=w^T\cdot x+b $$

其中$w=(w_1, x_2, ..., w_n)^T\in R^{n}$,$b\in R$,使得$f(x)\simeq y$。

如何确定$w$和$b$呢,显然关键在于如何衡量$f(x)$与$y$之间的差别。均方误差是最常用的性能度量,因此我们可以试图让均方误差最小化,即:

$$ \min_{w,b} L(w,b)=\displaystyle\sum_{i=1}^m(f(x^{(i)})-y^{(i)})^2 $$

$$ =\displaystyle\sum_{i=1}^m(w^T\cdot x^{(i)}+b-y^{(i)})^2 $$

均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称“欧氏距离”(Euclidean distance)。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method)。在线性回归中,最小二乘法是试图找到一条直线,使得所有样本到直线上的欧氏距离之和最小。

求解$w$和$b$,使$ L(w,b)=\displaystyle\sum_{i=1}^m(f(x^{(i)})-y^{(i)})^2$最小化的过程,称为线性回归模型的最小二乘“参数估计”(parameter estimation)。令$w_0=b$,$x_0=1$,则$w=(w_0,w_1, w_2, ..., w_n)^T$,$x=(x_0, x_1, x_2, ..., x_n)^T$,原式转换为:

$$ f(x)=w^T\cdot x $$

$$ \min_{w} L(w)=\displaystyle\sum_{i=1}^m(w^T\cdot x^{(i)}-y^{(i)})^2 $$

对其求导,可得:

$$ \dfrac{\partial L(w,b)}{\partial w_j}=\dfrac{\partial \displaystyle\sum_{i=1}^m(w^T\cdot x^{(i)}-y^{(i)})^2}{\partial w_j} $$

$$ =\displaystyle\sum_{i=1}^m2(w^T\cdot x^{(i)}-y^{(i)})x^{(i)}_j $$

得到梯度向量:

$$ \nabla L(w)= \displaystyle\sum_{i=1}^m(w^T\cdot x^{(i)}-y^{(i)})x^{(i)} $$

假定:

$$X= \begin{bmatrix} (x^{(1)})^T \ (x^{(2)})^T \ (x^{(3)})^T \ ... \ ( x^{(m)} )^T \end{bmatrix} = \begin{bmatrix} 1 & x^{(1)}_1 & x^{(1)}_2 & ... & x^{(1)}_n \ 1 & x^{(2)}_1 & x^{(2)}_2 & ... & x^{(2)}_n \ 1 & x^{(3)}_1 & x^{(3)}_2 & ... & x^{(3)}_n \ ... \ 1 & x^{(m)}_1 & x^{(m)}_2 & ... & x^{(m)}_n \end{bmatrix}$$,$$Y=\begin{bmatrix} y^{(1)} \ y^{(2)} \ y^{(3)} \ ... \ y^{(m)} \end{bmatrix}$$,$$w=\begin{bmatrix} w_0 \ w_1 \ w_2 \ ... \ w_n \end{bmatrix}$$

则:

$$ X\cdot w= \begin{bmatrix} 1 & x^{(1)}_1 & x^{(1)}_2 & ... & x^{(1)}_n \ 1 & x^{(2)}_1 & x^{(2)}_2 & ... & x^{(2)}_n \ 1 & x^{(3)}_1 & x^{(3)}_2 & ... & x^{(3)}_n \ ... \ 1 & x^{(m)}_1 & x^{(m)}_2 & ... & x^{(m)}_n \end{bmatrix}\cdot \begin{bmatrix} w_0 \ w_1 \ w_2 \ ... \ w_n \end{bmatrix}=\begin{bmatrix} (x^{(1)})^T\cdot w \ (x^{(2)})^T\cdot w \ (x^{(3)})^T\cdot w \ ... \ (x^{(m)})^T\cdot w \end{bmatrix}=\begin{bmatrix} w^T \cdot x^{(1)} \ w^T \cdot x^{(2)} \ w^T \cdot x^{(3)} \ ... \ w^T \cdot x^{(m)} \end{bmatrix} $$

$$ X\cdot w-Y =\begin{bmatrix} w^T \cdot x^{(1)}-y^{(1)} \ w^T \cdot x^{(2)}-y^{(2)} \ w^T \cdot x^{(3)}-y^{(3)} \ ... \ w^T \cdot x^{(m)}-y^{(m)} \end{bmatrix} $$

$$ X^T\cdot (X\cdot w-Y )=\begin{bmatrix} x^{(1)} & x^{(2)} & x^{(3)} & ... & x^{(m)} \end{bmatrix}\cdot \begin{bmatrix} w^T \cdot x^{(1)}-y^{(1)} \ w^T \cdot x^{(2)}-y^{(2)} \ w^T \cdot x^{(3)}-y^{(3)} \ ... \ w^T \cdot x^{(m)}-y^{(m)} \end{bmatrix} $$

于是得到:

$$ \nabla L(w)=2 X^T\cdot (X\cdot w-Y ) $$

令一方面$L(w)$也可以表示成:

$$ L(w)=(X\cdot w-Y)^T\cdot (X\cdot w-Y)=(w^T X^TX w -2w^TX^TY+Y^T Y) $$

对$w$求导,同样可以得到梯度。

欲求的最优解,令梯度为0,

$$ \nabla L(w)=2 X^T\cdot X\cdot w-2 X^T\cdot Y =0 $$

则得到:

$$ w=(X^T\cdot X)^{-1}\cdot X^T\cdot Y $$

于是最终得到线性模型:

$$ f(x)=w^T\cdot x=x^T\cdot (X^T\cdot X)^{-1}\cdot X^T\cdot Y $$

令$X^\dagger =(X^T\cdot X)^{-1}\cdot X^T$,称为伪逆(seudo-inverse),代入得到。

$$ f(x) = x^T\cdot X^\dagger\cdot Y $$

2.学习算法

2.1 Normal Equations

计算$w=(X^T\cdot X)^{-1}\cdot X^T\cdot Y$,直接得到模型$f(x)=w^T\cdot x$

但是计算矩阵的逆是非常费时的事情,$X^T_{n\times m}\cdot X_{m\times n}=Z_{n\times n}$,因此当特征数量比较多时,偏向于用梯度下降法。

2.2 批量梯度下降(Batch Gradient Descent)

输入:训练数据集$T={(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})}$,其中$x^{(i)}\in X= R^n$,$y^{(i)}\in Y=R^n$,$i=1,2,...,m$,学习率$\eta(0<\eta\leqslant1)$;

输出:$w=(w_1, w_2, ..., w_n)^T$和$b$,模型$f(x)=w^T\cdot x+b$

1)将输入的每个$x^{(i)}$转换成$x^{(i)}=(1, x_1, x_2,...x_n)$,令$w_0=b$,则输出为$w=(w_0, w_1, w_2, ..., w_n)^T$

2)选取初始$w^{(0)}=(w_0, w_1, w_2, ..., w_n)^T$

3)计算梯度$X^T\cdot (X\cdot w^{(j)}-Y )$,这里略去系数2,其中$w^{(j)}$为第$j$次迭代的结果,则第$j+1$迭代:

$$ w^{(j+1)} \gets w^{(j)} - \eta X^T\cdot (X\cdot w^{(j)}-Y ) $$

4)转到步骤(3),一直到满足一定条件,或者迭代到足够的次数。

在批量梯度下降算法中,每一步的迭代都需要计算所有样本,当样本数较大时,计算量会很大。

2.3 随机梯度下降(Stochastic Gradient Descent)

将上面的步骤(3)改为:

3) 随机选取某个样本$x^{(i)}$,则:

$$ w^{(j+1)} \gets w^{(j)} - \eta ((w^{(j)})^T\cdot x^{(i)}-y^{(i)})x^{(i)} $$

一直到迭代到足够的次数。


Copyright 2017-2019, All Rights Reserved.
粤ICP备18085907号 深圳市磐创网络科技有限公司

Documentation built with MkDocs.