TensorFlow_3激活函数

TensorFlow学习系列:

TensorFlow_1参数初始化方法

TensorFlow_2学习率

TensorFlow_3激活函数

TensorFlow_4正则化

TensorFlow_5dropout

TensorFlow_6断点续训与Tensorboard可视化

TensorFlow_7优化器

TensorFlow_8损失函数

 

一, 什么是激活函数

如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数 Activation Function。

二、 为什么要用

  • 如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。
  • 如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。

三、常用激活函数

3.1 Sigmoid函数 

       sigmoid函数也叫 Logistic 函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。

3.1.1 公式

3.1.2 图

3.1.3 优缺点

优点: 

  • 可以把输入映射到(0, 1)区间,可以用来表示概率(eg:logistic regression)
  • 在物理意义上最为接近生物神经元

缺点: 

  • 梯度消失问题 

       反向传播算法中,要对激活函数求导,sigmoid 的导数表达式为:

       sigmoid 原函数及导数图形如下:

       由图可知,导数从 0 开始很快就又趋近于 0 了,易造成“梯度消失”现象

  • Sigmoid outputs are not zero-centered

3.1.4 TensorFlow中使用

tf.sigmoid(x, name = None) == tf.nn.sigmoid(x, name = None)
# y = 1 / (1 + exp(-x))

3.2 Tanh函数

       tanh是双曲正切函数,tanh函数和sigmod函数的曲线是比较相近的,咱们来比较一下看看。首先相同的是,这两个函数在输入很大或是很小的时候,输出都几乎平滑,梯度很小,不利于权重更新;不同的是输出区间,tanh的输出区间是在(-1,1)之间,而且整个函数是以0为中心的,这个特点比sigmod的好。

3.2.1 公式

3.2.2 图

3.2.3 优缺点

优点: 

  • Tanh outputs are zero-centered,把输入映射到(-1, 1)区间

缺点: 

  • 虽然 tanh 的导数f^{'}(z^{l})区间为(0, 1],但仍然会导致梯度消失问题!

3.2.4 TensorFlow中使用

tf.tanh(x, name = None)  == tf.nn.tanh(x, name = None)
# y = (exp(x) - exp(-x)) / (exp(x) + exp(-x))

3.3 RELU函数

Rectified Linear Unit(ReLU) - 用于隐层神经元输出

3.3.1 公式

3.3.2 图

3.3.3 优缺点

优点: 

  • 比 sigmoid/tanh 收敛的更快(6x),creating sparse representations with true zeros( more likely to be linearly separable)
  • 其导数在其权重和(z) 大于 0 的时候为 1,从而误差可以很好的传播,权重可以正常更新

缺点: 

  • 其导数在其权重和(z) 小于 0 的时候为 0,会导致梯度值为0,从而权重无法正常更新
  • 输出具有偏移现象,即输出均值恒大于零 

3.3.4 TensorFlow中使用

tf.nn.relu(features, name=None)
# y = max(features, 0)

激活函数相关文章:https://segmentfault.com/a/1190000017403234?utm_source=tag-newest

欢迎扫码关注我的微信公众号

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值