在上文中利用矩阵运算的方法对损失函数进行优化,但其有一定的局限性,其要求矩阵必须可逆,下面用梯度下降的方法对其进行优化。
初始化,沿着负梯度方向迭代,更新后的,使更小:
求出每一个变量的梯度,然后顺着梯度的负方向按着一定的步长进行更新;
对每一个进行梯度分解:
对于每一个变量,求出其梯度,带入下式进行迭代:
Repeat until convergence {
}
上式是批量梯度下降,每一次更新都要将样本的梯度加起来,数据量大的时候效率较低。下面还有一种按样本个体进行优化,就是随机梯度下降:
Loop{
for i = 1 to m,,{
}
}
当模型的复杂度提高的时候,对训练集的数据拟合很好,但会出现过拟合现象,为防止出现过拟合应该加入惩罚项,根据惩罚因子的不同可分为以下几种:
采用不同的正则项对模型有不同的影响,有时间再继续分享。
网友评论