当前位置:   article > 正文

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

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

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

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

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

Pytorch中L1正则的实现方式

  1. weight_decay = 0.01 # 权重系数
  2. regularization_loss = 0 # L1正则化的损失
  3. for param in model.parameters():
  4. # L1正则化的方式,参数的绝对值求和
  5. regularization_loss += torch.sum(torch.abs(param))
  6. origin_loss = criterion(input=output, target=label) # 计算原始损失
  7. loss = origin_loss + weight_decay * regularization_loss # 计算总损失

Batch Normalization的实现及影响

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

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

工作原理:
  • Dropout在训练过程中随机“失活”一部分神经元,即将其输出设置为零,这样可以迫使网络学习更健壮的特征,减少对任何单一路径的依赖。
减少过拟合原因:
  • 由于每次迭代都随机失活不同神经元,相当于训练了多个不同的网络,然后在测试时使用完全的模型进行预测,增加了模型的泛化能力。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/951400?site
推荐阅读
相关标签
  

闽ICP备14008679号