深度学习的权重衰减是什么_【深度学习理论】一文搞透Dropout、L1L2正则化/权重衰减...

本文深入探讨了深度学习中的正则化技术,包括Dropout、L1正则化和L2正则化/权重衰减的概念、作用及代码实现。通过引入L1和L2范数,解释了正则化如何通过惩罚权重来降低过拟合。此外,还介绍了Dropout作为防止过拟合的有效手段,以及其在训练和测试阶段的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本文主要内容——一文搞透深度学习中的正则化概念,常用正则化方法介绍,重点介绍Dropout的概念和代码实现、L1-norm/L2-norm的概念、L1/L2正则化的概念和代码实现~

要是文章看完还不明白,欢迎交流、分享、拍砖:)

详细内容如下:

原文发表于语雀文档:【深度学习理论+代码】一文搞透Dropout、L1L2正则化/权重衰减 · 语雀​www.yuque.com

1.正则化Regularization

什么是正则化?其作用是怎样的?了解正则化之前,我们需要先了解一下机器学习中欠拟合和过拟合的概念

1.1 过拟合Overfitting

过度拟合的意思,意味着模型训练过程中,对训练集的模拟和学习过度贴合;

过拟合带来的影响:模型训练时的检测率很高效果很好,但是用于实际检验时,效果很差,模型不能很准确地预测,即泛化能力差。

1.2 欠拟合Underfitting

和过拟合相对,欠拟合是指模型和数据集间的拟合程度不够,学习不足。

欠拟合的影响:和过拟合相对,欠拟合是指模型和数据集间的拟合程度不够,可能是学习轮数不够、数据集特征不规则、模型选择有问题等。欠拟合时,模型的泛化能力同样会很差。

1.3 泛化能力generalization ability

是指一个机器学习算法对于没有见过的样本的识别能力。泛化能力自然是越高越好。

在吴恩达机器学习中有一个线性回归预测房价的例子,非常形象直观:

如上图,x轴表示房子面积,y轴表示房屋售价,图表中有5个样本点(训练集),任务是找到合适的模型来拟合样本且用来预测未知的样本。

第一个模型是线性模型,对训练集样本欠拟合;

中间的二次方模型对样本拟合程度比较适中;

第三个四次方模型,对样本拟合程度更高,不过对于未来的新样本可能预测能力会很差,此为典型的过拟合。

1.4 解决或改善?

那么解决过拟合的方式有哪些?课程中给出了以下两点建议:

1.丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如 PCA)

2.正则化。保留所有的特征,但是减少参数的大小(magnitude)。

当然,以上是机器学习中的一些通用做法,在深度学习中同样适用于。譬如深度学习中常见的降低过拟合/正则化方法:使用L1正则化降低权重;

使用L2正则化/权重衰减weight decay;

Early stopping 早停,防止过拟合;

使用BN层batch normalization来规范数据分布,间接起到正则化的作用;

使用Dropout(及各种变种和改进版)随机丢弃一些神经元,来减低模型对部分神经元的依赖,加强模型的鲁棒性,达到正则化的效果;

Data augmentation数据增强,譬如将数据集图片处理后,增加平移旋转和缩放处理,增加噪声处理等,使得模型对各种复杂条件下的图像都能较好适应,增强鲁棒性。有时L2正则化和weight decay常被人理解为同一种意思,实际上二者有时不可等价,见: https://zhuanlan.zhihu.com/p/40814046

当然,这么多正则化方式,每一点拎出来都可以出好几篇论文了~本文主要介绍的是常用的L2正则/权重衰减和Dropout,BN等放在以后的文章中介绍。

2.L1 L2正则化/权重衰减

本小节,讲讲L1正则化L2正则化和权重衰减(weight decay),重点分为三个部分:1.讲解L1/L2范数和L1/L2正则化的概念、来源、其在深度学习中的应用;

2.L2正则化和权重衰减的概念;

3.L2正则化/权重衰减在深度学习pytorch代码中的实现。

2.1 范数和欧几里得空间

范数Norm

在了解L1/L2正则化前,必须先了解L1-norm(L1范数)和L2-norm(L2范数),因为本质上,L1/L2正则化,即在机器学习/深度学习的loss损失函数中添加L1/L2范数的正则化项,以起到惩罚权重,达到正则化的效果,故称为L1/L2正则化。

范数norm的定义是基于向量空间(Vector space)的,向量空间也称为线性空间,其概念起源于17世纪的解析几何、矩阵和欧几里得空间(Euclidean space)。我这里就不摆公式定义了,可以参考wiki。

欧几里得空间

简单理解,欧几里得空间(Euclidean space)是向量空间的子集,起源于是古希腊学者欧几里得对物理空间的一种抽象(来源于生活中常见的二维平面,三维空间)并在其中定义了点线、内积、距离、角的概念。譬如:二维平面中一个点可以有坐标x,y;两点之间的距离表现为一条直线,其大小可以用

)表示;三维空间中,两点之间距离表现为一个向量,其大小可以用:

表示,两向量a和b的内积定义为:

。当然,欧式空间也可以拓展至n维度。在n=时,一个点需要用3个坐标来定义,而n维欧式空间中,需要用n个坐标定义。

2.2 L1-范数和L2-范数

明明讨论的是范数,怎么扯到欧几里得空间去了?!

我也很无奈啊,因为L2范数也被称为欧几里得范数:)这里,我就不摆范数的定义了。简单来说,我们可以把L2-norm放在欧式空间中来理解,且直观地理解其意义为向量的模长。

p-范数的公式定义如下:

L1-范数

p = 1时为L1范数(L1-norm):

L1范数(又称为Taxicab norm or Manhattan norm),看起来L1-norm即一组数的绝对值累加和。

L2-范数

p = 2时为L2范数(L2-norm):

L2范数又称为欧几里得范数/平方范数(还可称为L norm, ℓ norm, 2-norm),其用于表示向量_x= (_x, x, ..., x__n)距离原点的距离。

2.3 L1/L2正则化和权重衰减

L1/L2正则化

前面说了那么多,有木有一脸懵逼???别慌,都是浮云~我们只要记住L1范数是绝对值和,L2范数是平方和(开根号)即可。简单来说,L1/L2正则化就是在机器学习/深度学习中应用了L1/L2范数,具体来说,就是在损失函数loss上增加了L1或L2范数项,达到参数惩罚的作用,即实现了正则化的效果,从而称为L1/L2正则化。

在之前的专栏文章:【吴恩达机器学习】第三周—逻辑回归、过拟合、正则化中,有个栗子比较形象地展示了L2正则化的过程,如下图:

图中最右边的线性回归模型表达式为:

由于其高次项参数的使用,使得模型对训练数据过分拟合,导致对未来更一般的数据预测性大大下降,为了缓解这种过拟合的现象,我们可以采用L2正则化。具体来说就是在原有的损失函数上添加L2正则化项(l2-norm的平方):

=>

这里,通过设置正则化系数

可以较好地惩罚高次项的特征,从而起到降低过拟合,正则化的效果。至于高次项的特征如何受到系数的影响,如何被惩罚的,详见:【吴恩达机器学习】第

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值