深度学习中的 tanh
激活函数
在深度学习中,tanh
(双曲正切)是一种常用的激活函数,通常用于神经网络的隐藏层。它的数学表达式为:
[ \text{tanh}(x) = \frac{e^x - e{-x}}{ex + e^{-x}} ]
Tanh
的输出范围是 ([-1, 1]),这与 sigmoid
函数(输出范围为 ([0, 1]))不同。使用 tanh
有几个优点和缺点:
优点
- 中心对称:
tanh
函数是中心对称的,即对于任何输入 (x),都有 (\text{tanh}(-x) = -\text{tanh}(x))。这意味着激活值可以是负的,从而更好地处理数据的正负两方面。 - 缓解梯度消失问题:与
sigmoid
相比,tanh
在零点附近的梯度更大,有助于缓解梯度消失问题。
缺点
- 梯度消失:尽管比
sigmoid
好一些,但在极端值附近(即输入值很大或很小时),tanh
的梯度依然接近零,可能导致梯度消失问题。 - 计算复杂:与
ReLU
(修正线性单元)相比,tanh
的计算更加复杂,因为它涉及指数计算。
使用场景
Tanh
函数常用于以下场景:
- 中间层激活函数:在循环神经网络(RNN)中常常使用
tanh
作为中间层的激活函数。 - 对称数据:当数据的分布是中心对称的(例如均值为零)时,
tanh
可以更好地表达数据的特性。
在选择激活函数时,除了 tanh
,还可以考虑 ReLU
、Leaky ReLU
、ELU
等。具体选择哪种激活函数,通常需要根据具体问题和数据进行实验。