【卷积神经网络】激活函数 | Tanh / Sigmoid / ReLU / Leaky ReLU / ELU / SiLU / GeLU

news/2025/1/13 8:08:18/

文章目录

  • 一、Tanh
  • 二、Sigmoid
  • 三、ReLU
  • 四、Leaky ReLU
  • 五、ELU
  • 六、SiLU
  • 七、Mish

本文主要介绍卷积神经网络中常用的激活函数及其各自的优缺点

在这里插入图片描述

最简单的激活函数被称为线性激活,其中没有应用任何转换。 一个仅由线性激活函数组成的网络很容易训练,但不能学习复杂的映射函数。线性激活函数仍然用于预测一个数量的网络的输出层(例如回归问题)。

非线性激活函数是更好的,因为它们允许节点在数据中学习更复杂的结构 。两个广泛使用的非线性激活函数是 sigmoid 函数和 双曲正切 激活函数。

在这里插入图片描述

一、Tanh

在这里插入图片描述

Tanh 函数公式如下,数值范围在 (-1, 1),导数范围为 (0, 1]

Tanh 函数的优点:

  • 以 0 为中心,能够达到正负平衡,避免出现梯度的不稳定性

Tanh 函数的缺点:

  • 会导致梯度消失问题!

二、Sigmoid

在这里插入图片描述

Sigmoid 函数公式如下,数值范围为 (0, 1),导数范围为 (0, 0.25]:

  • f(x)=11+e−zf(x) = \frac{1}{1+e^{-z}}f(x)=1+ez1

sigmoid 函数优点:

  • 可以把输入映射到 (0, 1)区间,可以用来表示概率,在物理意义上最为接近生物神经元

sigmoid 函数缺点:

  • 梯度消失问题 :由于 sigmoid 的导数 f′(zl) 区间为 (0, 0.25],所以其极易落入饱和区,导致梯度非常小,权重接近不变,无法正常更新
  • sigmoid 的输出并不是均值为 0 的,所有输出数据的大于0,会增加梯度的不稳定性
  • 当输出接近饱和或剧烈变化时,对输出范围的这种缩减往往会带来一些不利影响

三、ReLU

在这里插入图片描述

f(x)=max(0,x)f(x) = \text{max}(0, x)f(x)=max(0,x)

ReLU 函数的优点:

  • 摒弃了复杂的计算, 比 sigmoid/tanh 收敛的更快 (大概快 6x)
  • 其导数在其权重和(z) 大于 0 的时候为 1,不存在梯度消失现象权重可以正常更新,但也要防止 ReLU 的梯度爆炸

ReLU 函数的缺点:

  • 小于 0 的输出经过 ReLU 之后会全都变成 0,梯度值为0,从而权重无法正常更新
  • 输出具有偏移现象,即输出均值恒大于零
  • 当使用了较大的学习速率时,易受到饱和的神经元的影响。

四、Leaky ReLU

在这里插入图片描述

公式如下:

  • f(x)=αx,x<0f(x) = \alpha x, \ x<0f(x)=αx, x<0
  • f(x)=x,x>=0f(x) = x, \ x>=0f(x)=x, x>=0

为了防止模型 dead 的情况,出现了很多 ReLU 的改进版本,如 Leaky ReLU,在 0 右侧和 ReLU 一样,左侧从全零变成了一个斜率很小的直线

优点:

  • 避免了小于零的特征被处理为 0 导致特征丢失的情况,同时左右两侧梯度都是恒定的,不会出现梯度消失现象

缺点:

  • Leaky ReLU中的 α\alphaα 为常数,一般设置 0.01。这个函数通常比 ReLU 激活函数效果要好,但是效果不是很稳定,所以在实际中 Leaky ReLU 使用的并不多。

五、ELU

在这里插入图片描述

在这里插入图片描述

ELU(Exponential Linear Unit,指数线性单元)尝试加快学习速度。基于ELU,有可能得到比ReLU更高的分类精确度。

