ML中的梯度下降

2019-03-19  本文已影响0人  天之見證

1. 梯度下降

以最小二乘为例, 损失函数为:
L(\mathbf{w})=\frac{1}{2}\sum_{i=1}^N(\mathbf{w}^T\mathbf{x}_i-y_i)^2
w_j 求导得到:
\begin{align} \frac{\partial{L(\mathbf{w})}}{\partial w_j}&=\sum_{i=1}^N(\mathbf{w}^T\mathbf{x}_i-y_i)x_{ij} \\ &=\sum_{i=1}^N(\mathbf{w}^T\mathbf{x}_i-y_i)x_{ij} \end{align}
表示称向量形式如下:

\frac{\partial{L(\mathbf{w})}}{\partial \mathbf{w}}=\begin{bmatrix} \sum_{i=1}^N(\mathbf{w}^T\mathbf{x}_i-y_i)x_{i1} \\ \sum_{i=1}^N(\mathbf{w}^T\mathbf{x}_i-y_i)x_{i2} \\ \vdots \\ \sum_{i=1}^N(\mathbf{w}^T\mathbf{x}_i-y_i)x_{iD} \end{bmatrix}_{D\times1}

\mathbf{w} 的更新如下:
\mathbf{w}\leftarrow \mathbf{w}-\alpha \frac{\partial{L(\mathbf{w})}}{\partial \mathbf{w}} \tag{2}

2. mini-batch梯度下降

每次随机选取 m 个观测值来更新权重:
\frac{\partial{L(\mathbf{w})}}{\partial \mathbf{w}}=\begin{bmatrix} \sum_{i=k}^{k+m}(\mathbf{w}^T\mathbf{x}_i-y_i)x_{i1} \\ \sum_{i=k}^{k+m}(\mathbf{w}^T\mathbf{x}_i-y_i)x_{i2} \\ \vdots \\ \sum_{i=k}^{k+m}(\mathbf{w}^T\mathbf{x}_i-y_i)x_{iD} \end{bmatrix}_{D\times1}
这样可以看做每次都用一个不同的损失函数:
L_k(\mathbf{w})=\frac{1}{2}\sum_{i=k}^{k+m}(\mathbf{w}^T\mathbf{x}_i-y_i)^2 \tag{4}

3. 随机梯度下降 (SGD)

每次通过一个观测值 (\mathbf{x}_i,y_i) 来更新权重:
\frac{\partial{L(\mathbf{w})}}{\partial \mathbf{w}}=\begin{bmatrix} (\mathbf{w}^T\mathbf{x}_i-y_i)x_{i1} \\ (\mathbf{w}^T\mathbf{x}_i-y_i)x_{i2} \\ \vdots \\ (\mathbf{w}^T\mathbf{x}_i-y_i)x_{iD} \end{bmatrix}_{D\times1} \tag{5}
这样可以看做每次都用一个不同的损失函数:
L_i(\mathbf{w})=\frac{1}{2}(\mathbf{w}^T\mathbf{x}_i-y_i)^2 \tag{6}

4. 总结

从上面可以看出不同的更新权重的方式其实可以看做选取了不同的损失函数

ref:

  1. cs229-notes1
  2. What's the difference between gradient descent and stochastic gradient descent
  3. 几种梯度下降方法对比
上一篇 下一篇

猜你喜欢

热点阅读