在深度学习中,神经网络由神经元组成,这些神经元的工作与其权重、偏差和各自的激活函数相对应。权重和偏差根据输出的误差进行调整。这称为反向传播。激活函数使这个过程成为可能,因为它们提供梯度以及误差来更新权重和偏差。
激活函数在神经网络中引入了非线性。它们将线性输入信号转换为非线性输出信号。一些激活函数有Sigmoid
、ReLu
、Softmax
、tanh
等。
在本教程中,我们将学习tanh 激活函数。那么让我们开始吧。
tanh是什么?
激活函数可以是线性的或非线性的。是正切双曲tanh
的缩写。是非线性激活函数。它是一个指数函数,主要用于多层神经网络,特别是隐藏层。tanh
让我们看看 tanh 函数的方程。
这里,“ e ”是欧拉数,也是自然对数的底数。它的值约为2.718。
简化后,我们得到这个方程,
据称,与 sigmoid 激活函数相比,tanh 激活函数的性能要好得多。事实上,tanh
和sigmoid
激活函数是相互关联的并且可以相互推导。
tanh 和 sigmoid 激活函数之间的关系
激活函数的方程sigmoid
为
同样,我们可以写,
因此,从tanh 方程 1和sigmoid 方程 2中我们可以看到两者之间的关系为
现在,让我们尝试tanh
使用 Python 绘制该函数的图形。
使用 Matplotlib 创建 tanh 图
我们将使用matplotlib 库来绘制图形。这是一个巨大的图书馆,我们在我们的网站上详细介绍了它。以下是AskPython 上所有 matplotlib 教程的列表。
#importing the required libraries from math import exp import matplotlib.pyplot as plt #defining the tanh function using equation 1 def tanh(x): return (exp(x) - exp( - x)) / (exp(x) + exp( - x)) #input to the tanh function input = [] for x in range ( - 5 , 5 ): input .append(x) #output of the tanh function output = [] for ip in input : output.append(tanh(ip)) #plotting the graph for tanh function plt.plot( input , output) plt.grid() #adding labels to the axes plt.title( "tanh activation function" ) plt.xlabel( 'x' ) plt.ylabel( 'tanh(x)' ) plt.show() |
输出:
从上图可以看出,该图tanh
是S形的。它可以取范围从-1 到 +1 的值。另外,请注意此处的输出是以零为中心的,这在执行反向传播时很有用。
如果我们不使用直接方程,而是使用tanh
和sigmoid
关系,那么代码将是:
#importing the required libraries from math import exp import matplotlib.pyplot as plt #defining the sigmoid function def sigmoid(x): return 1 / ( 1 + exp( - x)) #defining the tanh function using the relation def tanh(x): return 2 * sigmoid( 2 * x) - 1 #input to the tanh function input = [] for x in range ( - 5 , 5 ): input .append(x) #output of the tanh function output = [] for ip in input : output.append(tanh(ip)) #plotting the graph for tanh function plt.plot( input , output) plt.grid() #adding labels to the axes plt.title( "tanh activation function" ) plt.xlabel( 'x' ) plt.ylabel( 'tanh(x)' ) plt.show() |
输出:
上面两张图完全一样,验证了它们之间的关系是正确的。
tanh 函数已用于许多 NLP 应用中,包括自然语言处理和语音识别。
概括
就这样!因此,我们在本教程中了解了tanh
激活函数。如果您有兴趣,还可以了解sigmoid 激活函数。