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

2018-09-02  本文已影响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回归
  采用不同的正则项对模型有不同的影响,有时间再继续分享。

上一篇下一篇

猜你喜欢

热点阅读