深度学习激活函数代码实现:Sigmoid与Tanh

需积分: 12 4 下载量 60 浏览量 更新于2024-09-02 2 收藏 26KB DOCX 举报
"该资源包含了深度学习中常用的激活函数的Python代码实现,包括sigmoid和tanh函数,并通过matplotlib库绘制了它们的图形。" 在深度学习中,激活函数是神经网络的重要组成部分,它们引入非线性,使得网络能够学习更复杂的特征。本资源主要讨论了两个经典的激活函数:sigmoid和tanh。 1. **Sigmoid函数** Sigmoid函数常用于二分类问题,其数学形式为:\( f(x) = \frac{1}{1 + e^{-x}} \)。它将输入映射到(0,1)之间,输出接近0或1时可以看作是概率值。Sigmoid的一个特点是其输出值的梯度在饱和区(接近0或1)会变得非常小,这可能导致训练过程中的梯度消失问题,从而影响模型的训练效果。 代码中,使用`matplotlib`和`mpl_toolkits.axisartist`库创建了一个没有常规坐标轴的图形,然后通过`new_floating_axis`方法添加了自定义的坐标轴,并设置了箭头样式。接着,利用`numpy`计算了sigmoid函数的值,并将结果与x轴坐标一起绘制为红色曲线,最后保存为"sigmoid.png"。 2. **Tanh函数** Tanh函数全称双曲正切函数,它的表达式为:\( f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} \),其输出范围在-1到1之间。相比Sigmoid,tanh函数在饱和区的梯度更大,因此通常能提供更好的训练效果,特别是在隐藏层中。 同样地,tanh函数的代码也使用了相同的绘图方式,但调整了图形的尺寸和坐标轴的范围。计算出的tanh函数值被绘制为图形,颜色未在代码中指定,假设为默认颜色。最后,图像同样会被保存,文件名可能为"tanh.png"。 激活函数的选择对深度学习模型的性能有很大影响。除了sigmoid和tanh,还有ReLU(Rectified Linear Unit)、Leaky ReLU、ELU(Exponential Linear Units)等其他激活函数,它们各有优缺点,适用于不同的场景。例如,ReLU因其简单和高效的特性,在深度神经网络中广泛使用,但其也会遇到梯度消失问题;而ELU和Leaky ReLU则试图解决这个问题,通过引入一个非零的小斜率来缓解饱和区的梯度消失。 理解和选择合适的激活函数是深度学习模型设计的关键步骤之一,而这个资源提供了一个很好的起点,帮助初学者直观地理解这些函数的形状和行为。