我是靠谱客的博主 开朗雪糕,最近开发中收集的这篇文章主要介绍sigmoid tanh Relu比较,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、sigmoid函数

这里写图片描述

函数曲线图如下:

函数导数曲线图如下:

优点:

  • 输出为0到1之间的连续实值,此输出范围和概率范围一致,因此可以用概率的方式解释输出。-
  • 将线性函数转变为非线性函数

缺点:

  • 容易出现gradient vanishing
  • 函数输出并不是zero-centered
  • 幂运算相对来讲比较耗时

对应的tf函数:tf.nn.sigmoid()

2、tanh函数

tanh函数表达式:
这里写图片描述

函数曲线图为:
这里写图片描述
sigmoid和tanh函数之间的关系式:
这里写图片描述
sigmoid函数和tanh函数导数区别

考虑相同的输入区间[0,1]

sigmoid函数导数输出范围为[0.20,0.25]

tanh函数导数曲线图为

其输出范围为[0.42,1]

优点:

  • 对比sigmoid和tanh两者导数输出可知,tanh函数的导数比sigmoid函数导数值更大,即梯度变化更快,也就是在训练过程中收敛速度更快。
  • 输出范围为-1到1之间,这样可以使得输出均值为0,这个性质可以提高BP训练的效率,具体原因参考文献 http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf
  • 将线性函数转变为非线性函数

缺点:

  • gradient vanishing
  • 幂运算相对来讲比较耗时

    对应的tf函数:tf.nn.tanh()

3、ReLU函数

ReLU函数表达式为:
这里写图片描述

其函数曲线图为:

这里写图片描述

由函数图像可知其导数为分段函数

x <= 0时,导数为0

x > 0时,导数为1

优点:

  • 解决了gradient vanishing问题 (在正区间)
  • 计算速度非常快,只需要判断输入是否大于0
  • 收敛速度远快于sigmoid和tanh

缺点:

  • 不是zero-centered
  • 某些神经元可能永远不会被激活

    对应的tf函数为:tf.nn.relu()

最后

以上就是开朗雪糕为你收集整理的sigmoid tanh Relu比较的全部内容,希望文章能够帮你解决sigmoid tanh Relu比较所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部