Linear Regression

Linear Regression

Model representation

线性回归的预测方程可以写为

hθ(x)=i=0nθixih_\theta(x) = \sum_{i=0}^n\theta_ix_i

其中规定 x0=1x_0 = 1

若令

θ=[θ0θ1θn]Rn+1,X=[x0x1xn]Rn+1\boldsymbol{\theta} = \begin{bmatrix}\theta_0 \\ \theta_1 \\ \vdots \\ \theta_n\end{bmatrix} \in \mathbb R^{n+1}, \boldsymbol{X} = \begin{bmatrix}x_0 \\ x_1 \\ \vdots \\ x_n\end{bmatrix} \in \mathbb R^{n+1}

则预测方程可以写为

hθ(x)=θTXh_\theta(x) = \boldsymbol{\theta}^\mathrm T\boldsymbol{X}

Cost function

线性回归的代价函数为

J(θ)=12mi=1m(hθ(x(i))y(i))2J(\boldsymbol{\theta}) = \dfrac 1{2m}\sum_{i=1}^m\left(h_\theta(x^{(i)}) - y^{(i)} \right)^2

此时梯度下降式成为

θj:=θjα1mi=1m(hθ(x(i))y(i))xj(i)\theta_j := \theta_j - \alpha \dfrac 1m\sum_{i=1}^m\left(h_\theta(x^{(i)}) - y^{(i)}\right)x_j^{(i)}

Feature Scaling

所谓的特征缩放,其目的是使所有的特征都能处在一个基本一致的区间内,不会因为某个特征的值都过大或过小而对计算造成误差或难以计算。(即归一化、标准化、正则化)

例如对于一个二维的数据,其中有一维数据比另一维数据大很多,这可能会导致在梯度下降时过分缓慢,出现反复来回震荡的问题。如果将数据进行归一化,可以证明,梯度下降可以找到一条更快地找到全局最小的路径。

归一化希望使所有的特征都能在 approximately 1xi1-1 \leq x_i \leq 1 的范围内,只要他们足够接近,梯度下降法就会正常地工作。

Mean Normalization

均值归一化是将所有的值 xix_i 都减去其平均值 μi\mu_i,再除以数据的范围 maxmin\max - \min

xi=xiμimaxminx_i = \dfrac{x_i - \mu_i}{\max - \min}

假设 x1[0,2000]x_1 \in [0, 2000],那么对于 x1x_1 的均值归一化为 x1=x110002000x_1 = \dfrac{x_1 - 1000}{2000},如此处理后所有特征都会被缩放在 [0.5,0.5][-0.5, 0.5] 这一区间内。

min-max Normalization

min-max 归一化是对均值归一化的改进,其公式为

xi=ximinmaxminx_i = \dfrac{x_i - \min}{\max - \min}

其中 max\max 为这组特征的最大值,min\min 为这组特征的最小值。

Learning Rate

image-20221229211633436

image-20221229211638997

Features and polynomial regression

有时不必直接使用给出的特征构造模型,可以新定义一个特征,如此可能会得到一个更好的模型。

image-20221229211645004

关系不一定是线性的,有时需要通过高维进行拟合

如果想使用线性回归的话,可以令 xi=xkx_i = x^k,如此便可得到一个线性回归形式的式子,这样的话归一化变得更为重要。

特征选定可以根据实际情况来改,训练后看测试结果是否符合

Normal equation

Normal equation 是一个计算参数 θ\theta 的解析解法,使得我们不用通过梯度下降法这一迭代算法进行计算。

以 1D 举例:J(θ)=aθ2+bθ+c,θRJ(\theta) = a\theta^2+b\theta+c, \theta \in \mathbb{R},找到这个函数的最小值只需求此函数的驻点(即一阶导数的零点)即可。

但当 θRn+1\theta \in \mathbb{R}^{n+1} 时,J(θ)=12mi=1m(hθ(x(i))y(i))2J(\vec\theta) = \dfrac 1{2m}\sum\limits_{i = 1}^m\left(h_\theta\left(x^{(i)}\right) - y^{(i)}\right)^2,找到这个函数的最小值相当于求满足

θjJ(θ)=0, j=0,1,,m\dfrac{\partial}{\partial \theta_j}J(\vec\theta) = 0,\ j = 0, 1, \dots, m

的一组 θ\theta 值。
image-20221229211655693

通过数据构造一个矩阵

X=[12104514511416324011534323018522136]X = \begin{bmatrix}1 & 2104 & 5 & 1 & 45\\ 1 & 1416 & 3 & 2 & 40\\ 1 & 1534 & 3 & 2 & 30 \\ 1 & 852 & 2 & 1 & 36\end{bmatrix}

和一个向量

y=[460232315178]y = \begin{bmatrix}460 \\ 232 \\ 315 \\ 178\end{bmatrix}

可以发现,XX 为一个 m×(n+1)m \times (n + 1) 的矩阵,yy 是一个 mm 维向量,其中 mm 为数据集大小,nn 为特征变量数。

