tensorflow学习笔记(2):激活函数

官方解释:

http://www.tensorfly.cn/tfdoc/api_docs/python/nn.html

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

ReLU由于非负区间的梯度为常数,因此不存在梯度消失问题(Vanishing Gradient Problem),使得模型的收敛速度维持在一个稳定状态

优点: 收敛速度会比 sigmoid/tanh 快。

缺点: 训练过程该函数不适应较大梯度输入,因为在参数更新以后,ReLU的神经元不会再有激活的功能,导致梯度永远都是零。

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

如果x<0,输出0,如果0<x<6,输出x,如果x>6,输出6

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

softplus函数的数学表达式为y=log(1+e^x),它们的函数表达式如下: 

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

 

以P的概率值抑制神经元,若抑制则神经元为0(发生概率P),

若不被抑制,则神经元输出值y=\frac{1}{1-P}(发生概率1-P)

x:输入
keep_prob:保留比例。        取值 (0,1] 。每一个参数都将按这个比例随机变更
noise_shape:干扰形状。     此字段默认是None,表示第一个元素的操作都是独立,但是也不一定。比例:数据的形状是shape(x)=[k, l, m, n],而noise_shape=[k, 1, 1, n],则第1和4列是独立保留或删除,第2和3列是要么全部保留,要么全部删除。
seed:随机数种子,让结果可再现。
name:

tf.nn.dropout是TensorFlow里面为了防止或减轻过拟合而使用的函数,它一般用在全连接层

Dropout就是在不同的训练过程中随机扔掉一部分神经元。也就是让某个神经元的激活值以一定的概率p,让其停止工作,这次训练过程中不更新权值,也不参加神经网络的计算。但是它的权重得保留下来(只是暂时不更新而已),因为下次样本输入时它可能又得工作了。示意图如下:

tf.nn.bias_add(value, bias, name=None)

tf.sigmoid(x, name=None)

y=\frac{1}{1+e^{^{x}}}

sigmoid函数优缺点:
优点: 
可以把输入映射到(0, 1)区间,可以用来表示概率(eg:logistic regression) 
在物理意义上最为接近生物神经元
缺点: 
梯度消失问题 
首先明确一点:误差反向传播时,梯度包含了f′(zl)和上一层的误差项(又包含了f′(zl+1):z 为权重加权和)两个乘法因子,反向传播推导
由于 sigmoid 的导数f′(zl)区间为(0, 0.25],所以其极易落入饱和区,导致梯度非常小,权重接近不变,无法正常更新
误差不断向底层传递的过程中,f′(zl)会呈指数倍增加,而其值域为(0, 0.25],所以梯度越往后传递值越小,最终导致权重无法正常更新
sigmoid的输出并不是均值为0的,所有输出数据的大于0,会增加梯度的不稳定性
当输出接近饱和或剧烈变化时,对输出范围的这种缩减往往会带来一些不利影响


tf.tanh(x, name=None)

  • tanh函数的优缺点:
  • 优点: 
    Tanh outputs are zero-centered,把输入映射到(-1, 1)区间
  • 缺点: 
    虽然 tanh 的导数f′(zl)区间为(0, 1],但仍然会导致梯度消失问题!
  • 在具体应用中,tanh函数相比于Sigmoid函数往往更具有优越性,这主要是因为Sigmoid函数在输入处于[0,1]之间时,函数值变化敏感

    ,一旦接近或者超出区间就失去敏感性,处于饱和状态,影响神经网络预测的精度值。而tanh的输出和输入能够保持非线性单调上升和下降关

    系,符合BP网络的梯度求解,容错性好,有界,渐进于0、1,符合人脑神经饱和的规律,但比sigmoid函数延迟了饱和期。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值