激活函数(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]的区间,具有对称性和零中心化的特点。

公式
相关推荐
Chef_Chen41 分钟前
从0开始学习机器学习--Day13--神经网络如何处理复杂非线性函数
神经网络·学习·机器学习
Chef_Chen3 小时前
从0开始机器学习--Day17--神经网络反向传播作业
python·神经网络·机器学习
羊小猪~~5 小时前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
985小水博一枚呀10 小时前
【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer
985小水博一枚呀10 小时前
【深度学习滑坡制图|论文解读2】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer·迁移学习
数据与后端架构提升之路10 小时前
从神经元到神经网络:深度学习的进化之旅
人工智能·神经网络·学习
孙同学要努力19 小时前
全连接神经网络案例——手写数字识别
人工智能·深度学习·神经网络
小言从不摸鱼1 天前
【NLP自然语言处理】深入解析Encoder与Decoder模块:结构、作用与深度学习应用
人工智能·深度学习·神经网络·机器学习·自然语言处理·transformer·1024程序员节
羊小猪~~1 天前
神经网络基础--什么是神经网络?? 常用激活函数是什么???
人工智能·vscode·深度学习·神经网络·机器学习
_清豆°1 天前
机器学习(四)——神经网络(神经元、感知机、BP神经网络、梯度下降、多层神经网络、Python源码)
python·神经网络·机器学习·感知机·梯度下降·神经元·多层神经网络