神经网络基础知识之激活函数

激活函数简介

神经网络本身对数据信息能够进行并行处理,同时在处理过程中具有较强的自学习能力以及非线性逼近能力,而激活函数作为神经网络中神经元的核心,其作用在于将非线性因素引入神经元,它在输入传递至输出的过程中进行函数转换,以此将无限范围内的输入非线性变换为有限范围内的输出,一旦人工神经网络缺少激活函数,那么它每一层的数据传递过程就变成了单纯的矩阵计算过程,无论数据传递了多少层,最后的输出都是输入的线性组合。
常用的激活函数有Sigmod函数、Tanh函数、ReLU函数。

1、Sigmod激活函数

Sigmod函数是一种常见的S型函数,它能够将输入变量映射到0到1之间,具体的函数公式如下:
在这里插入图片描述
在这里插入图片描述

2、Tanh激活函数

Tanh函数是一种双曲正切函数,它是由双曲正弦函数与双曲余弦函数推导而来,其计算公式如下:
在这里插入图片描述
在这里插入图片描述

3、Relu激活函数

ReLU函数是目前应用较多的一种激活函数,其计算公式如下:
在这里插入图片描述
在这里插入图片描述

4、对比

上述三种激活函数均存在一定的问题。

  1. 当使用Sigmod函数时,若输入较大或较小,则函数的梯度值将会很小,而神经网络的反向传播过程都会利用梯度值对权重进行微分,这样就使得该微分也变得很小,不利于对权重进行优化,另外相对于另外两种激活函数而言,Sigmod函数中的指数运算会具有较大的运算量;
  2. 当使用Tanh函数时,由于其函数曲线与Sigmod函数曲线较为相似,因此也会存在不利于权重优化的问题,但由于Tanh函数的值域为[-1,1],因此相较于Sigmod函数其优化效果有所增强;
  3. ReLU函数与Sigmod函数、Tanh函数相比,当输入为正数时,不会出现梯度值较小的问题,同时由于其计算过程中只存在线性计算,因此其计算速度会快于另外两种激活函数,但ReLU函数自身也存在一定的缺陷,那就是当输入为负数时,ReLU函数是无法进行激活的,若是在反向传递过程中,梯度将直接变成0。

由此可见,无论是哪种激活函数,均存在一定的问题,对激活函数进行研究改进也是优化人工神经网络性能的一个重要途径。

猜你喜欢

转载自blog.csdn.net/weixin_42051846/article/details/128765051