详解激活函数Mish

常用的激活函数Sigmoid,ReLU,Swish,Mish,GELU Sigmoid激活函数在我们的网络模型中比较常用,也常作为二分类任务的输出层,函数的输出范围为(0,1) 阅读详情

激活函数Mish


  对YOLO有了解的或者从事人工智能的相关人员,都知道前段时间yolov4出来了,而且相对于yolov3在精度上有一个质的飞跃,让人感觉匪夷所思,于是在好奇心的驱使下,了解了一下yolov4;与yolov3相比较,主要有几个不同点:网络层更深了、激活函数将leakyRelu替换为mish、采用了SPP(空间金字塔池化)等。下面主要学习一下激活函数mish:
  在论文“ Mish: A Self Regularized Non-Monotonic Neural Activation Function”中, Diganta Misra有这样的描述:“Over the years of theoretical research, many activation functions have been proposed, however, only a few are widely used in mostly all applications which include ReLU (Rectified Linear Unit), TanH (Tan Hyperbolic), Sigmoid, Leaky ReLU and Swish. ” 和 “For instance, in
Squeeze Excite Net- 18 for CIFAR 100 classification, the network with Mish had an increase in Top-1 test accuracy by 0.494% and 1.671% as compared to the same network with Swish and ReLU respectively”。大概意思是,现在仍被广泛应用的激活函数有ReLU、TanH、Sigmoid、Leaky ReLU 和 Swish;而在这篇论文中,提出了一个新的激活函数Mish,并且经过验证得出一个结论mish的精度比Swish高0.494%,比ReLU高1.671%。
Mish的公式: f ( x ) = x ∗ t a n h ( s o f t p l u s ( x ) ) f(x)=x*tanh(softplus(x)) f(x)=x∗tanh(softplus(x))
Mish公式分步合并:

Mish的输入数据为x
1. softplus: y1 = ln(1+e^x)
2. tanh:     y2 = (e^y1 - e^(y1 * -1)) / (e^y1 - e^(y1 * -1))
3. Mish:     y  = y2 * x

下图为,Mish和其他常用的激活函数的函数对比,从中可以总结出Mish和Swish比较相似的:
在这里插入图片描述

常见激活函数对比

下图主要说明了,经过ReLU、Swish、Mish三个不同激活函数后的输出对比,从中可以发现Mish相对于ReLU、Swish显得更加平滑一些。
在这里插入图片描述

ReLU、Swish、Mish的结果对比

在这里插入图片描述

Mish的属性

代码事例

import numpy as np
import matplotlib.pyplot as plt

def mish_fun(x):
    tmp = np.log(1 + np.exp(x))
    tmp = np.tanh(tmp)
    tmp = tmp * x
    return tmp

if __name__ == '__main__':

    input = np.array([-15, -11, -10.5, -10, -4.5, -4, -3.5, -3, -2.5, -2, -1.5, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10.5])
    output = mish_fun(input)
    plt.plot(input, output)
    plt.show()
    print(input)
    print(output)

在这里插入图片描述

Mish激活函数
PyTorch实战:5种冷门但好用的激活函数实现(含Mish/GELU代码示例) 本文深入探讨了PyTorch中五种冷门但高效的激活函数实现,重点解析了Mish和GELU等新兴函数的原理与优势。通过对比ReLU等经典函数,详细提供了Swish、Mish、GELU的模块化代码示例、性能调优技巧及在真实模型中的集成测试与替换策略,帮助开发者突破性能瓶颈,优化模型表现。 阅读详情

相关推荐

PyTorch 2.0 自定义激活函数:从 Swish 到 Mish 的 5 行代码实现与梯度检验

本文详细介绍了在PyTorch 2.0中如何实现Swish和Mish等新型激活函数,并通过梯度检验确保其正确性。这些激活函数在深度学习中表现出优于传统ReLU、Sigmoid和Tanh的特性,特别是在计算机视觉和自然语言处理任务中。文章还提供了性能对比、使用建议以及与PyTorch 2.0新特性的结合方法,帮助开发者高效应用这些前沿技术。

weixin_34405354的博客 434

【激活函数】Mish激活函数详解

● Mish公式: ● Mish图像: ● 导数: ● Mish优点: ● 和其他激活函数的比较:

Roaddd的博客 1万+

深度学习—激活函数详解(Sigmoid、tanh、ReLU、ReLU6及变体P-R-Leaky、ELU、SELU、Swish、Mish、Maxout、hard-sigmoid、hard-swish)

非线性激活函数详解 饱和激活函数Sigmoid函数tanh函数hard-Sigmoid函数 非饱和激活函数Relu(修正线性单元):Relu6(抑制其最大值):ELU(指数线性单元)SELULeaky-Relu / R-ReluP-Relu(参数化修正线性单元)R-Relu(随机纠正线性单元)Swishhard-SwishMishMaxout关于激活函数统一说明 参考链接 因为深度学习模型中其它的层都是线性的函数...