优点:

  • 解决了 ReLU 可能导致的网络 dead 的问题

缺点:

  • 计算量较大

六、SiLU

在这里插入图片描述

f(x)=x∗sigmoid(βx)f(x) = x *\text{sigmoid}(\beta x)f(x)=xsigmoid(βx)β=1\beta=1β=1 时就是 SiLU

优点:

  • 相比 ReLU 增加了平滑性的特点

缺点:

  • 引入了指数计算,增加了计算量

七、Mish

在这里插入图片描述

f(x)=x∗tanh(ln(1+ex))f(x) = x * \text{tanh}(\text{ln}(1+e^x))f(x)=xtanh(ln(1+ex))

优点:

  • 平滑、非单调、无上界、有下界

缺点:

  • 引入了指数函数,增加了计算量

http://www.ppmy.cn/news/30971.html

相关文章

【编程基础之Python】12、Python中的语句

【编程基础之Python】12、Python中的语句Python中的语句赋值语句条件语句循环语句for循环while循环continue语句break语句continue与break的区别函数语句pass语句异常处理语句结论Python中的语句 Python是一种高级编程语言&#xff0c;具有简单易学的语法&#xff0c;适用于各…

SpringBoot的基本概念和使用

文章目录一、什么是SpringBoot二、Spring Boot优点三、Spring Boot项目创建四、Spring Boot 配置文件1. yml语法2.properties与yml关系3.多系统的配置五、Spring Boot日志文件1.日志对象2.日志级别日志级别的设置System.out.println VS 日志的两个致命缺点3.日志持久化4.更简单…

MySQL-索引

索引介绍索引是对数据库表中一列或者多列的值进行排序的一种结构&#xff0c;使用索引可提高数据库中特定数据的查询速度。索引是一个单独的、存储在磁盘上的数据库结构&#xff0c;它们包含着对数据表里所有记录的引用指针。使用索引用于快速找出在某个或多个列中有一特定值得…

刮刮乐--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)

实例1&#xff1a;刮刮乐 刮刮乐的玩法多种多样&#xff0c;彩民只要刮去刮刮乐上的银色油墨即可查看是否中奖。每张刮刮乐都有多个兑奖区&#xff0c;每个兑奖区对应着不同的获奖信息&#xff0c;包括“一等奖”、“二等奖”、“三等奖”和“谢谢惠顾”。假设现在有一张刮刮乐…

蓝桥杯入门即劝退(二十六)组合问题(回溯算法)

-----持续更新Spring入门系列文章----- 如果你也喜欢Java和算法&#xff0c;欢迎订阅专栏共同学习交流&#xff01; 你的点赞、关注、评论、是我创作的动力&#xff01; -------希望我的文章对你有所帮助-------- 专栏&#xff1a;蓝桥杯系列 一、题目描述 给定两个整数 n …

java性能-原生内存-内存分析

原生内存最佳实践 内存占用 jVM使用的原生内存和堆内存总和就是一个应用程序的总内存——操作系统角度 jvm启动时候加载的类路径下的jar文件相关的内存和系统其他进程共享资源的可能 测量内存占用 线程是个例外——每当创建一个线程操作系统都会分配一些原生内存存储线程栈…

数据结构4——线性表3:线性表的链式结构

基本概念 ​ 链式存储结构用一组物理位置任意的存储单元来存放线性表的数据元素。 ​ 这组存储单元既可以是连续的又可以是不连续的甚至是零散分布在任意位置上的。所以链表中元素的逻辑次序和物理次序不一定相同。而正是因为这一点&#xff0c;所以我们要利用别的方法将这些…

QT入门Item Views之QTreeView

目录 一、QTreeView界面相关 1、布局介绍 二、基本属性功能 1、设置单元格不能编辑 2、一次选中一个item 3、去掉鼠标移动到单元格上的虚线框 4、最后一列自适应 三、代码展示 1、创建模型&#xff0c;导入模型 2、 右键菜单栏 3、双…