一些常用的激活函数及绘图

深度网络的一些常用激活函数,并通过matplot绘制出来:

python 复制代码
import matplotlib.pyplot as plt
import numpy as np


def relu(x):
    return np.maximum(0, x)


def leaky_relu(x, alpha=0.01):
    return np.where(x > 0, x, alpha * x)


def gelu(x):
    return 0.5 * x * (1 + np.tanh(np.sqrt(2 / np.pi) * (x + 0.044715 * x ** 3)))


def swish(x):
    return x / (1 + np.exp(-x))


def sigmoid(x):
    return 1 / (1 + np.exp(-x))


def sigmoid_diff(x):
    return np.exp(-x) / ((1 + np.exp(-x)) ** 2)


def plot_func():
    x = np.linspace(-10, 10, 500)

    plt.figure(figsize=(6, 4))
    plt.plot(x, gelu(x), label='gelu')
    plt.plot(x, relu(x), label='relu')
    plt.plot(x, leaky_relu(x), label='leaky_relu', linestyle='--')

    plt.plot(x, sigmoid(x), label='sigmoid')
    plt.plot(x, swish(x), label='swish')
    plt.plot(x, sigmoid_diff(x), label='sigmoid_diff')

    plt.plot(x, np.tanh(x), label='tanh', linestyle='--')
    plt.axhline(0, color='k', linewidth=0.5)
    plt.axvline(0, color='k', linewidth=0.5)
    plt.title('all trigger functions')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.grid(True)
    plt.legend()
    plt.show()


plot_func()

sigmoid和tanh的缺点是梯度饱和(梯度易消失)。relu则改进了这一点(正半区梯度为1),且很容易计算。leaky_relu和gelu则解决了relu负半区梯度消失的问题,它俩在负半区仍有微小梯度,确保训练可进行下去。gelu还解决了relu函数在原点处的硬转折,使得梯度更平滑,避免震荡,训练更稳定。

相关推荐
狮子座明仔19 小时前
阶跃星辰重磅发布:32B参数模型如何实现“深度研究“自动化?
人工智能·深度学习·自动化
Yan-英杰20 小时前
2025 AI数据准备:EasyLink让多模态非结构化数据处理变简单
人工智能·深度学习·神经网络·机器学习·ai·大模型
棒棒的皮皮21 小时前
【深度学习】YOLO-Python基础认知与算法演进
python·深度学习·yolo·计算机视觉
人工智能培训1 天前
10分钟了解向量数据库(1)
人工智能·深度学习·算法·机器学习·大模型·智能体搭建
老鱼说AI1 天前
万字长文警告!一次性搞定GAN(生成对抗网络):从浅入深原理级精析 + PyTorch代码逐行讲解实现
人工智能·深度学习·神经网络·生成对抗网络·计算机视觉·ai作画·超分辨率重建
START_GAME1 天前
深度学习环境配置:PyTorch、CUDA和Python版本选择
人工智能·pytorch·深度学习
盼小辉丶1 天前
PyTorch生成式人工智能(30)——扩散模型(Diffusion Model)
pytorch·深度学习·生成模型·扩散模型
Chlittle_rabbit1 天前
50系显卡在Ubuntu22.04环境下安装nvidia驱动+CUDA+cuDNN,anaconda下配置pytorch环境一站式解决方案(2025年7月版本)已完结!!!
linux·人工智能·pytorch·深度学习·ubuntu
哥布林学者1 天前
吴恩达深度学习课程五:自然语言处理 第一周:循环神经网络 (一)序列数据与序列模型
深度学习·ai
不错就是对1 天前
【agent-lightning】 - 2_使用 Agent-lightning 训练第一个智能体
人工智能·深度学习·神经网络·自然语言处理·chatgpt·transformer·vllm