Bootstrap

keras系列(一):参数设置

常用的 权重/偏置 初始化

常数初始化

为了在伪代码中形象化,让我们考虑一个具有64个输入和32个输出的神经网络的任意一层。

W = np.zeros((64, 32))
W = np.ones((64, 32))
W = np.ones((64, 32)) * C

虽然常量初始化很容易理解和理解,但使用这种方法的问题是,我们几乎不可能打破激活的对称性。因此,它很少被用作神经网络的权重初始化器。

均匀/正态分布

W = np.random.uniform(low=-0.05, high=0.05, size=(64, 32))
W = np.random.normal(0.0, 0.5, size=(64, 32))

在神经网络中,均匀分布和正态分布都可以用来初始化权值;然而,我们通常使用各种启发式来创建更好的初始化方案。

LeCun 均匀/正态分布

在这里,作者定义了一个参数Fin(称为fan in,或者是层的输入数)和Fout(称为fan out,或层的输出数)。使用这些值,我们可以应用统一的初始化。

F_in = 64
F_out = 32
limit = np.sqrt(3 / float(F_in))
W = np.random.uniform(low=-limit, high=limit, size=(F_in, F_out))

我们也可以用正态分布。Keras库使用一个截断的正态分布来构造上下限,以及零均值。

F_in = 64
F_out = 32
limit = np.sqrt(1 / float(F_in))
W = np.random.normal(0.0, limit, size=(F_in, F_out))

Glorot/Xavier 均匀/正态分布

在Keras库中使用的默认权值初始化方法称为Glorot初始化或Xavier初始化。
对于正态分布,其极限值是由平均的Fin和Fout组合而成,然后取平方根。然后使用一个零中心(均值为0)。

F_in = 64
F_out = 32
limit = np.sqrt(2 / float(F_in + F_out))
W = np.random.normal(0.0, limit, size=(F_in, F_out))

对于均匀分布,同样可以这样做,但一般在limit上给予更强的限制。

F_in = 64
F_out = 32
limit = np.sqrt(6 / float(F_in + F_out))
W = np.random.uniform(low=-limit, high=limit, size=(F_in, F_out))

学习使用这种初始化方法是非常有效的,我推荐它适用于大多数神经网络。

He et al. / Kaiming / MSRA 均匀/正态分布

我们通常在训练非常深的神经网络时使用这种方法,这种神经网络使用类似于relu的激活函数(特别是,一个’ PReLU ',或Parametric Rectified Linear Unit)。

F_in = 64
F_out = 32
limit = np.sqrt(6 / float(F_in))
W = np.random.uniform(low=-limit, high=limit, size=(F_in, F_out))

对于正态分布可以设置均值为0,方差为 2/Fin 开方,如下:

F_in = 64
F_out = 32
limit = np.sqrt(2 / float(F_in))
W = np.random.normal(0.0, limit, size=(F_in, F_out))

其中在Keras通常设置如下:

random_uniform:
权值被初始化为一致随机的小数值(-0.05,0.05)。换句话说,给定区间内的任何值都可能被取得。
random_normal:
根据高斯函数初始化权值,均值为零,标准差为0.05。
zero:
所有权重初始化为0。

完整的可选列表在链接如下:
keras权重和偏置初始化


激活函数

各类激活函数
左上:Step函数
右上:Sigmoid函数
左中:tanh函数
右中:Relu函数
左下:Leaky Relu函数(Relu变种)
右下:ELU函数(Relu变种)

Step函数

step函数是最简单的激活函数,形式如下:
这里写图片描述
然而,虽然这一阶跃函数是直观且易于使用的,但它是不可微的,当应用梯度下降和训练我们的网络时,它会导致问题

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;