在LSTM中使用tanh的直觉是什么
deep-learning
lstm
machine-learning
recurrent-neural-network
5
0

在LSTM Network( 了解LSTM )中,为什么输入门和输出门使用tanh?这背后的直觉是什么?这只是一个非线性变换?如果是,是否可以同时将其更改为另一个激活功能(例如ReLU)?

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

LSTM管理内部状态向量,当我们添加某些函数的输出时,其值应该能够增大或减小。乙状结肠输出总是非负的;状态中的值只会增加。 tanh的输出可以为正或为负,从而允许状态增加和减少。

这就是使用tanh确定要添加到内部状态的候选值的原因。 LSTM的GRU表亲没有第二个tanh,因此从某种意义上讲,第二个tanh是不必要的。有关更多信息,请查看Chris Olah的《 了解LSTM网络》中的图表和说明。

相关的问题:“为什么在LSTM中使用了S型乙状结肠?”也可以根据函数的可能输出来回答:“门控”是通过乘以零和一之间的数字来实现的,这就是S形输出。

S型和tanh的派生词之间并没有真正有意义的区别。 tanh只是重新缩放后的乙状结肠:请参阅Richard Socher的《 神经技巧和窍门》 。如果二阶导数相关,我想知道如何。

收藏
评论

具体而言, Sigmoid用作LSTM 3个门(进,出,忘记)的门控功能,因为它输出的值介于0和1之间,因此它既不能让信息流过,也不能让信息在信息流中完全流通。另一方面,要克服梯度消失的问题,我们需要一个函数,该函数的二阶导数在变为零之前可以维持很长的范围。 Tanh具有上述特性,是一个很好的功能。

一个好的神经元单元应该是有界的,易于区分的,单调的(有利于凸优化)并且易于处理。如果您考虑这些质量,那么我相信您可以使用ReLU代替tanh函数,因为它们是彼此很好的替代品。但是,在选择激活功能之前,您必须知道选择相对于其他功能的优缺点。我将简要介绍一些激活功能及其优点。

乙状结肠

数学表达式: sigmoid(z) = 1 / (1 + exp(-z))

一阶导数: sigmoid'(z) = -exp(-z) / 1 + exp(-z)^2

优点:

(1) Sigmoid function has all the fundamental properties of a good activation function.

h

数学表达式: tanh(z) = [exp(z) - exp(-z)] / [exp(z) + exp(-z)]

一阶导数: tanh'(z) = 1 - ([exp(z) - exp(-z)] / [exp(z) + exp(-z)])^2 = 1 - tanh^2(z)

优点:

(1) Often found to converge faster in practice
(2) Gradient computation is less expensive

硬丹

数学表达式: hardtanh(z) = -1 if z < -1; z if -1 <= z <= 1; 1 if z > 1

一阶导数: hardtanh'(z) = 1 if -1 <= z <= 1; 0 otherwise

优点:

(1) Computationally cheaper than Tanh
(2) Saturate for magnitudes of z greater than 1

ReLU

数学表达式: relu(z) = max(z, 0)

一阶导数: relu'(z) = 1 if z > 0; 0 otherwise

优点:

(1) Does not saturate even for large values of z
(2) Found much success in computer vision applications

泄漏的ReLU

数学表达式: leaky(z) = max(z, k dot z) where 0 < k < 1

一阶导数: relu'(z) = 1 if z > 0; k otherwise

优点:

(1) Allows propagation of error for non-positive z which ReLU doesn't

本文介绍了一些有趣的激活功能。您可以考虑阅读它。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号