一、tanh介绍
tanh函数(双曲正切函数)是一种常见的数学函数,它是sigmoid函数的变形,是一种非线性函数,在神经网络中被广泛应用。
tanh函数的表达式如下:
tanh(x) = (e^x - e^-x) / (e^x + e^-x)
可以看到,tanh函数是由指数函数组成的比值,并且其取值范围为[-1, 1]。
二、tanh求导方法
1. 基本方法
对于tanh函数的导数,可以使用基本的求导公式进行求解。根据导数的定义,可得:
tanh'(x) = lim (t->0) ((tanh(x+t) - tanh(x)) / t)
接下来,我们使用tanh函数的定义式对上式进行变形,得到:
tanh'(x) = lim (t->0) ( ((e^(x+t) - e^(-x-t))/(e^(x+t) + e^(-x-t))) - ((e^x - e^-x)/(e^x + e^-x)) ) / t
使用通分的方法,将分母化简,得到:
tanh'(x) = lim (t->0) (4e^x / (e^2x + e^2t + 2e^x e^t + e^-2x - e^-2t - 2e^-x e^-t) ) / t
继续化简,得到:
tanh'(x) = 4lim (t->0) e^x / (e^2x + e^2t + 2e^x e^t + e^(-2x) - e^(-2t) - 2e^(-x) e^(-t)) * lim (t->0) 1/t
对于第二个极限,可以使用极限的基本性质将其转化为导数的形式,得到:
tanh'(x) = 4lim (t->0) e^x / (e^2x + e^2t + 2e^x e^t + e^(-2x) - e^(-2t) - 2e^(-x) e^(-t)) * (1/x)'
继续化简,得到:
tanh'(x) = 4e^x / (e^2x + 1 + 2tanh(x) - tanh^2(x))
综合上述推导过程,可以得到tanh函数的导数表达式为:
tanh'(x) = 1 - tanh^2(x)
2. 利用递推关系求导(推荐)
除了使用基本的求导公式求解tanh函数的导数外,还可以使用递推法求解。tanh函数可以表示为:
tanh(x) = 2sigmoid(2x) - 1
可以得到:
tanh'(x) = 2 * (sigmoid(2x))' = 2 * sigmoid(2x) * (1 - sigmoid(2x))
由此,利用sigmoid函数的递推法,则有:
sigmoid(x)' = sigmoid(x) * (1 - sigmoid(x))
使用sigmoid函数的递推关系,可以得到tanh函数的导数表达式为:
tanh'(x) = 1 - tanh^2(x)
三、python代码实现
使用python可以快速实现tanh函数和其导数,代码如下:
import math def tanh(x): return (math.exp(x) - math.exp(-x)) / (math.exp(x) + math.exp(-x)) def tanh_derivative(x): return 1 - math.pow(tanh(x), 2)
其中,tanh函数使用了Python的数学库math库提供的exp函数,tanh_derivative则使用了我们上文推导出的tanh函数的导数表达式。
四、总结
本文介绍了tanh函数的定义、求导方法和python实现,希望能对读者们有所帮助。当然,不同的求导方法可能会有不同的优缺点,读者们可以根据具体情况或者习惯进行选择。