深度学习基础--正则化与norm--Switchable Normalization

港中文团队提出SN(SwitchableNormalization),一种新的归一化技术,它解决了BN(Batch Normalization)的不足,并在ImageNet和Microsoft COCO数据集上的表现超越了GN(Group Normalization)。

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

Switchable Normalization

  BN 是 Google 在 2015 年提出的归一化方法。至今已有 5000+次引用,在学术界和工业界均被广泛使用。
  港中文团队提出的 SN(Switchable Normalization)解决了 BN 的不足。SN 在 ImageNet 大规模图像识别数据集和 Microsoft COCO 大规模物体检测数据集的准确率,还超过了最近由 Facebook 何恺明等人提出的组归一化 GN(Group Normalization)。

### 深度学习中的正则化 #### 正则化的概念 正则化是一种用于防止过拟合的技术,旨在提升模型在未见数据上的泛化能力[^4]。当模型过于复杂时,可能会过度适应训练数据的噪声或细节,从而导致其无法很好地推广到新的样本。通过引入额外约束条件,正则化可以有效降低这种风险。 #### 常见的正则化方法及其作用 1. **L2 正则化 (Ridge)** L2 正则化通过对损失函数增加权重参数平方和的形式作为惩罚项,抑制了模型中较大权值的影响,从而使模型更加平滑并减少过拟合的可能性[^1]。具体来说,该方法会使得优化过程倾向于寻找较小绝对值的权重组合。 2. **L1 正则化** 不同于 L2 的方式,L1 使用的是权重绝对值之和作为附加成本。这种方法除了具备基本的防过拟合作用外,还具有稀疏性的特点——即某些不重要的特征对应的系数会被直接缩减至零[^3]。 3. **Dropout 技术** Dropout 是一种专门针对神经网络设计的独特形式的随机失活机制,在每次迭代过程中按照一定概率临时丢弃部分节点及其连接关系。这样做的好处在于强迫剩余单元共同协作完成任务而不是依赖单一路径,进而增强了整体架构稳定性以及抗干扰能力。 4. **Early Stopping 提前停止法** 这一简单却有效的手段基于监控验证集的表现决定何时终止训练流程。如果发现继续更新反而让性能下降,则立即结束当前进程以保留最佳状态下的参数配置。 5. **Data Augmentation 数据增强** 对原始输入样本施加变换操作生成更多样式的实例供算法学习利用,比如图像旋转、缩放等预处理措施都可以看作此类范畴内的实践案例之一。 6. **Batch Normalization 批量标准化** 它能够加速收敛速度的同时改善梯度传播状况,并间接起到一定的规范化效果,有助于缓解内部协变量偏移问题带来的负面影响。 7. **Weight Decay 权重衰减** Weight decay 可视为另一种表述形式下的 L2 regularization,两者本质上并无区别只是名称有所差异而已。 8. **Max Norm Constraints 最大范数限制** 将每层网络里的每一个单独过滤器的最大允许长度设定固定阈值范围内加以限定,以此达到简化结构的目的。 9. **Noise Injection 加入噪音扰动** 向激活值或者隐藏层输出注入适量人工制造出来的随机波动成分,模拟真实世界环境里不可避免存在的不确定性因素影响,促使系统学会忽略无关紧要的变化趋势而专注于核心规律提取工作上去。 #### 数学表达式 Python 实现示例 以下是几种典型正则化方案的具体计算公式及其实现代码: - **L2 Regularization** \[ J(\theta) = Loss(y,\hat{y}) + \lambda ||\theta||_2^2 \] ```python import tensorflow as tf from tensorflow.keras import layers, models, regularizers model = models.Sequential() model.add(layers.Dense(64, activation='relu', kernel_regularizer=regularizers.l2(0.01))) ``` - **L1 Regularization** \[ J(\theta) = Loss(y,\hat{y}) + \alpha ||\theta||_1 \] ```python model.add(layers.Dense(64, activation='relu', kernel_regularizer=regularizers.l1(0.01))) ``` - **Dropout Implementation** ```python model.add(layers.Dropout(rate=0.5)) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值