神经网络:激活函数的介绍

神经网络的激活函数是一种非线性函数,它被应用于每个神经元的输出,以引入非线性性质到网络中。

激活函数的目的是将输入转换为输出,并且将输出限制在特定的范围内。它们非常重要,因为线性变换(例如加法和乘法)的组合只会产生与输入相同的线性关系。通过使用非线性的激活函数,神经网络能够学习和表示更复杂的函数关系。

常用的激活函数包括:

  1. Sigmoid函数:它将输入映射到0到1之间的连续输出。它在二分类问题中常用作输出层的激活函数,在隐藏层中使用会导致梯度消失的问题。

  2. tanh函数:也被称为双曲正切函数,将输入映射到-1到1之间的连续输出。与Sigmoid函数相比,它的输出范围更大,但依然存在梯度消失的问题。

  3. ReLU函数:也被称为修正线性单元函数,它将负输入映射为0,并保持正输入不变。它在隐藏层中非常常用,因为它能够处理梯度消失问题,并加速网络的训练速度。

  4. Leaky ReLU函数:是ReLU函数的一种改进形式,解决了ReLU函数在负数部分出现的"死神经元"问题。它在负输入时引入一个小的负斜率,以便保持负数部分的信息流动。

  5. Softmax函数:通常用于多分类问题的输出层。它将输入向量归一化为概率分布,使得所有输出值的总和为1。

这些是神经网络中常见的激活函数,选择合适的激活函数取决于问题的特点和网络的架构。

以下是使用Python绘制这几种函数的曲线的示例代码:

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

# Sigmoid函数
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# tanh函数
def tanh(x):
    return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))

# ReLU函数
def relu(x):
    return np.maximum(0, x)

# Leaky ReLU函数
def leaky_relu(x, alpha=0.01):
    return np.maximum(alpha * x, x)

# Softmax函数
def softmax(x):
    exps = np.exp(x)
    return exps / np.sum(exps)

x = np.linspace(-10, 10, 100)

# 绘制Sigmoid函数曲线
plt.plot(x, sigmoid(x), label='Sigmoid')

# 绘制tanh函数曲线
plt.plot(x, tanh(x), label='tanh')

# 绘制ReLU函数曲线
plt.plot(x, relu(x), label='ReLU')

# 绘制Leaky ReLU函数曲线
plt.plot(x, leaky_relu(x), label='Leaky ReLU')

# 绘制Softmax函数曲线
plt.plot(x, softmax(x), label='Softmax')

plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.title('Activation Functions')
plt.grid()
plt.show()
`
  1. Sigmoid函数的曲线特点是在输入接近正无穷大和负无穷小的时候,输出接近于1和0。它的输出范围是0到1之间,且曲线在中心点处斜率最大。

  2. tanh函数的曲线特点是在输入接近正无穷大和负无穷小的时候,输出接近于1和-1。与Sigmoid函数相比,它的输出范围更大,且曲线在中心点处斜率最大。

  3. ReLU函数的曲线特点是在输入小于零时输出为0,大于零时输出等于输入。它的图像为一条直线段,没有平滑的转折点,且在中心点处斜率始终为1。

  4. Leaky ReLU函数的曲线特点与ReLU函数类似,但在负输入时引入了一个小的负斜率。这个负斜率可以防止负数部分的输出完全消失,增加了模型的稳定性。

  5. Softmax函数的曲线特点是将输入向量归一化为概率分布。它的输出是一个概率分布,且所有输出值的总和为1。该函数适用于多分类问题,并且在输出层使用时可以将每个类别的输出解释为概率。

相关推荐
星空的资源小屋7 小时前
Tuesday JS,一款可视化小说编辑器
运维·网络·人工智能·编辑器·电脑·excel
飞飞是甜咖啡7 小时前
【文献阅读】Deep-learning-aided dismantling of interdependent networks
人工智能·复杂网络
咕咚-萌西8 小时前
Federated Learning-Empowered AI-Generated Content in Wireless Networks
人工智能
机器学习之心8 小时前
PINN物理信息神经网络股票价格预测模型Matlab实现
人工智能·pinn·物理信息神经网络
咕咚-萌西8 小时前
MLLM-LLaVA-FL: Multimodal Large Language Model Assisted FederatedLearning
人工智能·语言模型·自然语言处理
人工智能研究所8 小时前
视频与音频碰撞,谷歌 Veo 3.1,生成“有声电影”,人物对话超震撼
人工智能·文生图·谷歌·文生视频·veo3.1
DisonTangor8 小时前
PaddleOCR-VL: 通过0.9B超紧凑视觉语言模型增强多语言文档解析
人工智能·计算机视觉·语言模型·自然语言处理·开源·aigc
skywalk81638 小时前
在Ubuntu Linux安装brew 使用brew安装llama.cpp 运行文心Ernie大模型
人工智能·ubuntu·llama·ernie·brew·1024程序员节
golang学习记9 小时前
Vibe Coding不香了,试试深信服的CoStrict 严肃编程模式
人工智能
蒙奇·D·路飞-9 小时前
Grok、Claude、ChatGPT、Gemini模型适用场景比较
人工智能·chatgpt