常见的激活函数(Sigmoid,tanh双曲正切,ReLU修正线性单元,Leaky ReLU函数)

激活函数在神经元之间作为信息传递的隐射函数,是为了将我们神经元这样的线性模型进行非线性转换的重要存在,使得我们最终的神经网络模型才能够表达出强大的非线性数据拟合能力。

这里简单几种常见的激活函数。

一、Sigmoid函数

表达式为:
在这里插入图片描述

在这里插入图片描述
导函数为:
在这里插入图片描述

sigmoid是神经网络中很入门的一种激活函数,在以前得到了广泛使用,但是随着后来的学习发展,发现sigmoid的收敛速度很慢,而且因为本身的表达式不能很好的将神经元之间的信息进行非线性隐射,所以在深层神经网络的隐层的各层神经元之间逐渐被ReLU取代,但是即便到现在Sigmoid在输出层依然被广泛使用,因为人们总希望神经网络的输出是一个在0-1之间的数值,这样可以很好的表示每种类别存在的概率。

二、tanh双曲正切函数

表达式为:
在这里插入图片描述
在这里插入图片描述
导函数为:
在这里插入图片描述

双曲正切函数可以说是对sigmoid针对某些任务下的改进,将原来sigmoid隐射范围的[0,1]改成了[-1,1],根据实验者的表述,在大部分情况下,神经网络隐层中采用tanh函数效果比sigmoid函数效果教好。

但是同样tanh和sigmoid函数一样都存在的问题是收敛太慢,模型训练时间太久,并且非线性映射能力不是足够的强。

三、ReLU函数

表达式为:

在这里插入图片描述
在这里插入图片描述
导函数为:

在这里插入图片描述

ReLU函数可谓是可爱可亲,因为即便神经网络发展了这么久,很多强大的框架模型也被提出,可你始终能随时在这些模型的隐层中看见ReLU的身影,ReLU又叫修正线性单元,是一种非常好的能够将神经元之间传递的信息进行非线性隐射的激活函数,其次因为函数简单,收敛非常快,模型训练效果相比使用sigmoid会快很多,而且训练后的模型表达的效果也很好,所以是目前最常被使用的激活函数。

四、Leaky ReLU函数

表达式为:
在这里插入图片描述
在这里插入图片描述
导函数为:
在这里插入图片描述

Leaky ReLU函数又可以理解为对ReLU的一种改进,据说效果是比ReLU要稍微好一些,但没有具体进行实验操作,目前看到使用的相对还是ReLU多一些,感兴趣的同学可以使用实验一下。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Sigmoid 函数是一种非线性函数,它的输出值介于 0 和 1 之间,可以用来激活神经元。Tanh 函数也是一种非线性函数,其输出值也介于 -1 和 1 之间,可以用来激活神经元。ReLU 函数是一种常用的非线性函数,它的输出值是输入值的绝对值,可以用来激活神经元。 ### 回答2: Sigmoid函数Tanh函数和ReLU函数都是常用的激活函数,常用于神经网络模型中。 1. Sigmoid函数是一个非线性函数,其数学定义为:f(z) = 1 / (1 + exp(-z))。它有一个S形的曲线,取值范围在0到1之间。Sigmoid函数的主要特点是将输入的连续实数转化为概率形式的输出,常用于二分类问题中,可以将输出映射到0和1之间,表示了某个事件发生的概率。然而,由于其容易出现梯度消失和梯度爆炸的问题,当网络层数较多时,Sigmoid函数在反向传播中可能导致梯度无法有效地传播。 2. Tanh函数双曲线正切函数,其数学定义为:f(z) = (exp(z) - exp(-z)) / (exp(z) + exp(-z))。类似于Sigmoid函数Tanh函数也是非线性函数,但其输出范围在-1到1之间。相比于Sigmoid函数Tanh函数在原点附近有一个均值为0的对称点,具有更好的中心化特性,可以减小梯度爆炸的问题。然而,Tanh函数仍然存在梯度消失的问题。 3. ReLU函数修正线性单元函数,其数学定义为:f(z) = max(0, z)。ReLU函数在输入大于零时输出等于输入,小于零时输出为零。ReLU函数具有简单的计算形式,并且在训练过程中具有更快的收敛速度。由于ReLU函数的输出非负,不存在梯度消失的问题。然而,ReLU函数在输入为负时会失活,导致相应神经元的权重和梯度无法进行更新。为解决这个问题,出现了ReLU的变种,如Leaky ReLU、PReLU等。 总结来说,Sigmoid函数Tanh函数在某些场景下仍然有一定的应用,但在深度神经网络中,ReLU函数更受欢迎,因为它可以在一定程度上减轻梯度消失和梯度爆炸问题,并提供更快的训练速度。 ### 回答3: Sigmoid函数是一种常用的激活函数,它将输入的实数映射到一个介于0和1之间的概率值。其公式为: \[f(x) = \frac{1}{1 + e^{-x}}\] 该函数的特点是输出在区间(0,1)之间,对于大部分实数输入都能产生有效的梯度,但在输入接近两端的时候,梯度会变得很小。因此,Sigmoid函数在深度神经网络的训练过程中可能会出现梯度消失的问题。 Tanh函数双曲正切函数,它将输入的实数映射到一个介于-1和1之间的值。其公式为: \[f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}\] 与Sigmoid函数相比,Tanh函数的输出区间更大,梯度也更大。它相对于原点对称,并且输入为负数时,输出接近-1,输入为正数时,输出接近1。因此,Tanh函数适用于输出介于-1和1之间的情况,但仍然存在梯度消失的问题。 ReLU函数修正线性单元函数,它将输入的实数映射为输入本身或者0。其公式为: \[f(x) = max(0, x)\] ReLU函数当输入为正数时,输出等于输入;当输入为负数时,输出为0。相较于Sigmoid函数Tanh函数,ReLU函数计算速度更快,并且不存在梯度消失的问题。然而,ReLU函数也存在一个缺点,就是在输入为负数时,梯度为0,从而导致对应的权重无法更新。为了解决这个问题,一些改进的版本如Leaky ReLU和Parametric ReLU被提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值