首页 > 编程知识 正文

多分类激活函数,激活函数的特征

时间:2023-05-03 06:44:15 阅读:161740 作者:4183

sigmod函数的公式和图表如下图所示

sigmod函数表达式

sigmod函数图

由sigmod函数可知,其输出在(0,1 )这个开区间内是很有意思的。 虽然可以联想到概率,但是从严格意义上来说不要认为是概率。 sigmod函数曾一度流行,它可视为一个神经元放电率,中间梯度大的地方是神经元敏感区,两侧梯度平缓的地方是神经元抑制区。

当然,流行也曾一度流行,说明函数本身存在一定的缺陷。

当输入稍微远离坐标原点时,函数的梯度变小,几乎为零。 在神经网络反向传播的过程中,我们都是通过微分的链定律计算各权重w的微分。 当反向传播经过sigmod函数时,该链上的微分变得非常小,并且经过很多sigmod函数,最终权重w可能几乎不影响损失函数,这不利于权重的优化。 这个问题称为梯度饱和,也称为梯度方差。

函数的输出不以0为中心,从而降低了权重更新效率。 斯坦福大学的课程详细描述了这一缺陷。

sigmod函数进行指数运算,但这对计算机来说很慢。

2.tanh函数

tanh函数的公式和曲线如下

tanh函数表达式

tanh函数图

tanh是双曲正切函数,tanh函数和sigmod函数的曲线比较接近,我们来比较一下吧。 首先相同的是,这两个函数无论输入大还是小,输出都大致平滑,梯度小,不利于权重更新的不同之处在于输出区间,tanh的输出区间在(-1,1 )之间,而且函数整体以0为中心,这一特征是SIG

在一般的二分类问题中,隐层使用tanh函数,输出层使用sigmod函数。 但这些也不是一成不变的,具体使用什么样的激活函数,还是要根据具体问题具体分析,还是要靠调试。

3.ReLU函数

ReLU函数的公式和曲线如下

relu函数表达式

relu函数图

relu(rectifiedlinearunit )函数是当前备受关注的活动函数,与sigmod和tanh函数相比具有以下优点:

输入为正时,没有梯度饱和问题。

计算速度相当快。 ReLU函数只有线性关系,无论是前向传播还是后向传播都比sigmod和tanh快得多。 (sigmod和tanh计算指数,因此计算速度较慢。)

当然,也有缺点:

如果输入为负数,则完全不激活ReLU。 这表示输入负数会导致ReLU死亡。 在这样向前传播的过程中,还不是问题,有敏感的区域,也有不敏感的区域。 但是,如果在反向传播过程中输入负数,则梯度将完全为0。 这与sigmod函数和tanh函数有相同的问题。

发现ReLU函数的输出要么是0,要么是正的。 也就是说,ReLU函数也不是以0为中心的函数。

4.ELU函数

ELU函数的公式和曲线如下图所示

elu函数表达式

elu函数图

ELU函数是对ReLU函数的改进,与ReLU函数相比,输入为负时具有一定的输出,且该部分输出具有一定的抗干扰能力。 这样可以解决ReLU死亡的问题,但存在梯度饱和和指数运算的问题。

5.PReLU函数

PReLU函数的公式和曲线如下图所示

prelu公式

prelu函数图

PReLU也是对ReLU的改良,在负数的领域中PReLU有很小的倾斜,也可以避免ReLU死亡的问题。 与ELU相比,PReLU在负数区域为线性运算,斜率较小,但不为0是一定的优势吧。

让我们来看看PReLU的公式。 中的参数一般取0~1之间的数。 而且一般像0.000数一样小。 当=0.01时,我们将PReLU称为Leaky ReLU。 PReLU的特殊情况吧。

总体来看,这些激活函数都有各自的优点和缺点,没有一个表明哪个不行,哪个激活函数好,所有的好坏都要自己实验得到。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。