由于在线性回归中,我们希望确定 ω,b\omega, b 使得

f(xi)=ωxi+byi\begin{aligned} f(x_i) = \omega x_i + b \simeq y_i \end{aligned}

此时我们可以通过令均方误差最小化得到 ω,b\omega, b 的解 ω,b\omega^*, b^*

(ω,b)=argmin(ω,b)i=1m(f(xi)yi)2=argmin(ω,b)i=1m(yiωxib)2=E(ω,b)\begin{aligned}\left(\omega^*, b^*\right) &= \arg\min_{(\omega, b)}\sum\limits_{i=1}^m\left(f(x_i) - y_i\right)^2 \\ &= \arg \min_{(\omega, b)}\sum\limits_{i=1}^m\left(y_i - \omega x_i - b\right)^2 = E(\omega, b)\end{aligned}

令上式分别对 ω\omegabb 求导可得

Eω=2(ωi=1mxi2i=1m(yib)xi)Eb=2(mbi=1m(yiωxi))\begin{aligned}\dfrac{\partial E}{\partial \omega} &= 2\left(\omega \sum\limits_{i=1}^m{x_i^2} - \sum\limits_{i = 1}^m{(y_i - b)x_i}\right) \\ \dfrac{\partial E}{\partial b} &= 2\left(mb - \sum\limits_{i = 1}^m(y_i - \omega x_i)\right)\end{aligned}

令上述两式分别为 0,可得 ω\omegabb 最优解的闭式解

ω=i=1myi(xix)i=1mxi21m(i=1mxi)2b=1mi=1m(yiωxi)\begin{aligned}\omega &= \dfrac{\sum\limits_{i=1}^m{y_i(x_i - \overline x)}}{\sum\limits_{i=1}^m{x_i^2} - \frac 1m \left(\sum\limits_{i=1}^m{x_i}\right)^2} \\ b &= \dfrac 1m \sum\limits_{i=1}^m\left(y_i - \omega x_i\right)\end{aligned}

其中 x\overline xxx 的均值。

更一般地,当特征不唯一时,我们的 ω\omega 将是一个矩阵,令 w^=(ω; b)\hat{\boldsymbol{w}}^{*} = \left(\vec\omega;\ b\right),则其解为

w^=argminw^(yXw^)T(yXw^)\hat{\boldsymbol{w}}^{*}=\underset{\hat{\boldsymbol{w}}}{\arg \min }(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X} \hat{\boldsymbol{w}})

Ew^=(yXω^)T(yXω^)E_{\hat{\boldsymbol{w}}} = \left(y - X\vec{\hat\omega}\right)^T\left(y - X\vec{\hat\omega}\right),对 ω^\vec{\hat\omega} 求导得到

Ew^w^=2XT(Xw^y)\dfrac{\partial E_{\hat{\boldsymbol{w}}}}{\partial \hat{\boldsymbol{w}}}=2 \mathbf{X}^{\mathrm{T}}(\mathbf{X} \hat{\boldsymbol{w}}-\boldsymbol{y})

令上式为 0 即可得到 w^\hat{\boldsymbol{w}} 最优解的闭式解。当 XTX\mathbf{X}^{\mathrm{T}}\mathbf{X} 为满秩矩阵时可得 θ=(XTX)1XTy\vec\theta = (\mathbf{X}^{\mathrm{T}}\mathbf{X})^{-1}\mathbf{X}^{\mathrm{T}}y

于是我们得到 θ=(XTX)1XTy\vec\theta = (\mathbf{X}^{\mathrm{T}}\mathbf{X})^{-1}\mathbf{X}^{\mathrm{T}}y,这个 θ\vec\theta 就是使代价函数最小的 θ\vec\theta

更普适地,令 X=[1(x(1))T1(x(2))T1(x(m))T](m×(n+1))X = \begin{bmatrix}1 & \cdots & \left(x^{(1)}\right)^T & \cdots \\ 1 & \cdots & \left(x^{(2)}\right)^T & \cdots \\ \vdots & \vdots & \vdots & \vdots \\ 1 & \cdots & \left(x^{(m)}\right)^T & \cdots\end{bmatrix}_{(m \times (n+1))}y=[y(1)y(2)y(n)]y = \begin{bmatrix}y^{(1)} \\ y^{(2)} \\ \vdots \\ y^{(n)}\end{bmatrix},则 θ=(XTX)1XTy\vec\theta = (\mathbf{X}^{\mathrm{T}}\mathbf{X})^{-1}\mathbf{X}^{\mathrm{T}}y

如果直接使用正规方程法的话,没有必要对所有特征做特征缩放,如果使用梯度下降则必须对所有特征做特征缩放。
image-20221229211704560

由于矩阵乘法是 O(n3)\mathcal{O}(n^3) 的,在特征较多时会很慢,此时可以考虑梯度下降。
image-20221229211709856