星月夜话 7167

激活函数Mish

本文提出了一种新的自正则化、非单调的激活函数,Mish,定义为 \(f(x)=xtanh(softplus(x))\)。在大多数情况下,超越了ReLU、Leaky ReLU和Swish。 我们还观察到,最先进的数据增强技术,如CutMix和其他已被验证的技术如标签平滑,表现与预期一致。 我们探索了Mish与Swish函数族相关的数学公式,并提出了一个关于一阶导数行为如何作为一个正则化器来帮助优化深度神经网络的直观理解。

00000cj的博客 3414

深入浅出之Mish激活函数(YOLO)

・其中,,是一个激活函数和。这与另一个被称为函数的激活函数非常相似,可以定义为::无上界是任何激活函数都需要的特性,因为它避免了导致训练速度急剧下降的梯度饱和。因此,加快训练过程。无下界属性有助于实现强正则化效果(适当的拟合模型)。(Mish的这个性质类似于ReLU和Swish的性质,其范围是[≈0.31,∞))。:这种性质有助于保持小的负值,从而稳定网络梯度流。大多数常用的激活函数,如[f(x) = max(0, x), 1],由于其差分为0,不能保持负值,因此大多数神经元没有得到更新。

浩瀚之水的专栏 3101

神经网络中各种激活函数的Python实现

本资源主要是可视化各种激活函数:Relu,sigmoid ,swish,mish等,只需要依赖numpy,不需要安装pytorch,只是一个简单的demo

深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解

文章目录1.什么叫激活函数2.激活函数的作用3.激活函数的类型4.Sigmoid/Logistic5.tanh6.ReLU 1.什么叫激活函数 激活函数可作用于感知机(wx+b)累加的总和 ,所谓的激活就是把输出值必须要大于,节点才可以被激活,不然就处于睡眠状态。 2.激活函数的作用 提供网络的非线性建模能力。如果没有激活函数,那么该网络仅能够表达线性映射,此时即便有再多的隐藏层,其整个网络跟单层神经网络也是等价的。因此也可以认为,只有加入了激活函数之后,深度神经网络才具备了分层的非线性映射学习能力。由于输

源的博客 4913

用Arduino和MAX30102做个心率血氧仪,从硬件连线到算法调试全流程避坑

本文详细介绍了如何使用Arduino和MAX30102传感器构建高精度心率血氧仪,涵盖硬件连线、软件配置、信号处理及算法优化全流程。通过实战案例和避坑指南,帮助开发者快速实现临床级精度的健康监测设备,适用于可穿戴设备和医疗健康领域。

weixin_26897585的博客 383

10分钟上手Mish:PyTorch版本安装与CIFAR-10分类实战

Mish激活函数是一种在深度学习领域表现出色的新型激活函数,它结合了Swish函数的平滑特性和ReLU函数的非饱和特性,能够有效提升模型性能。本文将带你快速掌握Mish在PyTorch环境下的安装方法,并通过CIFAR-10数据集实战演示其应用效果。 ## 🚀 1分钟了解Mish激活函数 Mish激活函数的数学表达式为:`Mish(x) = x * tanh(softplus(x))`,其中

gitblog_00910的博客 372

Claude Code 完整学习笔记

Claude Code 学习笔记摘要 Claude Code是Anthropic推出的智能编码工具,基于Claude Opus 4.5模型构建,提供跨平台支持(终端/VS Code/JetBrains/Web等)。核心功能包括: 代码库理解与多文件编辑 命令执行与开发工具集成 智能体协作开发流程 安装要求Node.js≥18,提供原生/Homebrew/npm等多种安装方式,支持环境变量配置API访问。基础交互模式包括会话管理、文件操作和代码审查等功能,可自动读写文件并执行精确修改。 (149字)

虚心若愚 812

部署资源管理系统chemx

资源管理系统的部署教程

weixin_40784215的博客 822

激活函数实战指南:如何在PyTorch中高效实现Swish、Mish和GELU(避坑技巧分享)

本文提供了在PyTorch中高效实现Swish、Mish和GELU激活函数的实战指南。文章深入解析了这些新式激活函数的原理与优势,并分享了避免梯度异常、计算缓慢等常见问题的核心技巧与避坑方法,帮助开发者在提升模型性能的同时确保实现的稳健与高效。

weixin_29048309的博客 201

TMC5160电机驱动芯片实战:从模式选择到参数配置全解析

本文深入解析TMC5160电机驱动芯片的实战应用,涵盖三种核心工作模式的选择策略与参数配置。详细介绍了全功能运动控制、外部脉冲驱动及独立驱动模式的应用场景与配置要点,并提供了电流控制、静音优化、SPI通信及高级功能(如StallGuard2)的调优指南,帮助开发者充分发挥其高精度、低噪音性能。

weixin_29179311的博客 322

从Darknet53到CSP Darknet53:手把手教你用PyTorch复现YOLOv4的骨干网络(附Mish激活函数详解)

