Tanh 激活函数

Tanh 激活函数

我们这节来看 Tanh 激活函数,它也叫双曲正切函数,公式如下:

Tanh 的函数图像和导数图像如下:

从上面的函数图像我们可以看到,Tanh 会把输入映射到 (-1, 1) 之间,图像以 0 为中心,在 0 点对称。当输入大概小于 -3 或者大于 3 时,就会被映射成 -1 或者 1。它的导数取值范围在 (0, 1),当输入大概小于 -3 或者大于 3 时,导数就近似为 0 了。

上面这两张图,就是用下面这段代码画出来的:

import torch
import matplotlib.pyplot as plt
import torch.nn.functional as F


def test():
    
    _, axes = plt.subplots(1, 2)

    # 函数图像
    x = torch.linspace(-20, 20, 1000)
    y = F.tanh(x)
    axes[0].plot(x, y)
    axes[0].grid()
    axes[0].set_title('Tanh 函数图像')

    # 导数图像
    x = torch.linspace(-20, 20, 1000, requires_grad=True)
    F.tanh(x).sum().backward()

    axes[1].plot(x.detach(), x.grad)
    axes[1].grid()
    axes[1].set_title('Tanh 导数图像')

    plt.show()

if __name__ == '__main__':
    test()