美文网首页
机器学习——线性回归(二)梯度下降求解

机器学习——线性回归(二)梯度下降求解

作者: 又迷鹿了 | 来源:发表于2018-09-02 15:56 被阅读0次

      在上文中利用矩阵运算的方法对损失函数进行优化,但其有一定的局限性,其要求矩阵必须可逆,下面用梯度下降的方法对其进行优化。J(w)=\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-w^{T}x^{(i)})^{2}

      初始化w,沿着负梯度方向迭代,更新后的w,使J(w)更小:w=w-\alpha \frac{\partial J(w)}{\partial w} \quad\quad\quad\partial:学习率,步长

      求出每一个变量的梯度,然后顺着梯度的负方向按着一定的步长\alpha进行更新;
      对每一个w_{i}进行梯度分解:\begin{align*} \frac{\partial }{\partial w_{i}}J(w_{i})&= \frac{\partial }{\partial w}\frac{1}{2}\sum_{i=1}^{m}(y_{i}^{(i)}-w_{i}^{T}x_{i}^{(i)})^{2}\\ &={m}(y_{i}^{(i)}-w_{i}^{T}x_{i}^{(i)})\sum_{i=1}^{m}\frac{\partial }{\partial w_{i}}(y_{i}^{(i)}-w_{i}^{T}x_{i}^{(i)})\\ &=(y_{i}^{(i)}-w_{i}^{T}x_{i}^{(i)})x_{i} \end{align*}
      对于每一个变量,求出其梯度,带入下式进行迭代:
      Repeat until convergence {
        w_{j}:=w_{j}+\alpha \sum_{i=1}^{m}(y_{i}^{(i)}-w_{i}^{T}x_{i}^{(i)})x_{i}
    }
      上式是批量梯度下降,每一次更新都要将样本的梯度加起来,数据量大的时候效率较低。下面还有一种按样本个体进行优化,就是随机梯度下降:
      Loop{
        for i = 1 to m,,{
                w_{j}:=w_{j}+\alpha(y_{i}^{(i)}-w_{i}^{T}x_{i}^{(i)})x_{i}
                }
    }
      当模型的复杂度提高的时候,对训练集的数据拟合很好,但会出现过拟合现象,为防止出现过拟合应该加入惩罚项,根据惩罚因子的不同可分为以下几种:
    J(w)=\frac{1}{2}\sum_{i=1}^{m}(y_{i}^{(i)}-w_{i}^{T}x_{i}^{(i)})^{2}+\lambda \sum_{i=1}^{m}\left | w_{j} \right |\quad L_{1}正则—Ridge回归
    J(w)=\frac{1}{2}\sum_{i=1}^{m}(y_{i}^{(i)}-w_{i}^{T}x_{i}^{(i)})^{2}+\lambda \sum_{i=1}^{m}w_{j}^2 \quad \quad L_{2}正则—Lasso回归
    J(w)=\frac{1}{2}\sum_{i=1}^{m}(y_{i}^{(i)}-w_{i}^{T}x_{i}^{(i)})^{2}+\lambda (\rho \sum_{i=1}^{m}\left | w_{j} \right |+(1-\rho )\sum_{i=1}^{m}w_{j}^2) \quad L_{3}正则—Elastic Net回归
      采用不同的正则项对模型有不同的影响,有时间再继续分享。

    相关文章

      网友评论

          本文标题:机器学习——线性回归(二)梯度下降求解

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