深度学习3:激活函数

news2024/10/7 12:26:58

一、激活函数的简介与由来

激活函数:是用来加入非线性因素的,解决线性模型所不能解决的问题。

线性函数的组合解决的问题太有限了,碰到非线性问题就束手无策了。如下图。

通过激活函数映射之后,可以输出非线性函数。

最后再通过最优化损失函数的做法,我们能够学习到不断学习靠近能够正确分类三角形和圆形点的曲线

 

 

二、激活函数的种类

1.Sigmoid函数

它能够把输入的连续实值变换为0和1之间的输出,特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1.

缺点:

  1. 梯度从后向前传播时,每传递一层梯度值都会减小为原来的0.25倍,如果神经网络隐层特别多,那么梯度在穿过多层后将变得非常小接近于0,即出现梯度消失现象。
  2. 其解析式中含有幂运算,计算机求解时相对来讲比较耗时。对于规模比较大的深度网络,这会较大地增加训练时间。
  3. Sigmoid 的 output 不是0均值(即zero-centered)。

 

2.tanh函数

它解决了Sigmoid函数的不是zero-centered输出问题,然而,梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在。

3.Relu函数

Relu=max(0,x)

 ReLU函数其实就是一个取最大值函数.

解决了gradient vanishing问题 (在正区间),计算速度非常快,只需要判断输入是否大于0,收敛速度远快于sigmoid和tanh。

缺点:

  1. ReLU的输出不是zero-centered。
  2. 指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。

4.Leaky ReLU函数(PReLU)

f(x)=max(αx,x)

 Leaky ReLU有ReLU的所有优点,外加不会有Dead ReLU问题,但是在实际操作当中,并没有完全证明Leaky ReLU总是好于ReLU。

5.Mish函数

f(x) = xtanh(ς(x)),其中, ς(x) = ln(1+e^x),是一个softmax激活函数和。

在YOLOv4中使用Mish函数的原因是它的低成本和它的平滑、非单调、上无界、有下界等特点,与其他常用函数如ReLU和Swish相比,提高了它的性能。

类似的Swish函数(yolov5使用的激活函数):

Mish函数优点:

  1. 无上界有有界:无上界是任何激活函数都需要的特性,因为它避免了导致训练速度急剧下降的梯度饱和。因此,加快训练过程。无下界属性有助于实现强正则化效果(适当的拟合模型)。(Mish的这个性质类似于ReLU和Swish的性质,其范围是[≈0.31,∞))。

  2. 非单调函数:这种性质有助于保持小的负值,从而稳定网络梯度流。大多数常用的激活函数,如ReLU [f(x) = max(0, x)], Leaky ReLU [f(x) = max(0, x), 1],由于其差分为0,不能保持负值,因此大多数神经元没有得到更新。

  3. 无穷阶连续性和光滑性:Mish是光滑函数,具有较好的泛化能力和结果的有效优化能力,可以提高结果的质量。在图中,可以看到ReLU和Mish之间的一个随机初始化的神经网络在宏观平滑度上的剧烈变化。然而,在Swish和Mish的情况下,宏观上或多或少还是相似的。

  4. 计算量较大,但是效果更好:与ReLU相比,它的计算比较贵,但在深度神经网络中显示了比ReLU更好的结果。

  5. 自门控:此属性受到Swish函数的启发,其中标量输入被提供给gate。它优于像ReLU这样的点式激活函数,后者只接受单个标量输入,而不需要更改网络参数。

在YOLOv4中,使用了Mish函数+ CSPDarknet53的组合,尽管代价有点高,但它极大地提高了检测的准确性。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/912835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu下跑Aplaca报错:torch.cuda.0utofMemoryError: CUDA out of memory.解决办法(查看CUDA占用情况清除GPU缓存)

