在计算机科学和数学中,tanh是 双曲正切函数(hyperbolic tangent function)的缩写。它是一种非线性激活函数,用于神经网络中用于将连续型的输入数据映射到一个介于-1和1之间的连续型的输出值。
数学上,tanh函数的定义如下:
\[
\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
\]
也可以简化为:
\[
\tanh(x) = \frac{e^{2x} - 1}{e^{2x} + 1}
\]
或者
\[
\tanh(x) = 1 - \frac{2}{e^{2x} + 1}
\]
tanh函数具有以下特性:
输出范围:
tanh函数的输出值范围在-1到1之间。
中心对称:
tanh函数关于原点对称,即\(\tanh(-x) = -\tanh(x)\)。
梯度特性:
当输入值较大或较小时,tanh函数的输出接近于1或-1,且梯度较小,这有助于在训练神经网络时保持权重的稳定性。
与sigmoid函数相比,tanh函数具有相同的输出间隔(即0到1),但它的输出以0为中心,这使得它在某些情况下比sigmoid函数更适用。
在C++中,tanh函数可以使用标准库中的`std::tanh`函数来计算:
```cpp
include
double tanh(double x) {
return std::tanh(x);
}
```
在Python中,可以使用`math`模块中的`tanh`函数:
```python
import math
x = 0.5
result = math.tanh(x)
print(result) 输出约为0.4666666666666667
```
总的来说,tanh函数是一种在深度学习中广泛使用的非线性激活函数,它有助于模型学习复杂的非线性关系。