深度学习中对于正则化的理解

深度学习中正则化是用来解决过拟合问题的,常见的正则化方法有L1正则、L2正则、BN、Dropout

L1和L2正则化之间的区别及优势和应用场景

区别:
  • L1正则化:在损失函数中添加所有权重绝对值的和作为惩罚项,倾向于产生稀疏的权重矩阵,即很多权重会变成零。
  • L2正则化:在损失函数中添加所有权重平方的和作为惩罚项,促使权重向零靠近但不会完全变为零,避免了过大的权重。
优势:
  • L1:可以用于特征选择,因为它倾向于将不重要的特征权重降低到零。
  • L2:有助于模型更加稳定,避免权重过大导致的模型不稳定或过拟合。
应用场景:
  • L1:当特征数量远大于样本数量时,或需要特征选择时。
  • L2:普遍适用,尤其当特征间相关性较低时。

Pytorch中L1正则的实现方式

weight_decay = 0.01  # 权重系数
regularization_loss = 0  # L1正则化的损失

for param in model.parameters():
    # L1正则化的方式,参数的绝对值求和
    regularization_loss += torch.sum(torch.abs(param))

origin_loss = criterion(input=output, target=label)  # 计算原始损失
loss = origin_loss + weight_decay * regularization_loss  # 计算总损失

Batch Normalization的实现及影响

实现:
  • Batch Normalization在每个批次的数据上对输入进行标准化,使得每层的输入具有稳定的均值和方差。
  • self.bn = nn.BatchNorm2d(num_features) #num_features为上层网络输出特征的通道数
影响:
  • 加速训练过程,因为每一层的输入都具有稳定分布,有助于避免梯度消失或爆炸问题。
  • 提高模型稳定性,减少对初始化的依赖。
  • 可以视作一种弱正则化手段,有助于减少过拟合。

Dropout如何工作以及为何能减少过拟合

工作原理:
  • Dropout在训练过程中随机“失活”一部分神经元,即将其输出设置为零,这样可以迫使网络学习更健壮的特征,减少对任何单一路径的依赖。
减少过拟合原因:
  • 由于每次迭代都随机失活不同神经元,相当于训练了多个不同的网络,然后在测试时使用完全的模型进行预测,增加了模型的泛化能力。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七七鸭灬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值