Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

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

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

f(x)=wTx

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}