参数初始化的方式

随机初始化

使用随机数生成器(如高斯分布或均匀分布)为参数赋初始值。常见方法包括:

  • Xavier初始化:适用于Sigmoid或Tanh激活函数,权重从均值为0、方差为\\frac{1}{n_{\\text{in}}}的高斯分布中采样,其中n_{\\text{in}}为输入维度。
  • He初始化:适用于ReLU激活函数,权重从均值为0、方差为\\frac{2}{n_{\\text{in}}}的高斯分布中采样。

预训练初始化

利用预训练模型(如BERT、ResNet)的权重作为初始值,适用于迁移学习场景。需注意调整输出层结构以匹配目标任务。

零初始化

将所有权重初始化为0,适用于偏置项(bias)。但全零初始化可能导致神经元对称性问题,通常需结合其他方法使用。

常量初始化

将参数设置为固定常量(如全1初始化),常用于特定场景(如门控机制的初始偏置)。需谨慎使用以避免梯度消失或爆炸。

正交初始化

通过奇异值分解(SVD)生成正交矩阵作为初始权重,能缓解深度网络中的梯度消失问题。适用于RNN或Transformer等结构。

代码示例(PyTorch):

python 复制代码
# Xavier初始化  
torch.nn.init.xavier_normal_(layer.weight)  

# He初始化  
torch.nn.init.kaiming_normal_(layer.weight, mode='fan_in', nonlinearity='relu')  

# 正交初始化  
torch.nn.init.orthogonal_(layer.weight)  
相关推荐
jay神2 小时前
基于YOLOv8的行人车辆检测系统
人工智能·深度学习·yolo·计算机视觉·毕业设计
囊中之锥.3 小时前
《深度学习》CUDA安装配置、pytorch库、torchvision库、torchaudio库安装
人工智能·pytorch·深度学习
ttttming3 小时前
day33 简单神经网络
人工智能·深度学习·神经网络
凌峰的博客4 小时前
基于深度学习的图像安全与隐私保护研究方向调研(中)
人工智能·深度学习·安全
上天夭10 小时前
模型训练篇
人工智能·深度学习·机器学习
Blossom.11810 小时前
AI编译器实战:从零手写算子融合与自动调度系统
人工智能·python·深度学习·机器学习·flask·transformer·tornado
泰迪智能科技0111 小时前
分享图书推荐 | 数字图像处理实战
人工智能·深度学习·计算机视觉
Rabbit_QL11 小时前
【深度学习原理】数值稳定性(二):梯度是如何在深度网络中消失与爆炸的
人工智能·深度学习
wanzhong233312 小时前
CUDA学习5-矩阵乘法(共享内存版)
深度学习·学习·算法·cuda·高性能计算