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

发布时间:2023年12月30日

0.思维导图预览

在这里插入图片描述

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,无法更新权值,会进入失活状态。
在这里插入图片描述
AlexNet就用的是ReLU函数
在这里插入图片描述

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+e?x1?
Sigmoid函数的优点是输出范围在(0, 1)之间,可以将输入映射到概率形式或者用于二分类问题中。
缺点是激活函数饱和时,梯度非常小,网络层数较深时容易出现梯度消失。
在这里插入图片描述

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?,,zk?1?),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=0k?1?ezj?ezi??

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

在这里插入图片描述

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+e?xex?e?x?
在这里插入图片描述

5.(学习后更新)

文章来源:https://blog.csdn.net/qq_50771882/article/details/135247148
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。