繁体   English   中英

计算 L1 和 L2 正则化的损失

[英]Compute the Loss of L1 and L2 regularization

如何计算L1L2正则化的损失,其中w是 Python 中线性 model 的权重向量?

正则化应在不考虑权重中的偏差项的情况下计算损失

def l1_reg(w):

    # TO-DO: Add your code here

    return None

def l2_reg(w):

    # TO-DO: Add your code here

    return None

为什么使用正则化

在训练 model 时,您希望尽可能获得更高的准确度。因此,您可以选择所有相关特征 [预测变量向量],但是,如果数据集不够大(即特征数量, nm大得多),这会导致所谓的过度拟合。 拟合描述你的model在训练集中表现非常好,但是在测试集中失败(即训练精度测试集精度好很多),你可以想到,你可以解决一个问题,你有以前解决过,但是不能解决类似的问题,因为你想多了[ Not same problem but similar ],所以这里正则化来解决这个问题。

正则化

让我们首先解释正则化背后的逻辑术语。

正则化添加信息的过程[你可以想到,在给你另一个问题之前,我在第一个问题上添加了更多信息,你对它进行了分类,所以如果你发现类似的问题你就不要想太多了]。

过拟合模型和准确模型

这张图片显示了过度拟合的 model 和精确的 model。

L1L2是添加到 model 方程的信息类型

L1 正则化

在 L1 中,您将信息添加到 model 方程为 theta 向量 (θ) 乘以正则化参数 (λ) 的绝对和,正则化参数 (λ) 可以是超过数据大小 (m) 的任意大数,其中 (n) 是特征数. L1 正则化方程

L2 正则化

在 L2 中,将信息添加到 model 方程中,得到向量 (θ) 平方乘以正则化参数 (λ) 的总和,该正则化参数可以是任何大于数据大小 (m) 的大数,其中 (n) 是特征。 L1 正则化方程

如果使用正规方程

然后 L2 正则化将是 (n+1)x(n+1) 对角矩阵,左上角为零,其他对角线项下方的对角矩阵乘以正则化参数 (λ)。 在此处输入图像描述

我认为在回答之前澄清这一点很重要: L1L2正则化项不是损失函数。 它们有助于控制向量中的权重,使它们不会变得太大并且可以减少过度拟合。

L1正则化项是每个元素的绝对值之和。 对于长度为 N 的向量,它将是|w[1]| + |w[2]| +... + |w[N]|. |w[1]| + |w[2]| +... + |w[N]|.

L2正则化项是每个元素的平方值之和。 对于长度为 N 的向量,它将是w[1]² + w[2]² +... + w[N]² 我希望这有帮助!

    def calculateL2(self, vector):

         return np.dot(vector, vector)

    def calculateL1(self, vector):

        vector = np.abs(vector)

        return np.sum(vector)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM