神经网络里的正则项 Regularization

前言

网上的教程公式实在是太多,参数又指代不明,但仍然无法给我一个确定的答案,最后还是找了吴恩达教授的视频,十分清晰,记录一下~

整理

Regression的神经网络里,Cost function为
在这里插入图片描述
其中:

  • Q Q Q:sample数量
  • t \bm{t} t o \bm{o} o:target output和实际output
  • λ \lambda λ:L2正则参数
  • R ( W ) = ∑ l = 1 L ∥ W ( l ) ∥ F 2 {\rm R}(\mathbf{W}) = \sum_{l=1}^{L}\left\|\mathbf{W}^{(l)}\right\|^2_F R(W)=l=1LW(l)F2
  • ∥ W ( l ) ∥ F 2 = ∑ i = 1 n ( l − 1 ) ∑ j = 1 n ( l ) w i j 2 \left\|\mathbf{W}^{(l)}\right\|^2_F=\sum_{i=1}^{{n^{(l-1)}}}\sum_{j=1}^{{n^{(l)}}}w_{ij}^2 W(l)F2=i=1n(l1)j=1n(l)wij2

笔记

  • 神经网络
    在这里插入图片描述
  • 逻辑回归
    在这里插入图片描述

Ref

### 神经网络中损失函数的正则项及其作用 #### L1 正则化 L1 正则化通过对权重参数应用绝对值惩罚来约束模型复杂度。其核心思想是通过减少不必要的特征数量,使得模型更加稀疏[^3]。具体来说,在训练过程中,L1 正则化的梯度更新会使较小的权重逐渐趋近于零并最终被消除。 以下是基于 Python 的简单实现: ```python import numpy as np def l1_regularization(weights, lambda_l1): return lambda_l1 * np.sum(np.abs(weights)) ``` #### L2 正则化 L2 正则化则是通过对权重参数平方和进行惩罚的方式降低过拟合风险。相比 L1,L2 更倾向于均匀分布权重而非完全剔除某些特征。这种特性有助于保持所有输入变量的影响,从而提高泛化能力。 下面是 L2 正则化的代码片段: ```python def l2_regularization(weights, lambda_l2): return 0.5 * lambda_l2 * np.sum(weights ** 2) ``` #### Elastic Net (弹性网) 正则化 作为一种综合了 L1 和 L2 特性的方法,Elastic Net 能够平衡两者的优势[^1]。对于那些既希望获得稀疏解又不想牺牲过多性能的情况尤为适用。它的定义如下: \[ J_{EN}(W) = J(W) + \lambda_1 \| W \|_1 + \frac{\lambda_2}{2} \| W \|_2^2 \] 其中 \(J(W)\) 表示原始目标函数;\(λ_1\) 控制 L1 部分强度;\(λ_2\) 则调节 L2 成分比重。 下面展示如何组合两种正则形式: ```python def elastic_net_regularization(weights, lambda_l1, lambda_l2): l1_term = lambda_l1 * np.sum(np.abs(weights)) l2_term = 0.5 * lambda_l2 * np.sum(weights ** 2) return l1_term + l2_term ``` #### Dropout 技术 Dropout 是一种专门用于防止深层神经网络过度依赖特定节点的技术[^4]。在每次迭代期间随机丢弃部分单元格可以有效增强整体架构稳定性。值得注意的是,仅需修改前向传播逻辑即可完成该操作——只需乘上相应掩码矩阵 D 即可。 这给出一个简单的例子说明 dropout 如何工作: ```python def apply_dropout(A, keep_prob): D = np.random.rand(*A.shape) < keep_prob A *= D / keep_prob return A, D ``` #### 应用场景对比分析 - 当数据集存在大量冗余特征或者噪声干扰较大时,优先考虑采用 L1 或者 ElasticNet 来简化结构; - 如果追求平滑决策边界并且相信大部分属性都可能有用,则推荐单独运用 L2 方法; - 对于超大规模深度学习项目而言,结合 Dropout 可进一步提升测试精度同时抑制过拟合现象发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值