[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}