[ML Notes] 线性回归:梯度下降

  对如前文所述的线性模型 $f(\boldsymbol{x})$ 和代价函数 $J(\boldsymbol{w})$

$$
f(\boldsymbol{x}) = \boldsymbol{w}^\mathrm{T} \boldsymbol{x} \tag{1}
$$

$$
J(\boldsymbol{w}) = \frac{1}{2} \sum_{i=1}^m \big( y^{(i)} – f(\boldsymbol{x}^{(i)}) \big)^2 \tag{2}
$$

  使用梯度下降来最小化 $J(\boldsymbol{w})$,是计算 $\boldsymbol{w}$ 的另一种方式。此时需要对 $\boldsymbol{w}$ 进行迭代更新

$$
w_j := w_j – \alpha \frac{\partial}{\partial w_j} J(\boldsymbol{w}) \tag{3}
$$

其中 $w_j$ 为第 $j$ 个权重参数,$j = 1,2,\cdots,n$,$\alpha$ 为学习率。

  由式 $(2)$,对于单个样本 $(\boldsymbol{x}, y)$,有

$$
\begin{aligned}
\frac{\partial}{\partial w_j} J(\boldsymbol{w})
&= \frac{\partial}{\partial w_j} \frac{1}{2} \big(y – f(\boldsymbol{x})\big)^2 \\
&= \big(y – f(\boldsymbol{x})\big) \cdot \frac{\partial}{\partial w_j} \big(y – f(\boldsymbol{x})\big) \\
&= \big(y – f(\boldsymbol{x})\big) \cdot \frac{\partial}{\partial w_j} \bigg(y – \sum_{i=0}^n w_i x_i\bigg) \\
&= \big(f(\boldsymbol{x}) – y\big) x_j
\end{aligned} \tag{4}
$$

由此得到针对单个样例的更新规则为

$$
w_j := w_j – \alpha \big(f(\boldsymbol{x}) – y\big) x_j \tag{5}
$$

对全部 $m$ 个样本,梯度下降按下面的更新规则迭代直至收敛

$$
w_j := w_j – \alpha \sum_{i=1}^m \big(f(\boldsymbol{x}^{(i)}) – y^{(i)}\big) x_j^{(i)} \tag{6}
$$

上式也可以写为向量的形式

$$
\boldsymbol{w} := \boldsymbol{w} – \alpha \sum_{i=1}^m \big(f(\boldsymbol{x}^{(i)}) – y^{(i)}\big) \boldsymbol{x}^{(i)} \tag{7}
$$