machine-learning - 密集层和卷积层的权重初始化是否不同?

标签 machine-learning neural-network conv-neural-network data-science activation-function

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

同样的情况也适用于卷积层吗?在卷积层中初始化权重(和偏差)的正确方法是什么?

最佳答案

基于 sigmoid 的网络的常见初始化器是 Xavier 初始化器(又名 Glorot 初始化器),以 "Understanding the difficulty of training deep feedforward neural networks" 的作者之一 Xavier Glorot 命名。纸。该公式不仅考虑传入连接的数量,还考虑输出连接的数量。作者证明,通过这种初始化,激活分布近似正态,这有助于向后传递中的梯度流动。

对于基于 relu 的网络,更好的初始化器是 "Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification" 中的 He 初始化器由 Kaiming He 等人提出,证明了 relu 激活具有相同的属性。

在这种情况下,密集层和卷积层并没有那么不同,但重要的是要记住,内核权重在输入图像和批处理之间共享,因此传入连接的数量取决于多个参数,包括内核大小和步幅,并且可能不容易手工计算。

在tensorflow中,He初始化是在variance_scaling_initializer()函数中实现的(实际上,这是一个更通用的初始化器,但默认执行He初始化),而Xavier初始化器逻辑上是 xavier_initializer().

另请参阅this discussion on CrossValidated .

关于machine-learning - 密集层和卷积层的权重初始化是否不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48137312/

相关文章:

machine-learning - 需要自组织映射中 U 矩阵的具体示例

python - 更大的批量大小减少训练时间

python - 从未经训练的数据集中为 doc2vec 中的句子构建向量

python - python 中的机器学习库(例如 scikit )中的非对称正则化

machine-learning - 井字游戏的神经网络

python - 如何对 pandas 中的浮点值进行二值化?

tensorflow - 防止 CNN 卷积层中的过度拟合

python-3.x - 类型错误 : type object got multiple values for keyword argument 'training'

machine-learning - 岭回归与套索回归

c# - 如何通过 sklearn MLPClassifier 训练的神经网络使用 Syncfusion PMML 进行预测?