使用RELU激活函数时如何初始化权重

How to initialize weights when using RELU activation function

我想做一个Conv网络,想用RELU激活函数。有人可以给我一些初始化权重的正确方法的线索吗(我正在使用 Theano)

谢谢

我不确定是否有硬性且快速的最佳方法来初始化 ReLU 层的权重和偏差。

一些 claim Xavier 初始化(略微修改的版本)与 ReLU 配合得很好。其他的小高斯随机权重加上bias=1(确保正输入的加权和将保持为正,从而不会在ReLUs零区域结束)。

在Theano中,这些可以这样实现(假设权重post-乘以输入):

w = theano.shared((numpy.random.randn((in_size, out_size)) * 0.1).astype(theano.config.floatX))
b = theano.shared(numpy.ones(out_size))

w = theano.shared((numpy.random.randn((in_size, out_size)) * tt.sqrt(2 / (in_size + out_size))).astype(theano.config.floatX))
b = theano.shared(numpy.zeros(out_size))