本文详细解析了YOLOv4骨干网络从Darknet53到CSP Darknet53的架构升级,重点介绍了CSP结构和Mish激活函数的原理与实现。通过PyTorch代码示例,手把手教您复现这一改进,并分享训练技巧与性能对比,帮助开发者掌握目标检测核心技术。

weixin_26750481的博客 286

使用cartographer纯定位替换amcl定位

经过实际使用,发现cartographer定位对于重定位的表现比amcl好。如果机器人的起始位置离原点较远,amcl很难自行重定位到正确的位置,只能手动修改初始位置。然而cartographer定位的表现则很好,在行驶一段距离或原地旋转一段时间后能够正确重定位。

XJ_75的博客 8313

基于通义千问2.5-7B-Instruct的技术深度解析

通义千问2.5-7B-Instruct是一个基于Transformer架构的大型语言模型,具有70亿参数。它通过自注意力机制和前馈神经网络处理输入序列,能够捕捉长距离依赖关系,适用于多种NLP任务。微调是指在预训练模型的基础上,使用特定任务的数据进行进一步训练,以使模型更好地适应特定任务。微调可以显著提高模型在特定任务上的性能。通义千问2.5-7B-Instruct是一个强大的语言模型,适用于多种NLP任务。通过深入理解其架构、微调方法和核心代码,可以更好地应用于实际场景。

zhangjiaofa的专栏 1568

Mish激活函数完全指南:从数学原理到PyTorch/TensorFlow实现

Mish激活函数是一种自正则化的非单调神经激活函数,已被PyTorch 1.9+官方收录。本文将为你揭开Mish的神秘面纱,从数学原理到实际应用,助你快速掌握这一提升模型性能的强大工具。 ## 什么是Mish激活函数? Mish激活函数的数学表达式为: `mish(x) = x * tanh(softplus(x)) = x * tanh(ln(1 + exp(x)))` 它结合了tan

gitblog_00959的博客 342

为什么devc++编译项目会失败?提示gcc无法正常启动...

根据你的描述,编译能正常进行时,只打开源文件并没有问题,问题主要出现在创建项目后编译失败,这通常与 Makefile 配置、环境变量、编译器路径设置等因素有关。你可以检查 Makefile 配置,验证 DevC++ 的编译器环境设置,或者尝试清理并重新配置项目。如果问题仍然存在,可以尝试重装 DevC++ 或重新配置工具链。希望如上措施及解决方案能够帮到有需要的你。

**My Coding Family** 1376

Mish激活函数

Diganta Misra的一篇题为“Mish: A Self Regularized Non-Monotonic Neural Activation Function”的新论文介绍了一个新的深度学习激活函数,该函数在最终准确度上比Swish(+.494%)和ReLU(+ 1.671%)都有提高 地址:https://github.com/digantamisra98/Mish ...

行云 1万+

随机优化 (Stochastic Optimization) 算法详解及案例分析

随机优化是一种用于处理包含随机变量的优化问题的方法。其目标是通过考虑随机变量的概率分布,找到一个在期望意义下最优的解。

闲人编程的博客 4179

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

告别Dying ReLU!用Mish激活函数拯救你的PyTorch/TensorFlow模型(附代码对比)

本文探讨了Mish激活函数在深度学习模型中的优势,特别是在解决ReLU的神经元死亡问题上的表现。通过PyTorch和TensorFlow的代码实现对比,展示了Mish如何提升模型性能,包括更平滑的梯度流动和更高的测试准确率。文章还提供了实战案例和调参技巧,帮助开发者更好地应用Mish激活函数。

weixin_33725807的博客 330

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Mish实战指南:如何在CSPNet中替换激活函数并提升COCO指标

Mish激活函数作为近年来备受关注的深度学习创新技术,在目标检测领域展现出显著优势。本文将详细介绍如何在CSPNet架构中集成Mish激活函数,通过实际案例展示其对MS-COCO数据集指标的提升效果,帮助开发者快速掌握这一性能优化技巧。 ## 为什么选择Mish激活函数? Mish激活函数的数学定义为`mish(x) = x * tanh(softplus(x))`,这种平滑的非线性特性使其在

gitblog_01149的博客 353

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

从Darknet53到CSP Darknet53:YOLOv4骨干网络的演进与Mish激活函数解析

本文深入解析了YOLOv4骨干网络从Darknet53到CSP Darknet53的演进过程,重点探讨了CSP结构的优势与Mish激活函数的实战表现。通过架构对比、代码解析和实验数据,揭示了CSP Darknet53在计算效率、梯度传播和特征融合方面的显著提升,为目标检测任务提供了更优的解决方案。

weixin_42554042的博客 104
上一篇: 神经网络CNN之池化层
下一篇: 深度学习之——KNN算法(k-最近邻算法)
一杯盐水
博客等级 码龄10年 62粉丝 59原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值