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

时间:2018-01-07 12:56:55

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

在密集层中,应根据一些经验法则初始化权重。例如,对于RELU,权重应来自正态分布,并应重新调整为2 / n,其中n是图层的输入数(according to Andrew Ng)。

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

1 个答案:

答案 0 :(得分:2)

基于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