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

  在上文中利用矩阵运算的方法对损失函数进行优化,但其有一定的局限性,其要求矩阵必须可逆,下面用梯度下降的方法对其进行优化。

  初始化,沿着负梯度方向迭代,更新后的,使更小:

  求出每一个变量的梯度,然后顺着梯度的负方向按着一定的步长进行更新;
  对每一个进行梯度分解:\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 {
    
}
  上式是批量梯度下降,每一次更新都要将样本的梯度加起来,数据量大的时候效率较低。下面还有一种按样本个体进行优化,就是随机梯度下降:
  Loop{
    for i = 1 to m,,{
            
            }
}
  当模型的复杂度提高的时候,对训练集的数据拟合很好,但会出现过拟合现象,为防止出现过拟合应该加入惩罚项,根据惩罚因子的不同可分为以下几种:


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

你可能感兴趣的:(机器学习——线性回归(二)梯度下降求解)