激活函数

Activation Function
激活函数是用于人工神经网络中的一种函数,它决定了神经元的输出是否应该被激活,从而引入非线性因素,使神经网络能够学习和表示复杂的数据模式。

决定了神经元输出,给网络引入非线性能力
如果没有激活函数,深度网络只相当于线性变换堆叠,无法拟合复杂模式。

激活函数的主要作用是引入非线性,使得神经网络能够处理非线性问题。没有激活函数,神经网络只是线性模型的叠加,无法解决复杂的任务。激活函数使得神经网络能够逼近任何复杂的函数,从而在图像识别、自然语言处理等任务中取得优异的表现。

Sigmoid

数学表达式:

σ(x)=11+ex(0,1)σ(x)=σ(x)(1σ(x))

早期神经网络(比如最早的多层感知机 MLP)
输出概率(如二分类模型最后一层)

缺点

Tanh 双曲正切

tanh(x)=exexex+ex(1,1)tanh(x)=1tanh2(x)

将输入值压缩到-1到1之间
Sigmoid和Tanh函数用于控制记忆单元的输入、输出和遗忘门,使模型能够捕捉长序列依赖关系。

同样存在梯度消失问题。

ReLU

Rectified Linear Unit

ReLU(x)=max(0,x)ReLU(x)={1,x>00,x0

对于输入值为负时输出为0,正值时输出为该值本身。

缺点:死神经(Dead Neuron)问题:输入小于0时梯度为0,永远不会更新。

Leaky ReLU

{xif x0αxif x<0