常用神经网络参数初始化方法

本文深入探讨了神经网络中两种主流的权重初始化方法:Xavier初始化和Kaiming初始化。详细解析了它们针对不同激活函数(如tanh、sigmoid、ReLU)如何调整权重分布,以确保网络各层间信息平稳传递,避免梯度消失或爆炸问题,从而提升训练效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般神经网络被随机初始化。随机从均匀分布或者高斯分布中采样。
初始化的基本动机是每一层网络输出的方差应该和输入方差保持一致,便于网络的学习更新(信息流动)。

1、Xavier初始化

适用于tanh,sigmoid激励函数,其输出激励值的均值为0;
w ∼ U ( − s c a l e , + s c a l e ) w \sim U(-scale,+scale) wU(scale,+scale);
s c a l e = 6 n i n + n o u t scale=\sqrt{\frac{6}{n_{in}+n_{out}}} scale=nin+nout6 .

w ∼ N ( 0 , s t d 2 ) w \sim N(0,std^2) wN(0,std2);
s t d = 2 n i n + n o u t std=\sqrt{\frac{2}{n_{in}+n_{out}}} std=nin+nout2 .

2、Kaiming初始化

适用于ReLu激励函数,其输出激励值的均值不为0;
w ∼ U ( − s c a l e , + s c a l e ) w \sim U(-scale,+scale) wU(scale,+scale);
s c a l e = 3 n i n ( n o u t ) scale=\sqrt{\frac{3}{n_{in}(n_{out})}} scale=nin(nout)3 .

w ∼ N ( 0 , s t d 2 ) w \sim N(0,std^2) wN(0,std2);
s t d = 1 n i n ( n o u t ) std=\sqrt{\frac{1}{n_{in}(n_{out})}} std=nin(nout)1 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值