sigmoid、 tanh、 tanh、 tanh比较

上篇文章,我们知道逻辑回归是怎么过渡到神经网络的了

总的来说就一句话——多个逻辑回归模型,前后堆积形成了神经网络!

我引用吴恩达中的一张图,稍微的回顾以下这个过程
在这里插入图片描述
对于这张图,它的过程是这样的:

  1. 输入1个样本(含3个特征),分别到4个逻辑回归中(中间那一列的4个圈圈)
  2. 对于样本的输入,逻辑回归模型分别通过y = wx + b后将y值通过Sigmoid函数映射到01区间内,那么这里就有4个输出的01概率
  3. 对于上面输出的4个概率再输入到最后一个逻辑回归模型中,再通过y = wx + b后将y值通过Sigmoid函数映射到01区间内,得到最后的结果

对于中间那层,我们称为隐藏层,如果隐藏层多了,输入特征也多了的话,就会形成下面这样的图象

在这里插入图片描述
但是这里有个问题,对于逻辑回归使用的是Sigmoid激活函数,但是对于深度学习中继续使用Sigmoid函数是否合理?

答案是不合理的,所以在这基础上,分别提出了以下多种激活函数:

  1. sigmoid 激活函数
  2. tanh 函数(效果优于 sigmoid 函数)
  3. 修正线性单元的函数( tanh)(默认)
  4. tanh

首先让我们看看sigmoid 激活函数
在这里插入图片描述
在这里插入图片描述
然后再看看tanh 函数
在这里插入图片描述
在这里插入图片描述
紧接着看看修正线性单元的函数(ReLu)

在这里插入图片描述
在这里插入图片描述
最后再看看Leaky Relu激活函数
在这里插入图片描述
在这里插入图片描述
这里主要解决以下几个问题:
问题一:tanh 函数为什么效果优于 sigmoid 函数?

优于sigmoid的原因:因为函数值域在-1 和+1 的激活函数,其均值是更接近零均值的。在训练一个算法模型时,如果使用 tanh函数代替 sigmoid 函数中心化数据,使得数据的平均值更接近 0 而不是 0.5。

问题二:深度学习中一般使用——修正线性单元的函数(ReLu),它的好处?

Relu 的优点是:当𝑧是负值的时候,导数等于 0。
从实际上来说,当使用𝑧的导数时,𝑧=0的导数是没有定义的。但是当编程实现的时候,𝑧的取值刚好等于0.00000001,这个值相当小,所以,在实践中,不需要担心这个值,𝑧是等于 0 的时候,假设一个导数是 1 或者 0 效果都可以。

问题三:sigmoid 函数与tanh 函数的对比!

共同的缺点——在𝑧特别大或者特别小的情况下,导数的梯度或者函数的斜率会变得特别小,最后就会接近于 0,导致降低梯度下降的速度

问题四:ReLu与Leaky Relu的比较

第一,在𝑧的区间变动很大的情况下,激活函数的导数或者激活函数的斜率都会远大于0。使用 ReLu 激活函数神经网络通常会比使用
sigmoid 或者 tanh 激活函数学习的更快。

第二,sigmoid 和 tanh 函数的导数在正负饱和区的梯度都会接近于 0,这会造成梯度弥散,而 Relu 和 Leaky ReLu函数大于 0 部分都为常数,不会产生梯度弥散现象。(同时应该注意到的是,Relu 进入负半区的时候,梯度为 0,神经元此时不会训练,产生所谓的稀疏性,而 Leaky ReLu 不会有这问题)𝑧在 ReLu 的梯度一半都是0,但是,有足够的隐藏层使得 z 值大于 0,所以对大多数的 训练数据来说学习过程仍然可以很快。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值