深度学习正则化

(1)通过把一部分不重要的复杂信息损失掉,以此来降低拟合难度以及拟合风险,从而加速模型的收敛;

(2)Normalization就是让分布稳定下来(降低各维度数据的方差),Transformer加scale也是为了方差稳定;

(3)不同的正则化方法的区别只是操作的信息维度不同,即选择损失信息的维度不同;

(4)BN,它选择在NHW维度进行归一化,而channel维度的信息原封不动,因为可以认为在cv应用场景中,数据不同channel中的信息重要,不同channel来源自不同的卷积核,所以不同的channel很重要。

(5)在NLP中不同batch样本的信息关联性不大,而且由于不同的句子长度不同,强行归一化会损失不同样本间的差异信息,所以就没有在batch维度进行归一化,而是选择LN,只考虑句子内部维度的归一化。

### 深度学习中的正则化 #### 正则化的概念 正则化是一种用于防止模型过拟合的技术,在深度学习中尤为重要。通过引入额外的信息到训练过程中,可以减少模型复杂度并提高泛化能力。具体来说,正则化能够使模型对于噪声更加鲁棒,从而改善其在未见过的数据上的表现[^2]。 #### L1 和 L2 正则化 两种常见的正则化方式分别是基于L1范数和L2范数的约束: - **L1 正则化**:该方法通过对绝对值形式的权重量罚来促使部分权重变为零,进而达到稀疏解的效果。这有助于特征选择,因为只有重要的特征会被保留下来参与预测过程。 - **L2 正则化 (Ridge)** :此技术则是利用平方后的权值作为惩罚项加至损失函数之中。这样不仅可以让较大的系数变得平滑一些,而且还能有效抑制那些不必要大的参数增长,最终使得整个网络结构更为简单合理[^1]。 ##### 数学表达式 假设原始的目标函数为 \( J(\theta) \),其中 \( \theta \) 表示待优化的一组参数,则加入了L1/L2正则化的目标函数可分别写作如下: \[ J_{\text{L1}} (\theta)=J(\theta)+\lambda_1 ||\theta||_1 \] \[ J_{\text{L2}} (\theta)=J(\theta)+\frac{\lambda_2}{2}||\theta||^2_2 \] 这里 \( \lambda_1,\lambda_2>0 \) 是超参控制着各自强度大小;\( ||·||_p \)(p=1,2)表示对应类型的范数值计算操作符。 ```python from keras import regularizers model.add(Dense(64, input_dim=64, kernel_regularizer=regularizers.l1_l2(l1=1e-5, l2=1e-4))) ``` #### Dropout 技术 除了上述两种显式的正则手段外,Dropout也是一种非常有效的隐含层随机失活策略。每次迭代时按照一定概率丢弃掉一部分神经元及其连接关系,以此模拟多个子网共同工作的情形,从而增强了系统的稳定性和抗干扰性能。 ```python from tensorflow.keras.layers import Dropout model.add(Dropout(rate=0.5)) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值