LSTM 两个激励函数区别sigmoid 和tanh
来源:互联网 发布:顶尖数据恢复软件 编辑:程序博客网 时间:2024/06/07 00:49
- sigmoid 用在了各种gate上,产生0~1之间的值,这个一般只有sigmoid最直接了。
- tanh 用在了状态和输出上,是对数据的处理,这个用其他激活函数或许也可以。
1. sigmoid激活函数
sigmoid将一个实数输入映射到[0,1]范围内,如下图(左)所示。使用sigmoid作为激活函数存在以下几个问题:
- 梯度饱和。当函数激活值接近于0或者1时,函数的梯度接近于0。在反向传播计算梯度过程中:
δ(l)=(W(l))Tδ(l+1)∗f′(z(L)) ,每层残差接近于0,计算出的梯度也不可避免地接近于0。这样在参数微调过程中,会引起参数弥散问题,传到前几层的梯度已经非常靠近0了,参数几乎不会再更新。 - 函数输出不是以0为中心的。我们更偏向于当激活函数的输入是0时,输出也是0的函数。
因为上面两个问题的存在,导致参数收敛速度很慢,严重影响了训练的效率。因此在设计神经网络时,很少采用sigmoid激活函数。
2. tanh激活函数
tanh函数将一个实数输入映射到[-1,1]范围内,如上图(右)所示。当输入为0时,tanh函数输出为0,符合我们对激活函数的要求。然而,tanh函数也存在梯度饱和问题,导致训练效率低下。
3.Relu激活函数
Relu激活函数(The Rectified Linear Unit)表达式为:
相比sigmoid和tanh函数,Relu激活函数的优点在于:
- 梯度不饱和。梯度计算公式为:
1{x>0} 。因此在反向传播过程中,减轻了梯度弥散的问题,神经网络前几层的参数也可以很快的更新。 - 计算速度快。正向传播过程中,sigmoid和tanh函数计算激活值时需要计算指数,而Relu函数仅需要设置阈值。如果
x<0,f(x)=0 ,如果x>0,f(x)=x 。加快了正向传播的计算速度。
因此,Relu激活函数可以极大地加快收敛速度,相比tanh函数,收敛速度可以加快6倍(如上图(右)所示)。
阅读全文
0 0
- LSTM 两个激励函数区别sigmoid 和tanh
- Sigmoid 函数和 Tanh 函数的区别
- 人工神经网络中的activation function的作用以及ReLu,tanh,sigmoid激励函数的区别
- sigmoid、tanh、softplus和ReLu激活函数
- Sigmoid和tanh的异同
- sigmoid和tanh求导的最终结果,以及Sigmoid函数与损失函数求导
- 神经网络之激活函数(sigmoid、tanh、ReLU)
- 激活函数-Sigmoid,Tanh,ReLu,softplus,softmax
- 神经网络之激活函数(sigmoid、tanh、ReLU)
- sigmoid 和tanh 权值初始化区间
- sigmoid和tanh求导的特殊技巧
- python绘制神经网络中的Sigmoid和Tanh激活函数图像(附代码)
- 神经网络中的激活函数具体是什么?为什么ReLu要好过于tanh和sigmoid function?
- 四种激活函数(Relu Linear Sigmoid Tanh)
- 深度学习——激活函数Sigmoid/Tanh/ReLU
- ReLU Sigmoid and Tanh
- sigmoid和softmax激活函数的区别
- 神经网络激活函数sigmoid relu tanh 为什么sigmoid 容易梯度消失
- JDBC的封装
- qt *.pro 和源代码通用宏定义(如条件编译)
- web第五天js
- JavaScript基本类型和引用类型的不同
- RecyclerView的onLayout浅析(一)
- LSTM 两个激励函数区别sigmoid 和tanh
- 编程实现一个单链表的测长
- 对公钥和私钥使用的理解
- MySQL触发器初探
- 问题 C: 数字排序问题
- C语言的关键字
- 火狐浏览器使用方法 使用扩展Stylish 实现浏览博客园的博文时,文字的背景颜色变为护眼绿
- C语言 头指针链表
- FTP协议