GAN及其衍生网络中生成器和判别器常见的十大激活函数(2024最新整理)

本文详细介绍了在生成对抗网络(GAN)和相关神经网络中常用的激活函数,包括Sigmoid、Tanh、ReLU、LeakyReLU、ELU、SELU、GELU、SoftPlus、Swish和Mish。这些激活函数通过非线性映射提升网络建模能力,解决梯度消失问题,各有优缺点,适用于不同的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. Sigmoid 激活函数

2. Tanh 激活函数

3. ReLU 激活函数

4. LeakyReLU 激活函数

5. ELU 激活函数

6. SELU 激活函数

7. GELU 激活函数

8. SoftPlus 激活函数

9. Swish 激活函数

10. Mish 激活函数


激活函数(activation function)的作用是对网络提取到的特征信息进行非线性映射,提供网络非线性建模的能力。常见的激活函数有 Sigmoid、Tanh、ReLU、LeakyReLU 和 ELU 等。

1. Sigmoid 激活函数

        Sigmoid 是一种常见的非线性激活函数,输入实数值并将其压缩到 (0,1) 范围内,适用于二元分类任务。其缺点是当输入值较大和较小时,梯度会接近于0从而导致梯度消失问题,函数的输出也不是以0为中心,指数计算复杂度高也更加耗时。其计算公式如下所示:

f(x)=\sigma(x)=\frac{1}{1+e^{-x}}

        Sigmoid 激活函数 Pytorch 示例:  

import torch

# 定义输入张量
x = torch.tensor([0.5, -0.1, 2.0])

# 使用Sigmoid激活函数
output = torch.sigmoid(x)

print(output)

        Sigmoid 激活函数示意图: 

2. Tanh 激活函数

        双曲正切激活函数(hyperbolic tangent activation function, Tanh)也属于非线性激活函数,它可以将输入实数值映射到 [-1,1] 范围之间,适用于多元分类任务。输出是以零为中心,但是和sigmoid激活函数一样存在饱和问题,并仍未解决梯度消失问题。其计算公式如下所示:

f(x)=\operatorname{Tanh}(x)=\frac{1-e^{-2 x}}{1+e^{-2 x}}=\frac{e^x-e^{-x}}{e^x+e^{-x}}

        Tanh 激活函数 Pytorch 示例:   

import torch

# 定义输入张量
x = torch.tensor([0.5, -0.1, 2.0])

# 使用Tanh激活函数
output = torch.tanh(x)

print(output)

        Tanh 激活函数示意图:  

3. ReLU 激活函数

        ReLU(The Rectified Linear Unit)是一种线性激活函数,该函数公式如下所示。相较于前两种,ReLU针对随机梯度下降的收敛有巨大的加速作用,能够在 x \geq 0 时保持梯度不衰减,在一定程度上缓解了神经网络的梯度消失问题。ReLU在 x < 0 时,传递函数的梯度将都变成0,造成不可逆转的神经元“死亡”,导致了数据多样化的丢失,并且ReLU是通过简单地对一个矩阵进行阈值计算得到,减少了计算资源的消耗,计算开支较少,所以作为卷积神经网络激活函数时,需要降低学习率值。

$\begin{array}{l}f(x)=\left\{\begin{array}{ll}0 & \text { for } x<0 \\ x & \text { for } x \geq 0\end{array}\right. \\ f(x)=\operatorname{ReL} U(x)=\max (0, x)\end{array}$

        RELU 激活函数 Pytorch 示例: 


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值