多变量线性回归

具有多个变量的线性回归也称为“多元线性回归”,其可以有任意数量的输入变量。

符号标记:

  • $x^{(i)}_j$ = 第i个训练样例中特征j的值
  • $x^{(i)}$ = 第i个训练样例的所有特征输入的列向量
  • $m$ = 训练样例的数量
  • $n$ = $\begin{vmatrix}x^{(i)}\end{vmatrix}$(特征的数量)

假设函数

现在按如下定义假设函数的多变量形式,以适应这些多重特征:
$h_\theta(x) = \theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+…++\theta_nx_n$

为了更为直观地介绍这个函数,我们可以把$\theta_0$看做是房子的底价,\theta_1看做是每平方米的价格,$\theta_2$看做是每层的价格等等,则$x_1$是房子的占地面积,$x_2$是房子的楼层数。

使用矩阵乘法的定义,我们的多变量假设函数可以简洁地表示为:
$h_\theta(x) = \begin{bmatrix}\theta_0 & \theta_1 &…& \theta_n\end{bmatrix}\begin{bmatrix}x_0 \\ x_1 \\…\\ x_n\end{bmatrix} = \theta^T x$

上面是一个样例的假设函数的向量化形式。

注意:为了方便起见,假设$x^{(i)}_0 = 1(i∈1,…,m)$

则训练数据则被逐行的存储在X当中,如:
$X=\begin{bmatrix} x^{(1)}_0 &x^{(1)}_1\\x^{(2)}_0&x^{(2)}_1\\x^{(3)}_0&x^{(3)}_1 \end{bmatrix},\theta=\begin{bmatrix}\theta_0 \\ \theta_1\end{bmatrix}$

你可以计算并得到假设函数将会是一个m×1的列向量:
$h_\theta(X)=X\theta$

接下来的笔记中,X将会像上面那样代表训练数据逐行地存储。

成本函数

当参数向量$\theta$(类型为$R^{n+1}$或者说是$R^{(n+1)*8}$),成本函数如下:
$J(\theta) = \frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2$

向量化的形式如下:
$J(\theta)= \frac{1}{2m}(X\theta-\vec y)^T(X\theta-\vec y)$,其中$\vec y$涵盖了所有的y值。

多变量的梯度下降

梯度下降的公式的形式基本上是相同的,
我们需要做的是根据n个特征来重复这些公式:
重复直到收敛: {
$θ_0 := θ_0 $ -$ α\frac{1}{m}\sum_{i=1}^m(h_θ(x^{(i)}) - y^{(i)})x^{(i)}_0$
$θ_1 := θ_1 $ -$ α\frac{1}{m}\sum_{i=1}^m(h_θ(x^{(i)}) - y^{(i)})x^{(i)}_1$
$θ_2 := θ_2 $ -$ α\frac{1}{m}\sum_{i=1}^m(h_θ(x^{(i)}) - y^{(i)})x^{(i)}_2$

}

换一种形式:

重复直到收敛: {
$θ_j := θ_j $ -$ α\frac{1}{m}\sum_{i=1}^m(h_θ(x^{(i)} - y^{(i)})x^{(i)}_j)$
}

矩阵符号

梯度下降规则可以这样表示:

$\theta := \theta - \alpha∇J(θ)$
其中$∇J(θ)$是一个列向量的形式:
$∇J(θ)=\begin{bmatrix}\frac{∂J(θ)}{∂θ_0} \\\frac{∂J(θ)}{∂θ_1}\\…\\\frac{∂J(θ)}{∂θ_n}\end{bmatrix}$

梯度的第j个元素是两项的乘积之和:
$\frac{∂J(θ)}{∂θ_j} $= $\frac{i}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j $
=$\frac{i}{m}\sum_{i=1}^mx^{(i)}_j(h_\theta(x^{(i)})-y^{(i)})$

有时候,这两项的乘积之和可以表示为两个向量的乘积。

  • 这里,$x^{(i)}_j($,其中$i=1,…,m)$表示训练集$X$第j列的m个元素$\vec x_j$。

  • 另一个项$(h_\theta(x^{(i)})-y^{(i)})$是预测值$h_\theta(x^{(i)})$和真值$y^{(i)}$误差的导数向量。
    重新整理一下$\frac{∂J(θ)}{∂θ_j} $如下:
    $\frac{∂J(θ)}{∂θ_j}=\frac{1}{m}\vec x_j^T(X\theta - \vec y)$

则:
$∇J(θ)=\frac{1}{m}X^T(X\theta - \vec y)$

最后,向量化形式的梯度下降则可以表示为:
$\theta := \theta - \frac{\alpha}{m}X^T(X\theta - \vec y)$

分享到