PyTorch实现L1,L2正则化以及Dropout

本文介绍了PyTorch中L1、L2正则化和Dropout的实现。Dropout是一种防止过拟合的策略,通过在训练过程中随机关闭一些神经元来提高模型泛化能力。L1正则化倾向于产生稀疏权重,而L2正则化则避免权重过大,两者都是降低模型复杂度以防止过拟合的方法。

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

PyTorch实现L1,L2正则化以及Dropout

  1. 了解知道Dropout原理
  2. 用代码实现正则化(L1、L2、Dropout)
  3. Dropout的numpy实现
  4. PyTorch中实现dropout

1.Dropout原理
Dropout是防止过拟合的一种方法(过拟合overfitting指:模型在训练数据上损失函数较小,预测准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。)
训练神经网络模型时,如果训练样本较少,为了防止模型过拟合,Dropout可以作为一种优化方法。Dropout是Hintion提出的。Dropout是指在模型训练时随机让网络某些隐含层节点的权重不工作,不工作的那些节点可以暂时认为不是网络结构的一部分,但是它的权重得保留下来。
dropout强迫一个神经单元,和随机挑选出来的其他神经单元共同工作,达到好的效果。消除减弱了神经元节点间的联合适应性,增强了泛化能力。
即:在前向传播的时候,让某个神经元的激活值以一定的概率p停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征,如图1所示。
dropout前与dropout后
dropout噪声迫使网络在有限的数据里学习到有用的信息。
2.正则化
防止过拟合的另外一种方式就是降低模型的复杂度,一种方式就是在cost函数中加入正则化项,正则化项可以理解为复杂度,cost越小越好,但cost加上正则项之后,为了使cost小,就不能让正则项变大,也就是不能让模型更复杂,这样就降低了模型复杂度,也就降低了过拟合。这就是正则化。正则化也有很多种,常见为两种L2和L1。

2.1 L1正则化
L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为||w||1
L2正则化是指权值向量w中各个元素的平方和再求平方根,通常表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值