深度学习日常学习记录——参数初始化

部署运行你感兴趣的模型镜像

深度学习日常学习记录——参数初始化



前言

参数初始化的目的是为模型训练提供合适的起点,直观提升模型收敛速度、增强训练稳定性,一定程度上影响模型性能。好的初始化权重能够更加匹配优化器动态范围。初始权重完全相同会导致同一层网络的神经元保持相同梯度更新,无法体现个体神经元的作用,降低特征提取能力。初始化权重过小容易引导梯度消失,初始化权重过大容易引导梯度爆炸。


参数初始化汇总

初始化方法核心思想数学公式/参数分布适用场景PyTorch代码示例
零初始化 (Zero)所有参数初始化为零(偏置项常用) W = 0 W = 0 W=0偏置项初始化nn.init.zeros_(tensor)
均匀分布 (Uniform)从均匀分布中采样,需手动设定范围 W ∼ U ( − a , a ) W \sim U(-a, a) WU(a,a)浅层网络/简单任务nn.init.uniform_(tensor, a=-0.1, b=0.1)
高斯分布 (Normal)从正态分布中采样,需设定均值和标准差 W ∼ N ( μ , σ 2 ) W \sim N(\mu, \sigma^2) WN(μ,σ2)通用初始化nn.init.normal_(tensor, mean=0, std=0.01)
Xavier/Glorot保持输入/输出方差一致,适用于Sigmoid/Tanh W ∼ N ( 0 , 2 n _ i n + n _ o u t ) W \sim N\left(0, \sqrt{\frac{2}{n\_{in}+n\_{out}}}\right) WN(0,n_in+n_out2 )Sigmoid/Tanh激活网络nn.init.xavier_normal_(tensor)
He/Kaiming修正ReLU的负半轴方差衰减,适用于ReLU家族 W ∼ N ( 0 , 2 n _ i n ) W \sim N\left(0, \sqrt{\frac{2}{n\_{in}}}\right) WN(0,n_in2 )ReLU/LeakyReLU激活网络nn.init.kaiming_normal_(tensor, mode='fan_in')
正交初始化 (Orthogonal)生成正交矩阵,保持梯度稳定性 W T W = I W^T W = I WTW=IRNN/LSTM/Transformernn.init.orthogonal_(tensor, gain=1.0)
稀疏初始化 (Sparse)随机稀疏化权重(部分非零,其余为零)非零元素: W _ i j ∼ N ( 0 , σ 2 ) W\_{ij} \sim N(0, \sigma^2) W_ijN(0,σ2)稀疏模型/生物启发式网络nn.init.sparse_(tensor, sparsity=0.1, std=0.01)
常数初始化 (Constant)所有参数初始化为固定常数 W = c W = c W=c残差连接缩放/特殊需求nn.init.constant_(tensor, val=0.1)
单位矩阵 (Identity)权重初始化为单位矩阵(仅限方阵) W = I W = I W=I线性变换层/浅层网络nn.init.eye_(tensor)
截断正态 (Truncated Normal)从截断的正态分布采样,避免极端值 W ∼ N ( μ , σ 2 )  within  [ a , b ] W \sim N(\mu, \sigma^2) \text{ within } [a,b] WN(μ,σ2) within [a,b]Transformer/ViTnn.init.trunc_normal_(tensor, mean=0, std=0.02, a=-2, b=2)
预训练初始化 (Pretrained)加载预训练模型的参数 W = W _ pretrained W = W\_{\text{pretrained}} W=W_pretrained迁移学习/微调任务model.load_state_dict(torch.load('pretrained.pth'))

总结

参数初始化对模型训练来说十分重要,现阶段基本都是用预训练参数+参数初始化相结合的方式。

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值