14权重衰退
1.理论概念
权重衰退是一种处理过拟合问题的方法
控制模型复杂度:通过限制参数值的选择范围来控制模型容量
最小化目标函数损失,并且对于参数权重w进行限制
最常用的是以下这种(较好计算):
使用均方范数作为柔性限制
当λ趋近于无穷时,w趋近于0,等价于硬性限制中的Seita趋于零
在原本的损失函数后面添加的项叫做阀,如果没有阀原本绿色的圈就是损失函数l的等高线,中心店w的位置是最优解,如果加上阀,此时的阀值就会很大,必然就不再是最优解,因此最优解会向原点的方向靠近,w的值就会减小,也就限制住了参数w的选择范围
参数更新法则
相比原来展开时间t更新参数函数后,增加的项就是ηλ,因此在每一次更新参数之前,都会给原来的参数先乘一个小于1的数将其缩小
每一次更新都会把当前的权重放小
总结:L2正则项权重w是控制模型复杂度的一个超参数
权重衰退控制模型复杂度
2.代码实现
补充遗忘知识点:反向传播,梯度下降
反向传播:
反向传播是计算梯度的过程,它从损失函数开始,通过链式法则逐层计算每个参数的梯度。下面是反向传播的具体步骤:
a. 计算损失函数对输出的梯度:
首先,根据损失函数的定义,计算损失函数对模型输出的梯度。对于常见的平方损失函数,该梯度可以通过预测值与真实值之间的差异来计算。
b. 反向传播梯度:
从最后一层开始,将损失函数对输出的梯度传递回每一层。对于每个层,需要计算两个梯度:对于输出的梯度和对于权重的梯度。
c. 计算梯度:
对于前一层的每个节点,根据链式法则计算其对应的梯度。这可以通过将当前层的梯度与当前层的权重相乘来实现。
d. 更新参数:
在计算了所有参数的梯度之后,可以使用优化算法(如随机梯度下降)根据梯度更新模型的参数。通过将参数沿着梯度的反方向移动一小步,可以逐渐减小损失函数,使模型更好地拟合数据。
计算梯度是为了向着损失函数更小的方向靠近
结果:
1>当阀值为0,
可以看到验证集test几乎没变,出现了严重的过拟合
2>当阀值不为0 ,将λ值调大后,λ=15
过拟合的的现象有效减小,w的L2范数是: 0.022098073735833168,权重值也减小
问题总结:
1.如果本身最优解偏大,加上权重衰退后让权重变小,偏离最优解?
ANS:加入正则项,不是为了找到最优解,而是为了减小过拟合,减小过拟合之后不一定是最优解。其次权重衰退减小了噪音的影响,可以使模型趋向简单化。最终是需要一个合适的λ值