缓存不够!!!!并非内存容量不够 错误提示: torch.cuda.0utofMemoryError: CUDA out of memory.Tried to allocate 2.00 MiB (PU 0; 23.69 GiB total capacity; 237 BiB already allocated; 18.38 MiB fre; 2.50 GiB re…

解决elementUI打包上线后icon图标偶尔乱码的问题

解决vue-elementUI打包后icon图标偶尔乱码的问题 一、背景二、现象三、原因四、处理方法方式1:使用css-unicode-loader方式2:升高 sass版本到1.39.0方式3:替换element-ui的样式文件方式4:更换打包压缩方式知识扩展:方式…

一文读懂AUTOSAR系列 – DEM功能详解

摘要: DEM是以DTC为核心的AUTOSAR基础软件模块,实现了对DTC的监控上报,存储等功能,如果需要对AUTOSAR诊断进行进一步学习,还需要对DCM,Doip,Cantp等模块进行系统性学习。 前言 Dem是AUTOSAR中配…

【MySQL系列】ALTER语句详解,以及UPDATE,DELECT,TRUNCATE语句的使用+区别

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

网络货运平台盈利指南

8月17日,由中国物流与采购联合会主办的2023(第十五届)物流与供应链数字化发展大会在贵阳成功举办! 会议期间,数据宝作为中物联副会长单位受邀出席,并与菜鸟集团、中储、满帮、华润、货运中国、山东高速、德…

玩转自动化测试:Monkey工具的实践应用

本文将介绍monkey在自动化测试中的使用技术,主要包括monkey的安装和配置,使用monkey进行自动化测试的步骤,以及monkey的常用选项和技巧 01、Monkey的安装和配置 Mac OS X 在Mac OS X中,可以通过终端进行monkey的安装和配置 安…

4.物联网LWIP之C/S编程,实现服务器大小写转换

LWIP配置 服务器端实现 客户端实现 错误分析 一。LWIP配置(FREERTOS配置,ETH配置,LWIP配置) 1.FREERTOS配置 为什么要修改定时源为Tim1?不用systick? 原因:HAL库与FREERTOS都需要使用systi…

资损防控技术体系简介及实践

1 资损防控介绍 得物提供大量商品买卖等服务,资金流转量大,任何由于设计缺陷、系统缺陷、系统故障、人为操作、安全漏洞等因素都会引发直接或间接资金损失。资损防控就是在项目全生命周期内,引入多种资金分析和控制手段,预防资损…

Web安全测试:HTTP请求详解

一、前言 结合内部资料,与安全渗透部门同事合力整理的安全测试相关资料教程,全方位涵盖电商、支付、金融、网络、数据库等领域的安全测试,覆盖Web、APP、中间件、内外网、Linux、Windows多个平台。学完后一定能成为安全大佬! 全部…

基于AVR128单片机世界电子时钟的设计

一、系统方案 上电初始化完成系统初始化,液晶滚动显示北京、莫斯科、东京、伦敦、巴黎、纽约等六个城市的标准时间,显示的内容包括地区名及相应地区的年、月、日、星期、时、分、秒。 使用K1按键控制滚动显示或稳定显示某个地区的时间。 使用K3、K4、K5按…

Goodnotes替代品!有哪些类似Goodnotes的笔记软件?

近期软件圈的一个重磅消息,莫过于笔记软件Goodnotes6从买断制变更为订阅制,不少早前已购买了Goodnotes的用户感觉受到了欺骗,原先承诺的「一次付费、长期使用」变成了空头支票,想用上最新的6.0版本和AI功能,就得掏钱订…

微信开发之一键删除朋友圈评论的技术实现

简要描述: 删除某条朋友圈的某条评论 请求URL: http://域名地址/snsCommentDel 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数…

小程序开发简单介绍

1.主界面的 5 个组成部分 2.文件结构对比 3.目录结构 js逻辑文件 json配置 wxss样式 app全局文件 project.config.json项目配置 sitemap.json索引配置文件 3.1 全局配置 app.json 概念 是当前⼩程序的全局配置,包括了⼩程序的所有⻚⾯路径、界⾯表现、⽹络超时时…

SpringBoot+WebSocket搭建多人在线聊天环境

一、WebSocket是什么? WebSocket是在单个TCP连接上进行全双工通信的协议,可以在服务器和客户端之间建立双向通信通道。 WebSocket 首先与服务器建立常规 HTTP 连接,然后通过发送Upgrade标头将其升级为双向 WebSocket 连接。 WebSocket使得…

MyBatis plus 多数据源实现

1. 项目背景 最近写文章发布到【笑小枫】小程序和我的个人网站上,因为个人网站用的是halo框架搭建,两边数据结构不一致,导致我每次维护文章都需要两边维护,这就很烦~ 于是,本文就诞生了。通过项目连接这两个数据库&a…

CQ课堂 | 社区版 2.3.0 新功能操作演示直播快来预约!

CloudQuery 一体化数据库操作管控云平台,社区版 V 2.3.0 已发布! 三大核心功能增强 1、 权限管控:新增自动授权、分级授权 2、 动态脱敏:新增脱敏配置导入导出、脱敏扫描 3、 审计中心:新增上卷下钻能力、审计归档 …

【3D激光SLAM】LOAM源代码解析--transformMaintenance.cpp

系列文章目录 【3D激光SLAM】LOAM源代码解析–scanRegistration.cpp 【3D激光SLAM】LOAM源代码解析–laserOdometry.cpp 【3D激光SLAM】LOAM源代码解析–laserMapping.cpp 【3D激光SLAM】LOAM源代码解析–transformMaintenance.cpp 写在前面 本系列文章将对LOAM源代码进行讲解…

微积分入门(3)—— 近似值与微分的定义

例零 微分 言归正传,我们今天先来谈谈近似值 此“近似值”非彼“近似值”,大部分人现在想到的绝对是“四舍五入”。 所以我们今天偏偏就不讲四舍五入,为什么呢? 还记得我们上次说的极小变化量吗?在任意小的变化中&…

AWVS安装~Windows~激活

目录 1.下载安装包 2.双击acunetix_15.1.221109177.exe进行安装 3.配置C:\Windows\System32\drivers\etc\hosts 4.复制wvsc.exe到C:\Program Files (x86)\Acunetix\15.1.221109177下 5.复制license_info.json与wa_data.dat到C:\ProgramData\Acunetix\shared\license下&…

Python爬虫库之urllib使用详解

一、Python urllib库 Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 Python3 的 urllib。 urllib 包 包含以下几个模块: urllib.request - 打开和读取 URL。 urllib.error - 包含 urllib.request 抛出的异常。 urllib.parse - 解…