两种神经网络参数初始化方法

重点介绍一下Xavier和Kaiming初始化:

Xavier

为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等。

正态分布参数初始化

N ( 0 , 2 n in + n out ) \mathcal{N}\left(0, \frac{2}{n_{\text {in }}+n_{\text {out }}}\right) N(0,nin +nout 2)

均匀分布参数初始化

U ( − 6 n in + n out , 6 n in + n out ) \mathcal{U}\left(-\sqrt{\frac{6}{n_{\text {in }}+n_{\text {out }}}}, \sqrt{\frac{6}{n_{\text {in }}+n_{\text {out }}}}\right) U(−nin +nout 6 ,nin +nout 6 )

Kaiming

Xavier初始化的问题在于,它只适用于线性激活函数,但实际上,对于深层神经网络来说,线性激活函数是没有价值,神经网络需要非线性激活函数(例如ReLU)来构建复杂网络。

前向传播时每层的方差都是1
反向传播时梯度的方差都是1

正态分布参数初始化

N ( 0 , 2 n in ) \mathcal{N}\left(0, \frac{2}{n_{\text {in }}}\right) N(0,nin 2)

均匀分布参数初始化

U ( − 6 n in , 6 n in ) \mathcal{U}\left(-\sqrt{\frac{6}{n_{\text {in }}}}, \sqrt{\frac{6}{n_{\text {in }}}}\right) U(−nin 6 ,nin 6 )

n i n n_{in} nin表示每层输入的神经元数量


参考

相关推荐
大脑探路者11 分钟前
【PyTorch】继承 nn.Module 创建简单神经网络
人工智能·pytorch·神经网络
屎派克1 小时前
神经网络知识
人工智能·深度学习·神经网络
小白的高手之路20 小时前
常用的卷积神经网络及Pytorch示例实现
人工智能·pytorch·python·深度学习·神经网络·cnn
www_pp_1 天前
# 使用 OpenCV 和神经网络实现图像风格化
人工智能·神经网络·opencv
MobiCetus1 天前
【MachineLearning】生成对抗网络 (GAN)
linux·人工智能·python·深度学习·神经网络·生成对抗网络·机器人
天若有情6731 天前
[学术][人工智能] 001_什么是神经网络?
人工智能·深度学习·神经网络
Francek Chen1 天前
【现代深度学习技术】现代卷积神经网络06:残差网络(ResNet)
人工智能·pytorch·深度学习·神经网络·cnn·resnet
Mr.Winter`1 天前
深度强化学习 | 基于优先级经验池的DQN算法(附Pytorch实现)
人工智能·pytorch·神经网络·机器学习·机器人·强化学习
Watermelo6171 天前
Manus使用的MCP协议是什么?人工智能知识分享的“万能插头”
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·数据挖掘
赵大仁2 天前
深度神经网络全解析:原理、结构与方法对比
人工智能·神经网络·dnn