密集层和卷积层的权重初始化有何不同?

在密集层中,应该根据一些经验法则来初始化权重。例如,使用RELU时,权重应来自正态分布,并应按2/n进行重新缩放,其中n是该层输入的数量(根据Andrew Ng的说法)。

卷积层是否也遵循同样的规则?在卷积层中,初始化权重(和偏置)的正确方法是什么?


回答:

对于基于sigmoid的神经网络,常用的初始化器是Xavier初始化器(又称Glorot初始化器),以Xavier Glorot命名,他是《理解深度前馈神经网络训练的难度》论文的作者之一。该公式不仅考虑了输入连接的数量,还考虑了输出连接。作者证明,通过这种初始化,激活分布近似正态分布,这有助于反向传播中的梯度流动。

对于基于relu的神经网络,更好的初始化器是来自Kaiming He等人的《深入研究整流器:在ImageNet分类上超越人类水平表现》He初始化器,该初始化器证明了relu激活的相同属性。

在这种情况下,密集层和卷积层并没有太大区别,但重要的是要记住,卷积核的权重在输入图像和批次中是共享的,因此输入连接的数量取决于多个参数,包括卷积核大小和步长,计算起来可能并不容易。

在TensorFlow中,He初始化在variance_scaling_initializer()函数中实现(实际上,这是一个更通用的初始化器,但默认情况下执行He初始化),而Xavier初始化器则是xavier_initializer()

另见CrossValidated上的讨论

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注