tf.nn 激活函数

tf.nn.sigmoid()

在这里插入图片描述

tf.nn.tanh()

在这里插入图片描述
tanh函数解决了Sigmoid函数的不是zero-centered输出问题,但梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在。

tf.nn.relu()

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

在这里插入图片描述

这个函数的作用是计算激活函数 relu,即 max(features, 0)。将大于0的保持不变,小于0的数置为0。

tf.nn.elu()

在这里插入图片描述

leaky relu

在这里插入图片描述

tf.nn.crelu()

tf.nn.relu6()

tf.nn.softplus()

Softplus函数是Sigmoid函数的原函数。
在这里插入图片描述
Softplus函数可以看成是ReLU函数的平滑版本。Softplus函数是对全部数据进行了非线性映射,是一种不饱和的非线性函数其表达式如公式,Softplus函数不具备稀疏表达的能力,收敛速度比ReLUs函数要慢很多。但该函数连续可微并且变化平缓,比Sigmoid函数更加接近生物学的激活特性,同时解决了Sigmoid函数的假饱和现象,易于网络训练和泛化性能的提高。虽然该函数的表达性能更优于ReLU函数和Sigmoid函数,即精确度相对于后者有所提高,但是其并没有加速神经网络的学习速度。

tf.nn.softsign()

在这里插入图片描述

tf.nn.dropout()

tf.nn.bias_add()

在这里插入图片描述
连续非线性:sigmoid, tanh, elu, softplus, softsign;
连续但不是处处可微分:relu, relu6, crelu, relu_x;
随机函数:dropout。

如何选择合适的激活函数:

深度学习往往需要大量时间来处理大量数据,模型的收敛速度是最为重要的。所以,训练深度学习网络尽量使用zero-centered数据 (可以经过数据预处理实现) 和zero-centered输出。要尽量选择输出具有zero-centered特点的激活函数以加快模型的收敛速度;
如果使用 ReLU,那么一定要小心设置 learning rate,不要让网络出现很多 “dead” 神经元,如果不好解决,可以试试 Leaky ReLU、PReLU 或者 Maxout;
最好不要用 sigmoid。
在卷积神经网络 Convolutional neural networks 的卷积层中,推荐的激励函数是 relu。在循环神经网络中 recurrent neural networks,推荐的是 tanh 或者是 relu。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值