激活函数(Activation Function)

什么是激活函数?

激活函数是一种用于神经网络和机器学习模型中的非线性函数。它被应用于神经元的输出,以引入非线性性质和复杂性。激活函数可以帮助模型学习非线性关系,并提高模型的表达能力。在神经网络的每一层都使用激活函数,将输入信号转换为输出信号。

为什么要引入激活函数?

神经元引入激活函数是为了给神经网络模型引入非线性的能力。激活函数在神经网络中起到对输入信号进行非线性变换的作用,使得神经网络能够学习并表示复杂的非线性关系。

如果神经网络的激活函数是线性的,那么无论有多少层的神经网络,其整体仍然是一个线性变换,无法表达复杂的非线性模式。通过引入非线性的激活函数,例如ReLU、sigmoid、tanh等,神经网络可以将输入信号进行非线性映射,从而能够更好地拟合不同类型的数据。

此外,激活函数还具有一些其他重要的性质,如梯度的可求性、保证输出值在一定范围内等,这些性质对于优化神经网络的训练过程和模型的稳定性也非常重要。

有哪些激活函数?

常见的激活函数包括Sigmoid函数、ReLU函数、Leaky ReLU函数、Tanh函数等。每种激活函数都有其特定的数学形式和性质,以及适用的场景。选择合适的激活函数可以影响到模型的性能和学习能力。

激活函数特性详解:

sigmoid函数

特征:

sigmoid函数的特征是将输入值映射到一个在0和1之间的输出值的非线性函数。它具有以下特点:

  • 可将输入值映射到0和1之间的概率值,适用于二分类问题。
  • 输出值在输入接近正负无穷时,分别趋近于1和0,具有边界效应。
  • 可用于神经网络中作为激活函数,将线性变换后的输出转换成非线性表示。
  • 平滑连续的曲线,梯度在0附近最大,方便梯度下降算法进行优化。
  • 这些特征使得sigmoid函数在机器学习中得到了广泛应用。
公式:
导数公式:

ReLU函数

ReLU函数是一种常用的激活函数,它的全称是Rectified Linear Unit。ReLU函数的特征包括以下几点:

  • 简单非线性:ReLU函数是一种非线性的激活函数,它没有复杂的数学运算,只需比较输入值并取最大值即可。
  • 去线性化能力:ReLU函数能够将线性输入映射为非线性输出,这对于神经网络的表达能力非常重要。
  • 解决梯度消失问题:ReLU函数一定程度上缓解了传统的Sigmoid和Tanh激活函数在反向传播时的梯度消失问题,使得深层神经网络的训练更加稳定。
  • 稀疏激活性:由于ReLU函数在负值区域输出为零,因此它能够激活相对较少的神经元,从而增强网络的稀疏性,减少参数数量,降低过拟合的风险。

需要注意的是,ReLU函数在负值区域的导数为零,这可能导致梯度消失。因此,在实际应用中,可以采用Leaky ReLU、PReLU等变种来解决这个问题。

公式

Tanh函数

Tanh函数是一种双曲正切函数,它具有以下特征:

  • 取值范围:tanh函数的取值范围在[-1, 1]之间。当输入极限趋近于负无穷大时,函数值趋近于-1;当输入为0时,函数值为0;当输入极限趋近于正无穷大时,函数值趋近于1。
  • 零中心化:tanh函数以0为中心,即当输入为0时,函数值为0。这使得tanh函数在一些机器学习算法中更受欢迎,因为零中心化可以简化计算和优化模型。
  • S型曲线:tanh函数的图像呈现出S形曲线,类似于sigmoid函数。这种曲线的特点是在接近两个极值时,函数值变化较快,而在接近中间值时,变化较慢。
  • 饱和性:在取值范围的两个极值处(-1和1),tanh函数的导数接近于0。这意味着当输入较大或较小时,函数的梯度会变得非常小,可能导致梯度消失问题。

总的来说,tanh函数在深度学习和神经网络中经常用作激活函数,它可以将输入的数据映射到一个[-1, 1]的区间,具有对称性和零中心化的特点。

公式
相关推荐
红衣小蛇妖8 小时前
神经网络-Day44
人工智能·深度学习·神经网络
Lilith的AI学习日记11 小时前
什么是预训练?深入解读大模型AI的“高考集训”
开发语言·人工智能·深度学习·神经网络·机器学习·ai编程
聚客AI12 小时前
PyTorch玩转CNN:卷积操作可视化+五大经典网络复现+分类项目
人工智能·pytorch·神经网络
Q同学12 小时前
TORL:工具集成强化学习,让大语言模型学会用代码解题
深度学习·神经网络·llm
Q同学1 天前
Qwen3开源最新Embedding模型
深度学习·神经网络·llm
红衣小蛇妖1 天前
神经网络-Day46
人工智能·深度学习·神经网络
Blossom.1182 天前
使用Python和OpenCV实现图像识别与目标检测
人工智能·python·神经网络·opencv·安全·目标检测·机器学习
蹦蹦跳跳真可爱5892 天前
Python----目标检测(《YOLOv3:AnIncrementalImprovement》和YOLO-V3的原理与网络结构)
人工智能·python·深度学习·神经网络·yolo·目标检测·目标跟踪
程序员老周6662 天前
4.大语言模型预备数学知识
人工智能·神经网络·线性代数·自然语言处理·大语言模型·概率论·数学基础
Coovally AI模型快速验证2 天前
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
人工智能·神经网络·yolo·目标检测·无人机·cocos2d