PyTorch 学习笔记(四):激活函数对比、权重初始化、防止过拟合的方法...
发布网友
发布时间:1天前
我来回答
共1个回答
热心网友
时间:1天前
激活函数的使用为神经网络引入非线性因素,使模型能够逼近复杂非线性函数。常见的激活函数包括Sigmoid、tanh和ReLU。
Sigmoid函数将输入转化为0-1区间,其优点是解释性好,但存在梯度消失和输出非0均值问题,近年来较少使用。
tanh函数将输入映射到-1到1区间,解决了Sigmoid函数的均值问题,但同样面临梯度消失。ReLU函数将输入大于0的部分保留,小于0的部分变为0,加速了梯度下降法的收敛,计算简单,但训练时需小心权重初始化避免梯度爆炸。
Leaky ReLU函数在负半轴上设置小斜率,解决ReLU在负值区间梯度为0的问题。
权重初始化是防止模型过拟合的关键步骤。全0初始化会导致权重相同,损失相同,无法学习。随机初始化打破对称性,常用策略有高斯和均匀随机化,注意避免初始化过小导致梯度消失。
网络输出方差随输入维度增加而增大,初始化时需控制 [公式] 接近1,以保持输入输出方差相等,优化网络性能。
防止过拟合的方法包括正则化和Dropout。正则化通过增加权重惩罚项,如L2正则化增加权重的平方和,L1正则化增加权重的绝对值和,L2正则化优化后权重更分散,L1正则化使得权重更加稀疏,仅保留与输入相关的权重。Dropout方法在训练时随机关闭部分神经元,防止模型过度依赖特定特征。
批量归一化(Batch Normalization)在前向传播中对每一层的输出进行标准化,减小内部方差,加速收敛。
以上是关于PyTorch学习笔记中关于激活函数、权重初始化和防止过拟合方法的总结。通过合理选择和调整激活函数、权重初始化策略以及采用防止过拟合的技术,可以提升神经网络的性能和泛化能力。