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

Sigmoid函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值