如何计算L1
和L2
正则化的损失,其中w
是Python中线性模型的权重向量?
正则化器应计算损失而不考虑权重中的偏差项
def l1_reg(w):
# TO-DO: Add your code here
return None
def l2_reg(w):
# TO-DO: Add your code here
return None
最佳答案
为什么要使用正则化
在训练模型时,您希望获得尽可能高的准确性。因此,请选择所有相关特征[列
数据元素,向量),但是如果数据集不够大而行数较少,则会导致过度拟合。过度拟合的情况下,模型的性能在训练数据中很好,但在测试数据中却失败了(例如,如果您可以解决已经解决的问题,以前解决过,但由于您过分思考[不一样但很相似]而无法解决类似问题,因此这里使用正则化来解决此问题。
正则化
让我们首先解释一下正则化之后的逻辑术语。
规范添加信息的过程
[您可以想像在给您另一个问题之前,我会在第一个问题上添加更多信息,您已对其进行了分类,因此,如果发现类似问题,您就不会考虑太多]。
此图显示了过拟合模型和精确模型。
L1和L2是添加到模型方程式中的信息的类型
L1正则化
在L1中,将信息添加到模型方程中,以使其为theta向量(θ)的绝对总和乘以正则化参数(λ),该正则化参数可以是数据大小(m)上的任意大数,其中(n)是要素数量
L2正则化
在L1中,您可以向模型方程中添加信息,以向量(θ)的平方乘以正则化参数(λ)的乘积,正则化参数可以是数据大小(m)上的任意大数,其中(n)是特征数。
如果使用正态方程
然后L2正则化将是(n + 1)x(n + 1)对角矩阵,其左上角为零,其他对角线项下为1,乘以正则化参数(λ)。
关于python - 计算L1和L2正则化的损失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58905671/