美文网首页
ML中的梯度下降

ML中的梯度下降

作者: 天之見證 | 来源:发表于2019-03-19 00:13 被阅读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. 几种梯度下降方法对比

    相关文章

      网友评论

          本文标题:ML中的梯度下降

          本文链接:https://www.haomeiwen.com/subject/nzfwmqtx.html