神经网络为什么要用 ReLU 增加非线性?

embedded/2025/3/10 20:06:18/

神经网络中使用 ReLU(Rectified Linear Unit) 作为激活函数的主要目的是引入非线性,这是神经网络能够学习复杂模式和解决非线性问题的关键。


1. 为什么需要非线性?

1.1 线性模型的局限性

如果神经网络只使用线性激活函数(如 f(x)=x),那么无论网络有多少层,整个模型仍然是一个线性模型。这是因为多个线性变换的组合仍然是线性变换:

f(f(f(x)))=W_{3}(W_{2}(W_{1}x+b_{1})+b_{2}) + b_{3}={W}'x+{b}'

这样的模型无法学习复杂的非线性关系,表达能力非常有限。

1.2 非线性激活函数的作用

非线性激活函数(如 ReLU、Sigmoid、Tanh)能够打破线性关系,使神经网络能够学习复杂的非线性模式。通过堆叠多个非线性层,神经网络可以逼近任意复杂的函数。


2. ReLU 的定义

ReLU 的定义非常简单:

ReLU(x)=max(0,x)

  • 当输入 x>0 时,输出 x。

  • 当输入 x≤0 时,输出 0。


3. ReLU 的优势

3.1 缓解梯度消失问题

  • 在 Sigmoid 或 Tanh 激活函数中,当输入值较大或较小时,梯度会趋近于零,导致梯度消失问题。

  • ReLU 的梯度在正区间恒为 1,避免了梯度消失问题,使得深层网络的训练更加稳定。

3.2 计算高效

  • ReLU 的计算非常简单,只需要比较和取最大值操作,计算速度远快于 Sigmoid 和 Tanh。

  • 在训练大规模神经网络时,ReLU 的高效计算能够显著加快训练速度。

3.3 稀疏激活

  • ReLU 会将负值输出为零,这使得神经网络的激活变得稀疏。

  • 稀疏激活可以减少参数之间的依赖性,提高模型的泛化能力。


4. ReLU 的变体

尽管 ReLU 有很多优点,但它也存在一些问题(如神经元“死亡”问题)。因此,研究者提出了多种 ReLU 的变体:

4.1 Leaky ReLU

在负区间引入一个小的斜率,避免神经元“死亡”:

Leaky ReLU(x)=\begin{cases} x& \text{ if } x> 0 \\ ax& \text{ if } x\leq 0 \end{cases}

其中 α 是一个小的正数(如 0.01)。

4.2 Parametric ReLU (PReLU)

将 Leaky ReLU 的斜率 α 作为可学习参数,动态调整负区间的输出。

4.3 Exponential Linear Unit (ELU)

在负区间引入指数函数,平滑过渡:

ELU(x)=\begin{cases} x & \text{ if } x> 0 \\ a(e^{x}-1) & \text{ if } x\leq 0 \end{cases}


5. ReLU 的代码实现

以下是 ReLU 及其变体的 PyTorch 展示:

import torch
import torch.nn as nn# 标准 ReLU
relu = nn.ReLU()
x = torch.tensor([-1.0, 2.0, -3.0, 4.0])
print(relu(x))  # 输出: tensor([0., 2., 0., 4.])# Leaky ReLU
leaky_relu = nn.LeakyReLU(negative_slope=0.01)
print(leaky_relu(x))  # 输出: tensor([-0.0100,  2.0000, -0.0300,  4.0000])# ELU
elu = nn.ELU(alpha=1.0)
print(elu(x))  # 输出: tensor([-0.6321,  2.0000, -0.9502,  4.0000])


http://www.ppmy.cn/embedded/171566.html

相关文章

Linux网络编程——TCP并行服务器

在 Linux 网络编程中,通过不同的技术来实现一个 TCP 并行服务器,能够有效地处理多个客户端连接。我们可以使用 多线程、多进程进程池 和 I/O 多路复用(如 select、poll 或 epoll)来提高服务器的性能。以下是分步实现的代码示例&am…

TP-LINK图像处理工程师(深圳)内推

1. 计算机、模式识别、信号处理、应用数学类专业。 2.熟悉色域空间转换,亮度、噪声,对比度等基础图像处理知识。 3.有图像处理相关项目开发经验者优先(如降噪、AE、AWB等);熟悉3DNR、编码相关知识者优先。 【专属内推码…

CarPlanner:用于自动驾驶大规模强化学习的一致性自回归轨迹规划

25年2月来自浙大和菜鸟网络的论文“CarPlanner: Consistent Auto-regressive Trajectory Planning for Large-scale Reinforcement Learning in Autonomous Driving”。 轨迹规划对于自动驾驶至关重要,可确保在复杂环境中安全高效地导航。虽然最近基于学习的方法&a…

【LangChain】理论及应用实战(1)

文章目录 背景知识一、模型 I/O二、prompt模板2.1 字符串模版:PromptTemplate2.2 对话模版:ChatPromptTemplate2.3 自定义模板2.4 组合模板2.5 序列化模板 三、示例选择器四、langchain核心组件:LLMs & Chat Models4.1 LLMs4.2 Chat Mode…

TCP三次握手,四次挥手;多进程、多线程实现并发服务器

三次握手,四次挥手 三次握手示意图: SYN、ACK是TCP协议头里面的标志位 同步 SYN:仅在三次握手建立 TCP 连接时有效。当 SYN 1 而 ACK 0 时,表明这是一个连接请求报文段,对方若同意建立连接,则应在相应的…

利用MQ自动取消未支付超时订单最佳实践

一、利用MQ自动取消未支付超时订单最佳实践 1、基于 RocketMQ 延迟消息 1.1:延迟消息 当消息写入到 Broker 后,不会立刻被消费者消费,需要等待指定的时长后才可被消费处理的消息,称为延时消息。 1.2:实现流程 &am…

揭开AI-OPS 的神秘面纱 第五讲 AI 模型服务层(开源方向)

之前的分析确实侧重于通用的模型服务框架和平台,而忽略了对开源模型本身的讨论,以及模型加速和基于开源模型的微调与部署等关键问题。 下面将针对 – 对 AI 模型服务层的分析 开源模型方向 进行讨论。 其实 在AI - OPS 中 模型不是都以最终自己的数据训练成垂直领域的模型为…

【玩转正则表达式】正则表达式常用语法汇总

1. 基本字符 普通字符:匹配自身。例如,正则表达式hello匹配字符串中的“hello”。\d:匹配任何数字字符,相当于[0-9]。例如,\d\d\d匹配三个连续的数字。 示例:123、456 \w:匹配任何字母数字字符…