IIWAB `nn.init` 多种权重初始化方法 - IIWAB

`nn.init` 多种权重初始化方法

IIWAB 2天前 ⋅ 15 阅读
初始化方法函数名原理适用场景优点缺点
零初始化nn.init.zeros_将所有的权重参数初始化为零不适用(极少情况)简单易实现会导致所有神经元学习到相同的特征,造成对称问题,模型无法收敛
随机初始化nn.init.uniform_在指定的均匀分布范围内随机初始化权重参数简单的前馈神经网络打破对称性,使神经元可以学习不同的特征可能导致梯度消失或梯度爆炸问题
高斯初始化nn.init.normal_从指定的高斯分布中随机采样来初始化权重参数简单的前馈神经网络打破对称性,使神经元可以学习不同的特征可能导致梯度消失或梯度爆炸问题
Xavier初始化nn.init.xavier_uniform_nn.init.xavier_normal_根据输入和输出神经元的数量来调整初始化的范围,使得输入和输出的方差保持一致适用于使用Sigmoid或Tanh激活函数的网络缓解梯度消失和梯度爆炸问题,加快模型收敛速度对于ReLU激活函数效果不佳
He初始化nn.init.kaiming_uniform_nn.init.kaiming_normal_考虑了ReLU激活函数的非线性特性,根据输入神经元的数量来调整初始化的范围适用于使用ReLU激活函数的网络缓解梯度消失和梯度爆炸问题,加快模型收敛速度对于Sigmoid或Tanh激活函数效果不佳
正交初始化nn.init.orthogonal_初始化权重矩阵为正交矩阵循环神经网络(RNN)保持梯度在反向传播过程中不会消失或爆炸,有助于RNN的训练计算复杂度较高

全部评论: 0

    我有话说: