TensorFlow激活函数API及其在简单卷积网络上的比较

Activation Functions

  1. 平滑非线性激活单元(sigmoid,tanh,elu,softplus and softsign)
  2. 连续但不是处处可导的激活单元(relu,relu6,crelu and relu_x)
  3. 随机正则化单元(dropout)

所有的激活操作都是应用在元素级上的,生成一个和输入张量形状一样的张量
激活函数可以把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更好的被分类。

激活函数有哪些性质?
  1. 非线性:当激活函数是线性的,一个两层的神经网络就可以基本上逼近所有的函数。但如果激活函数是恒等激活函数的时候,即f(x)=x,就不满足这个性质,而且如果MLP 使用的是恒等激活函数,那么其实整个网络跟单层神经网络是等价的;
  2. 可微性:当优化方法是基于梯度的时候,就体现了该性质;
  3. 单调性:当激活函数是单调的时候,单层网络能够保证是凸函数;
  4. f(x)≈x:当激活函数满足这个性质的时候,如果参数的初始化是随机的较小值,那么神经网络的训练将会很高效;如果不满足这个性质,那么就需要详细地去设置初始值;
  5. 输出值的范围: 当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的Learning Rate。

连续但不是处处可导的激活单元

1.

tf.nn.relu(features, name=None)

f = max(0, features)
在这里插入图片描述
在这里插入图片描述

2.

tf.nn.relu6(features, name=None)

加了个上限:f = min(max(features, 0), 6)
在这里插入图片描述

3.

tf.nn.crelu(features, name=None)

concatenates a ReLU which selects only the positive part of the activation with a ReLU which selects only the negative part of the activation
这会产生两倍通道的结果

4.

tf.nn.lrelu(features, name=None)

f = max(α·features, features)

平滑非线性激活单元

1.

tf.nn.elu(features, name=None)

论文:Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)
在这里插入图片描述
小于0的部分相当于实现了一个BN的功能
ELU在超过5层的网络上面效果更显著,而且速度更快。BN对带有ELU的网络提升不大
在这里插入图片描述
反向传播的效率非常高,α是一个控制exp(x)-1范围的数,也就是负值输入饱和状态的值。
在这里插入图片描述
在这里插入图片描述

2.

tf.nn.softplus(features, name=None)

f = log(exp( fetures ) + 1)

在这里插入图片描述

3.

tf.nn.softsign(features, name=None)

f = features / (abs( features ) + 1)
f’ = f(1-f)
在这里插入图片描述

4.

tf.sigmoid(x, name=None)

带有偏置
y=1 / (1 + exp( - x))
在这里插入图片描述

5.

tf.tanh(x, name=None)

双曲正切
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Dropout

tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None)

正则化机制
(1 - keep_prob)元素被置为0,剩下的元素放大为1 / keep_prob倍

偏置相加

tf.nn.bias_add(value, bias, data_format=None, name=None)
	# value: Tensor
	# bias: 1-D Tensor
	# data_format='NHWC' or 'NCHW'

下面在一个只包含一个卷积层和一个全连接层的简单网络上,改变卷积层中的激活函数,看看网络性能的变化:(卷积核5x5x16,全连接层是sigmoid)
在这里插入图片描述
可以看出小网络上relu6最好 sigmoid最差

在这里插入图片描述
卷积层用rule,改变全连接层中的激活函数,看看网络性能的变化:
在这里插入图片描述
在这里插入图片描述
注意:在卷积层中表现最好的relu6在全连接层中表现最差

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值