pytorch机器学习各种激活函数总结(不完整学习更新中~)

pytorch各种激活函数总结

  • 0.思维导图预览
  • 1. ReLU函数
  • 2. Sigmoid函数
  • 3. Softmax函数
  • 4. Tanh函数
  • 5.(学习后更新)

0.思维导图预览

pytorch机器学习各种激活函数总结(不完整学习更新中~)_第1张图片

1. ReLU函数

ReLU(Rectified Linear Unit)线性整流函数
其公式为:
f ( x ) = M a x ( 0 , x ) f(x)=Max(0,x) f(x)=Max(0,x)
它将小于零的输入映射为0,而将大于等于零的输入保持不变。在PyTorch中,可以使用torch.nn.ReLU类来表示。
ReLU函数求导简单方便;但是当反向传播过程中,权值更新小于0时,导致该处的导数始终为0,无法更新权值,会进入失活状态。
pytorch机器学习各种激活函数总结(不完整学习更新中~)_第2张图片
AlexNet就用的是ReLU函数
pytorch机器学习各种激活函数总结(不完整学习更新中~)_第3张图片

2. Sigmoid函数

Sigmoid函数将输入值压缩到0和1之间,在PyTorch中,可以使用torch.nn.Sigmoid类来表示。
其公式为:
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+\mathcal{e}^{-x}} f(x)=1+ex1
Sigmoid函数的优点是输出范围在(0, 1)之间,可以将输入映射到概率形式或者用于二分类问题中。
缺点是激活函数饱和时,梯度非常小,网络层数较深时容易出现梯度消失。
pytorch机器学习各种激活函数总结(不完整学习更新中~)_第4张图片

3. Softmax函数

Softmax函数将输入值转换为概率分布,用于多分类问题。在PyTorch中,可以使用torch.nn.Softmax类来表示。Softmax函数将原始的实数向量转换为表示概率分布的向量,使每个元素的取值范围≥0,并且所有元素的和等于1。
其公式为:

对于输入向量 z = ( z 1 , z 2 , … , z k − 1 ) \mathbf{z} = (z_1, z_2, \ldots, z_{k-1}) z=(z1,z2,,zk1),Softmax函数对应的输出向量 y = ( y 1 , y 2 , … , y n ) \mathbf{y} = (y_1, y_2, \ldots, y_n) y=(y1,y2,,yn) 的计算公式为:

y i = e z i ∑ j = 0 k − 1 e z j y_i = \frac{e^{z_i}}{\sum_{j=0}^{k-1} e^{z_j}} yi=j=0k1ezjezi

其中, e e e 是自然对数的底。 y i y_i yi 表示输入向量 z \mathbf{z} z 属于类别 i i i 的概率。

pytorch机器学习各种激活函数总结(不完整学习更新中~)_第5张图片

4. Tanh函数

Tanh函数将输入值压缩到(-1,1)之间,它在中间层中能够产生非线性的激活输出,并且保留了负数的信息,经常被用于数据归一化的过程,将数据标准化到一个更小的范围,使得数据更易处理和比较。
Sigmoid函数是压缩到(0,1)之间。
在PyTorch中,可以使用torch.nn.Tanh类来表示。
其公式为:
f ( x ) = e x − e − x e x + e − x f(x)=\frac{\mathcal{e}^{x}-\mathcal{e}^{-x}}{\mathcal{e}^{x}+\mathcal{e}^{-x}} f(x)=ex+exexex
pytorch机器学习各种激活函数总结(不完整学习更新中~)_第6张图片

5.(学习后更新)

你可能感兴趣的:(机器学习,pytorch,学习)