门(输入门,输出门,遗忘门)使用sigmoid,求值(
)使用tanh。
为什么?
- 门是控制开闭的,全开时值为1,全闭值为0。用于遗忘和保留信息。
- 对于求值的激活函数无特殊要求。
能更换吗?
- 门是控制开闭的,全开时值为1,全闭值为0。用于遗忘和保留信息。门的激活函数只能是值域为0到1的,最常见的就是sigmoid。
- 对于求值的激活函数无特殊要求。
能不能把tanh换成relu?
不行
- 会造成输出值爆炸。RNN共享参数矩阵,长程的话相当于多个相乘,最后输出类似于
,其中是 f 激活函数,如果 W 有一个大于1的特征值,且使用relu激活函数,那最后的输出值会爆炸。但是使用tanh激活函数,能够把输出值限制在-1和1之间。
- 这里relu并不能解决梯度消失或梯度爆炸的问题。假设有t=3,最后一项输出反向传播对W求导,
。我们用最后一项做分析,即使使用了relu,
,还是会有两个 W 相乘,并不能解决梯度消失或梯度爆炸的问题。