神经网络中激活函数介绍、优缺点分析

本文主要介绍神经网络中的常用的激活函数

激活函数是神经网络中用于引入非线性模型,提升模型泛化能力的函数

非线性激活函数至关重要,它可以让神经网络学习复杂特征、提供模型复杂度

1、激活函数定义

激活函数是神经网络模型中的一种非线性函数,它将输入的加权和转换为输出值。激活函数通常被插入到神经元的计算中,以帮助网络模型学习非线性模式。

常见的激活函数有:

  1. Sigmoid函数(也称为逻辑函数):将输入压缩到0和1之间的连续输出。
  2. 双曲正切函数(tanh函数):将输入压缩到-1和1之间的连续输出。
  3. ReLU函数(修正线性单元):将负值置为0,保留正值。
  4. Leaky ReLU函数:与ReLU函数类似,但在负值上有一个小的斜率。
  5. Softmax函数:用于多分类问题,将一组值转换为概率分布。

选择适合的激活函数取决于具体的任务和数据集。不同的激活函数可以引入不同的非线性效果,有助于提高模型的表达能力和性能。

2、常见激活函数

这里介绍常见的激活函数

2.1 Sigmoid

Sigmoid 激活函数是一种常用于神经网络中的激活函数,它将输入值映射到一个 (0, 1) 之间的范围内。

图像如下: 输入值越接近 ∞ ,它就越接近 +1 ,同样,输入值越接近 --∞ **,**它就越接近 0 。

优点:

  • sigmoid 函数将任意输入值映射到 (0, 1) 之间,适合用来表示概率。因此,它常用于神经网络的输出层,尤其是在二分类问题中。

  • Sigmoid 函数是平滑且连续的,这意味着它在整个输入范围内都有定义和导数。这种性质使得它在优化过程中很容易计算梯度。

缺点 :容易造成梯度消失

sigmoid 函数的导数如下

图像:

从图中可以看出,梯度值在一定范围(-5.0 到 5.0)之间显着,并且随着进一步增大,图形变得更加平坦。

这表明对于 > 5 或 < -5 的值,该函数将具有较小梯度并最终接近零。这就是神经网络停止学习的地方,因此得名梯度消失。

2.2 Tanh

sigmoid 函数和 Tanh(双曲正切)函数的区别在于后者将输入值映射到 -1 和 1 之间的范围内

图像如下:

优点:

  • Tanh 函数将输入值映射到 (-1, 1) 之间。这与 Sigmoid 函数的 (0, 1) 范围不同,有助于减少网络的偏置效应。

  • 它通常用在神经网络的隐藏层中,因为它的值在 -1 到 1 的范围内,因此数据的平均值接近 0。这有助于使数据居中并使下一层的学习更容易。

缺点:容易造成梯度消失

tanh 函数的导数如下:

图像:

与 sigmoid 函数类似,Tanh 函数也面临着梯度消失的问题。

2.3 ReLU

ReLU 激活函数是现代深度学习中最常用的激活函数之一。

图像:

优点:

  • ReLU 函数的计算非常简单,只需要比较输入值和 0 的大小,计算复杂度低,适合大规模神经网络的训练。

  • ReLU 在正半轴上的梯度恒为 1,避免了梯度消失问题,有助于深层网络的有效训练。这使得它比 Sigmoid 和 Tanh 函数更适合用于深层神经网络。

  • 由于 ReLU 会将负值部分截断为 0,导致很多神经元在给定的输入下不被激活。这种稀疏性有助于减少模型的复杂度和过拟合风险。

缺点:影响网络拟合

ReLU 函数的导数如下:

图像:

如图,负数侧使梯度值为 0。

因此,某些神经元的权重和偏差在反向传播过程中不会更新。这会导致永远不会被激活的"死亡神经元"。

所有负输入值立即变为 0,这会影响网络拟合和训练数据的能力。

2.4 Leaky ReLU

Leaky ReLU 激活函数是 ReLU 函数的一个变体,用于解决 ReLU 函数的 "Dying ReLU" (死亡神经元)问题。

Leaky ReLU 在负半轴上引入了一个小的斜率,以确保神经元在接收到负输入时仍然有非零输出。

图像如下:

注意:这里的0.1可以是任何值α,被称为参数化 ReLU

参数化 ReLU(PReLU)是一种改进的 ReLU 激活函数,通过引入可学习的参数来调整负半轴的斜率,从而增强模型的表达能力。

它解决了图左半部分梯度减小到 0 的挑战。该函数在函数的负输入上添加斜率,即参数α 。参数 ReLU 中的反向传播涉及找出最合适的 α 值。

缺点:PReLU 为每个神经元引入一个额外的参数 α,这会增加模型的参数数量,特别是在大型神经网络中,可能导致模型过拟合的风险增加。如果训练数据不足,过多的参数可能会降低模型的泛化能力。

2.5 ELU

该激活函数也是 ReLU 激活函数的变体,其主要目标是修改函数负部分的斜率。

与 Leaky ReLU 和 参数化 ReLU 不同,ELU 使用对数曲线来转换负值。

图像如下:

优点:

  • ELU 逐渐平滑,直到输出为 -α ,而 ReLU 则很尖锐。

  • 通过引入负值的对数曲线来消除死亡 ReLU 问题,从而帮助神经网络将权重和偏差引导到正确的路径上。

缺点:

  • 相比于 ReLU 和 Leaky ReLU 等简单激活函数,ELU 需要计算指数函数,这增加了计算复杂度和计算时间,特别是在深层网络和大规模数据集上。
相关推荐
冬奇Lab1 分钟前
一天一个开源项目(第252篇):Lightpanda —— 用 Zig 从零写的 AI 专用无头浏览器,内存省 16 倍、速度快 9 倍
人工智能·开源·资讯
在努力的前端小白28 分钟前
基于FastAPI+LangChain+LangGraph+Agent+多模态的AI Agent 有渔渔具网站
人工智能·langchain·vue·fastapi
锋行天下1 小时前
Langgraph-cli 本地构建失败,改用服务器docker构建的流程
人工智能·前端框架·全栈
释厄6231 小时前
群体投票双通道狭隘论——AI泡沫出清后的主角确权
人工智能
IT古董1 小时前
《Agent开发工程师成长指南》- 第4章 第2节:Prompt设计五要素——任务、角色、上下文、约束与输出格式
大数据·人工智能·prompt
霸道流氓气质1 小时前
AI 流式对话与实时聊天平台:SSE 解码竞态、有状态会话隔离与背压取消的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
孟健2 小时前
我把9个AI助理迁到了Grok Bot,连远程服务器都省了
人工智能·aigc·ai编程
AI+程序员在路上2 小时前
RV1126B 上支持的模型及全流程应用--从CNN及语音到 LLMVLM 与跨平台选型
linux·c语言·人工智能
AI备案指南-满满2 小时前
算法备案审核不通过,一般是什么原因?
java·人工智能·算法·大模型备案·算法备案·大模型登记
这个DBA有点耶2 小时前
连拿六年第一后宣布出海:国产数据库凭什么敢撕掉“平替”的标签?
数据库·人工智能·架构