首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏AI科技时讯

    Swish和H-Swish激活函数:提升模型训练效率

    Swish函数在反向传播中的作用: 在反向传播过程中,Swish函数的导数 \frac{\partial \text{Swish}(x)}{\partial x} 为 \text{Swish}( unsetunsetH-Swish激活函数unsetunset Hard SwishSwish的一个变体,它被开发出来以简化公式的计算。 H-Swish相对于原始Swish的优势主要包括: 计算效率:H-Swish使用分段线性函数替换了Sigmoid函数,这使得计算变得更加简单,降低了计算成本。 (x, y_hard_swish, label='hard-swish', lw=3, color='#afb723') ax.legend() 这段代码定义了Swish、H-Swish、ReLU6函数 此外,Swish函数的简单性和高效性也使其在实际应用中得到了广泛的应用。 H-Swish激活函数则是在Swish的基础上进一步优化的结果。

    3.1K10编辑于 2024-04-30
  • 【笔记】激活函数SiLU和Swish

    激活函数 SiLU 和 Swish 都是 深度学习 中用于神经网络中的非线性激活函数,旨在增强模型的表达能力和训练性能。 Swish 与 SiLU 完全相同,表达式一样,只是在不同文献中用不同的名字。 Swish 的定义也是:Swish(x)=x⋅σ(x)因此,SiLU 和 Swish 实际上是同一个激活函数,不同的名称反映了不同的背景和应用场景。2. SiLU / Swish 函数的数学表达式SiLU 或 Swish 激活函数的形式可以写成:Swish(x)=x⋅σ(x)=x1+e−x这里的 Sigmoid 函数 σ(x) 使得 SiLU 函数具有非线性特性 SiLU / Swish 在深度学习中的应用图像分类:SiLU / Swish 激活函数被广泛应用于图像分类任务,尤其是在像 ResNet、DenseNet 这样的网络结构中,可以提高训练的稳定性。

    1.9K10编辑于 2025-07-27
  • 来自专栏CVer

    CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

    ReLU是最常见的激活函数,最近NAS搜到的Swish在各种SOTA网络结构中逐渐取代ReLU。有趣的是,我们发现虽然两者形式看起来很不一样,但Swish可以解释为ReLU的一种平滑近似。 ReLU和Swish的关系 前面提到,NAS在现代激活函数方面取得了成功,NAS搜索到的Swish已经在EfficientNet等许多SOTA模型中已经成为默认配置,但如何解释Swish背后的原理呢? 又恰好是 Swish 的表达式。于是,我们可以把 Swish 解释为 ReLU 的这样一种平滑近似。 二、ReLU的一般式和Swish的一般式的关系 前面给出了一种新的视角解释了 ReLU 和 Swish 的关系,下面本文对 ReLU 的一般式 Maxout 做出同样的平滑近似,便得到了一簇新的激活函数 然而,从实验结果来看,在 Swish 的原始文章中也提到, ? 作用不大,即使 ? 固定为1(Swish-1),也能取得差别不大的性能。 这与我们前面对 ?

    1.1K20发布于 2021-04-23
  • 深度学习中的激活函数进化史:从Sigmoid到Swish及其数学根基

    数学上可近似为: Swish:自适应门控机制 谷歌大脑团队提出的Swish函数: ( 可学习参数) 当 时退化为线性函数, 时接近ReLU。 ,2024年后出现的动态参数化激活函数(如可学习β的Swish)在参数效率上比静态函数提升达40%。 Swish:神经搜索的结晶 2017年Google Brain通过自动搜索发现的Swish函数,展现了令人惊艳的性能: 其中σ为Sigmoid函数,β可学习或固定(通常 )。 Swish具有三个关键特性: 1. 非单调性:负区间存在局部极小值 2. 平滑梯度:处处可导且导数连续 3. 避免了传统TAFs(如PReLU、Swish)表达能力受限的问题 3.

    73610编辑于 2025-08-27
  • 来自专栏NLP/KG

    深度学习基础入门篇:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish

    深度学习基础入门篇四:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等 1.激活函数 激活函数是人工神经网络的一个极其重要的特征; 激活函数决定一个神经元是否应该被激活 3.2 swish 函数定义: $f(x)=x\cdot\sigma(x)$ 其中,σ是 sigmoid函数。 时,不存在梯度消失的情况;当 x<0时,神经元也不会像 ReLU 一样出现死亡的情况; * swish处处可导,连续光滑; * swish并非一个单调的函数; * 提升了模型的性能; 缺点: * 计算量大 hard swish减少了计算量,具有和 swish同样的性质。 缺点: 与 relu6相比 hard swish的计算量仍然较大。 4.激活函数的选择 浅层网络在分类器时,sigmoid函数及其组合通常效果更好。

    32.3K84编辑于 2023-04-12
  • 来自专栏机器之心

    谷歌大脑提出新型激活函数Swish惹争议:可直接替换并优于ReLU?(附机器之心测试)

    Swish 的简洁性及其与 ReLU 的相似性使从业者可以在神经网络中使用 Swish 单元替换 ReLU。 2 Swish 我们提出一个新的激活函数 Swish: ? 图 1 展示的是 Swish 函数的图像: ? 图 1:Swish 激活函数 和 ReLU 一样,Swish 无上界有下界。与 ReLU 不同的是,Swish 是平滑且非单调的函数。 事实上,Swish 的非单调特性把它与大多数常见的激活函数区别开来。Swish 的导数是 ? Swish 的一阶导和二阶导如图 2 所示。输入低于 1.25 时,导数小于 1。 Swish 具备无上界有下界、平滑、非单调的特性,这些都在 Swish 和类似激活函数的性能中发挥有利影响。 我们期待当模型和超参数都专为 Swish 设计的时候,Swish 还能取得进一步的提升。

    2.3K60发布于 2018-05-10
  • 来自专栏DeepHub IMBA

    为什么所有主流LLM都使用SwiGLU?

    Swish比ReLU更好吗? Swish 被发现比 ReLU 效果更好,但就像深度学习中的许多事情一样我们并不确切知道为什么 Swish 效果更好,不过倒是可以总结出以下的区别: 没有硬梯度截断 看上面的图,主要区别就是它们如何处理负输入 Swish 在任何地方都是无限可微的,这意味着梯度景观是平滑的。这种平滑性是否有助于 Swish 的性能还不是100%清楚但它可能有助于优化 什么是门控线性单元(GLU)? 现在我们有了所有的组成部分,SwiGLU(Swish门控线性单元)简单地结合了Swish和GLU: 它不是像GLU那样使用sigmoid作为门,而是使用SwishSwish对于正输入不会饱和,它近似线性增长(就像 ReLU)。

    45110编辑于 2026-01-22
  • 来自专栏NLP/KG

    A.深度学习基础入门篇:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish

    3.2 swish 函数定义: f(x)=x\cdot\sigma(x) 其中,σ是 sigmoid函数。 ;当 x<0时,神经元也不会像 ReLU 一样出现死亡的情况; swish处处可导,连续光滑; swish并非一个单调的函数; 提升了模型的性能; 缺点: 计算量大; 3.3 hswish 函数定义: f\left(x\right)=x\frac{\mathrm{Re}L U6\left(x+3\right)}{6}\quad 优点: 与 swish相比 hard swish 减少了计算量,具有和 swish同样的性质。 缺点: 与 relu6相比 hard swish的计算量仍然较大。 4.激活函数的选择 浅层网络在分类器时,sigmoid函数及其组合通常效果更好。

    2K20编辑于 2023-04-17
  • 来自专栏DeepHub IMBA

    为什么大型语言模型都在使用 SwiGLU 作为激活函数?

    SwiGLU其实是2020年谷歌提出的激活函数,它结合了SWISH和GLU两者的特点。 我们一个一个来介绍: Swish Swish是一个非线性激活函数,定义如下: Swish(x) = x*sigmoid(ßx) 其中,ß 为可学习参数。 Swish可以比ReLU激活函数更好,因为它在0附近提供了更平滑的转换,这可以带来更好的优化。 它是一个GLU,但不是将sigmoid作为激活函数,而是使用ß=1的swish,因此我们最终得到以下公式: SwiGLU(x) = Swish(W1x+b)⊗(Vx+c) 我们用SwiGLU函数构造一个前馈网络 FFNSwiGLU(x) = (Swish1(xW)⊗xV)W2 Pytorch的简单实现 如果上面的数学原理看着比较麻烦枯燥难懂,我们下面直接使用代码解释。

    4.5K11编辑于 2024-04-15
  • 来自专栏机器学习与python集中营

    轻量级神经网络系列——MobileNet V3

    激活函数h-swish swish h-swish是基于swish的改进,swish最早是在谷歌大脑2017的论文Searching for Activation functions所提出(又是Searching swish论文的作者认为,Swish具备无上界有下界、平滑、非单调的特性。并且Swish在深层模型上的效果优于ReLU。 所以提出了h-swish。 h-swish 可以用一个近似函数来逼急这个swish,让swish变得硬(hard)。 作者发现swish的大多数好处都是通过在更深的层中使用它们实现的。因此,在V3的架构中,只在模型的后半部分使用h-swish(HS)。 网络结构搜索NAS 由于不熟,就简单写一点吧。 就像之前所说的:只有在更深层次使用h-swish才能得到比较大的好处。所以在上面的网络模型中,不论大小,作者只在模型的后半部分使用h-swish

    17.9K63发布于 2019-07-19
  • 来自专栏我爱计算机视觉

    YOLOv4 中的 Mish 激活函数

    这与另一个被称为Swish函数的激活函数非常相似,可以定义为: ? ? 在YOLOv4中使用Mish函数的原因是它的低成本和它的平滑、非单调、上无界、有下界等特点,与其他常用函数如ReLU和Swish相比,提高了它的性能。 (Mish的这个性质类似于ReLU和Swish的性质,其范围是[≈0.31,∞))。 非单调函数:这种性质有助于保持小的负值,从而稳定网络梯度流。 然而,在Swish和Mish的情况下,宏观上或多或少还是相似的。 ? 计算量较大,但是效果更好:与ReLU相比,它的计算比较贵,但在深度神经网络中显示了比ReLU更好的结果。 ! 下图显示了Mish、Swish和ReLU在不同模型的CIFAR-10数据集上的性能,从图中可以很容易地推断,Mish比Swish函数的性能大约高0.494%,ReLU比Swish函数的性能高1.671%

    2.3K20发布于 2020-09-07
  • Transformer模型中的线性层与激活函数解析

    )=\max(0,x)$$\text{GELU}(x)=x⋅Φ(x)≈\frac{x}{2}(1+\tanh(\sqrt{\frac{2}{\pi}}(x+0.044715x^3)))$$\text{Swish }_β(x)=x⋅\text{Sigmoid}(βx)=\frac{x}{1+e^{-βx}}$$\text{SiLU}(x)=\frac{x}{1+e^{-x}}=\text{Swish}_1(x)$ Swish是另一种非单调激活函数,参数β控制x=0处的斜率。当β=1时称为SiLU(Sigmoid线性单元)。SwiGLU(Swish门控线性单元)是现代Transformer模型常见的新激活函数。 它是Swish函数与线性函数的乘积,参数在训练中学习。其流行源于复杂性:展开公式可见分子中的二次项,帮助模型无需额外层即可学习复杂模式。上图展示了这些激活函数的曲线。 门控是神经网络的设计,意味一个线性层输出与权重的逐元素相乘,此处权重由Swish激活函数产生。

    71410编辑于 2025-08-22
  • 来自专栏计算机视觉CV

    深度学习基础知识(一)--激活函数

    [softplus曲线] swish swish是谷歌大脑提出的,其公式: [Nus8dS68gCAybDMbUJb-KQ.svg? w=334&h=18&type=image%2Fsvg%2Bxml] 和 ReLU 一样,Swish 无上界有下界。与 ReLU 不同的是,Swish 是平滑且非单调的函数。 [swish曲线] h-swish 通过公式可以看出swish的计算量也很大,h-swish是使用relu6来近似swish,如下图 [h-swish公式] [hswish曲线] 代码实现 最后列举下常用激活函数的代码实现 (x, beta=1.0): """ swish x * sigmoid(beta*x) 公式: :`y = x\cdot {\rm sigmoid}(\beta x) 公式: `{\rm log}(e^x + 1)` """ return np.log(np.exp(x) + 1) def hswish(x): """ h-swish

    5.6K176编辑于 2022-05-04
  • 来自专栏DeepHub IMBA

    激活函数其实并不简单:最新的激活函数如何选择?

    Swish Swish 激活函数,由 Ramachandran 等人于 2017 年 Google Brain 上的发现。非常简单:它只是将输入乘以自己的 sigmoid。 因此,他们通过简单地将 Swish 用作已针对 ReLU 优化的网络架构中的 ReLU 的替代品来评估 Swish。他们发现了显着的性能提升,并建议使用 Swish 作为 ReLU 的替代品。 Swish的论文还包含了一个有趣的讨论,关于什么激活函数是好的。作者指出,Swish工作得如此出色的原因是它的上无界,下有界,非单调,平滑。 Mish 受到 Swish 的启发,并已被证明在各种计算机视觉任务中的表现都优于它。 引用原始论文,Mish 是“通过系统分析和实验发现并使 Swish 更加有效”。 一位前 Google 员工给出的第一条建议是用 Swish 替换 ReLU。它并没有改变游戏规则,但尽管如此,性能还是有所提高。

    1.6K30发布于 2021-09-15
  • 来自专栏AI科技评论

    神经网络为何非激活函数不可?

    五、在最新研究中涌现的值得关注的非线性激活函数 1、Swish 函数 Swish 由 Ramachandran 等人在 2017 年提出,定义为 f(x)=x*sigmoid(x)。 与 ReLU 相比,尽管图形非常相似,Swish 的性能却要稍好一些。 然而,ReLU 在 x=0 时会突然发生改变,而 Swish 与此不同,它不会在某个点上突然改变,这使得训练时 Swish 更容易收敛。 但是,Swish 的缺点是它的计算成本很高,为了解决这个问题,我们来看看下一个版本的 Swish。 2、Hard-Swish 或 H-Swish函数 函数定义如下: 它最大的优点是几乎类似于 swish 函数,但计算成本却比 swish 更低,因为它用线性类型的 ReLU 函数取代了指数类型的 sigmoid

    1.8K20发布于 2020-02-21
  • 来自专栏GiantPandaCV

    卷积神经网络学习路线(二十) | Google ICCV 2019 MobileNet V3

    H-Swish 激活函数 Mobilenet V3引入了新的非线性激活函数:H-Wwish。 它是最近的Swish非线性函数的改进版本,计算速度比Swish更快(但比ReLU慢),更易于量化,精度上没有差异。 其中Swish激活函数的公式如下: 其中是sigmoid激活函数,而H-Swish的公式如下: 简单说下,Swish激活函数相对于ReLU来说提高了精度,但因为Sigmoid函数而计算量较大。 而H-swish函数将Sigmoid函数替换为分段线性函数,使用的ReLU6在众多深度学习框架都可以实现,同时在量化时降低了数值的精度损失。 下面这张图提到使用H-Swish在量化的时候可以提升15%的精度,还是比较吸引人的。 ? 在这里插入图片描述 5.

    1K20发布于 2020-02-21
  • 来自专栏AI科技评论

    神经元一定要激活吗?马宁宁、孙剑、张祥雨对此表示怀疑

    随着一系列后续研究,NAS(神经架构搜索)技术验证了Swish激活在具有挑战性的ImageNet数据集上能获得显著提升。许多后续的神经网络结构通过使用Swish获得了更好的性能。 尽管NAS在现代激活上取得了新进展,但一个自然的问题是:NAS搜索的Swish事实上是如何工作的? 我们发现Swish可以表示为ReLU的简单而通用的平滑近似: 我们把该方法称为ACON,它遵循从ReLU到Swish转换的原则,通过同样的平滑近似公式将ReLU族转换为ACON族。 2 ACON 在本文中,我们首先说明如何使用平滑近似公式:平滑最大值来执行ReLU到Swish的转换。 Swish是近年来出现的一种新的激活函数,并通过NAS验证了其有效性,虽然近年来得到了广泛的应用,但它提高性能的原因却缺乏合理的解释。 从上面的角度来看,Swish其实是ReLU的一个平滑近似。

    1.1K30发布于 2020-10-09
  • 来自专栏有三AI

    【AutoML】激活函数如何进行自动学习和配置

    1 从Relu到Swish Google Brain是AutoML的先驱,从自动设计网络的NAS到自动数据增强的AutoAugment,因此很自然也最早做自动搜索最优的激活函数工作。 搜到了一些比Relu表现更好的函数,最好的是一个这样的函数:x · σ(βx),被称为Swish,它在某个特定的参数下也和ReLU及其变种类似,看看图就知道了。 ? 后来研究者们[2]验证了Swish甚至在很多的NLP任务中都非常有效。 在Swish的基础上,后续的研究人员设计了EliSH,HardEliSH[3],并针对不同的任务学习到了最好的激活函数。 ? Is it time to swish?

    68610发布于 2020-07-01
  • 来自专栏集智书童

    CVPR2021全新Backbone | ReXNet在CV全任务以超低FLOPs达到SOTA水平(文末下载论文和源码)

    在满足不等式 的条件下,特征 的秩范围为: 因此,可以得出结论,秩范围可以通过增加 的秩和用适当的用具有更大秩的函数 来替换展开,如使用swish或ELU激活函数,这与前面提到的非线性的解决方法类似 as default: USE_MEMORY_EFFICIENT_SWISH = True if USE_MEMORY_EFFICIENT_SWISH: @torch.jit.script def swish_fwd(x): return x.mul(torch.sigmoid(x)) @torch.jit.script def swish_bwd : def swish(x, inplace=False): return x.mul_(x.sigmoid()) if inplace else x.mul(x.sigmoid ()) class Swish(nn.Module): def __init__(self, inplace=True): super(Swish, self).

    95930发布于 2021-05-28
  • 来自专栏贾志刚-OpenCV学堂

    超越ReLU却鲜为人知,3年后被挖掘:BERT、GPT-2等都在用的激活函数

    这样的激活函数是「被搜索」出来的,研究者在一系列函数族中做自动搜索,并表示 Swish 激活函数的效果最好。 ? 不服跑分:GELU vs Swish 因为表达式差不多,一个是固定系数 1.702,另一个是可变系数 β,Swish 和 GELU 的性质与效果非常类似。 在 Swish 论文(SEARCHING FOR ACTIVATION FUNCTIONS)中,研究者对比了不同激活函数的效果,我们可以看到在视觉或语言任务中,Swish 效果要更好一些。 例如在 ImageNet 中训练 Inception-ResNet-v2,Swish 还是要稍微超过 GELU,其中每一个评估值都记录了三次运行的结果。 ? 在不同的测试集上,似乎 Swish 激活函数都是最好的,当然 GELU 的效果也不差,它们相差并不大。 ?

    86020发布于 2020-01-20
领券