怎么使用Python绘制常见的激活函数曲线
更新时间:2023-11-06前言
激活函数是神经网络中非常重要的组成部分之一。它们将输入信号转换为输出信号,并在神经网络中引入非线性特性。Python提供了强大的绘图库matplotlib和numpy来绘制激活函数的曲线。本文将介绍如何使用Python绘制常见的激活函数曲线。
ReLU(Rectified Linear Unit)函数
ReLU是神经网络中最常见的激活函数之一。它的数学表示为f(x) = max(0, x),其中x是输入信号。ReLU函数将所有小于等于零的值设置为零,而大于零的值保持不变。
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-10, 10, 100) y = np.maximum(0, x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('f(x)') plt.title('ReLU Function') plt.show()
使用numpy的linspace函数可以生成一个从-10到10的等间距的数组,然后使用maximum函数将小于等于零的值设置为零。最后使用matplotlib的plot函数绘制曲线。
Sigmoid函数
Sigmoid函数是另一个常见的激活函数。它的数学表示为f(x) = 1 / (1 + exp(-x)),其中exp是自然常数e的指数函数。
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-10, 10, 100) y = 1 / (1 + np.exp(-x)) plt.plot(x, y) plt.xlabel('x') plt.ylabel('f(x)') plt.title('Sigmoid Function') plt.show()
使用numpy的exp函数计算了e的-x次方,并将结果作为分母的一部分。然后使用1除以该结果得到sigmoid函数的值。
Tanh函数
Tanh函数是双曲正切函数,它在取值范围上和Sigmoid函数相似,但是可以输出负数。它的数学表示为f(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))。
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-10, 10, 100) y = (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x)) plt.plot(x, y) plt.xlabel('x') plt.ylabel('f(x)') plt.title('Tanh Function') plt.show()
使用numpy的exp函数计算了e的x次方和e的-x次方,并对它们进行相加和相减的操作。然后将结果分别除以相加的结果得到tanh函数的值。
总结
使用Python绘制常见的激活函数曲线非常简单。利用numpy生成输入信号的数组,然后利用不同的数学公式计算输出信号的值,最后使用matplotlib将输入信号和输出信号的值绘制成曲线。本文介绍了ReLU函数、Sigmoid函数和Tanh函数的绘制方法。通过学习这些绘制方法,我们可以更好地理解激活函数的特性和作用。