当前位置: 首页 > news >正文

常见激活函数Activation Function的选择

Activation Function激活函数一般会神经网络中隐层和输出层上,其中作用在输出层主要用于适配输出,比如sigmoid函数可用于生成[0,1]之间的概率估计值。而作用于隐层主要用于增加神经网络的非线性,增加了网络的表达能力,本文主要介绍隐层的激活函数的选择。

1. Sigmoid激活函数

sigmoid函数会将输入转化到0~1之间的范围,数据分布以0.5为中间,其主要的优点是处处连续可导,当输入值较大或较小时其梯度值极小,因此容易造成梯度消失的问题,特别是随着网络层数增加,各层权重参数叠加会导致问题加剧,虽然可能BatchNorm等方法可以解决这类问题,但在多数情况下,应用sigmoid激活函数并不会带来较大收益,现在更常用Relu函数等取代。

2. Tanh激活函数

 tanh函数会将输入转化到-1~1之间的范围,数据分布以0为中间,其也是处处连续可导,但当输入值较大或较小时其梯度值极小,也会出现梯度消失的问题,另外由于其数据分布是以0为中心的,因此更容易收敛,在某些特定网络结构(如RNN)中,这种以0为中心对称分布,同时包含了负数值的激活函数是有帮助的。

3. 类Tanh激活函数

上图的两个函数类似于tanh函数,其值范围在-1~1之间, 数据分布以0为中间,只是softsign函数更为平滑在一定程度上能减少tanh函数的梯度消失问题,会带来更为高效的训练,但其梯度计算相较于tanh更为复杂。hardtanh函数的梯度计算更为简单,但其分布偏硬,当权重参数值保持在一个偏小范围时,其也会有非常好的收敛效果(否则更容易陷入梯度消失问题)。

4. ReLU激活函数

Relu函数是更为常用的激活函数,很多人认为当不知道应该选择什么激活函数时,relu函数是默认的选择。relu函数首先的优点是其梯度计算很简单,梯度在大于0的情况下处处为1,可以加速模型的训练,另外其也不会存在梯度消费的问题。

但是其当小于0时输出为0,会造成神经元死亡现象(dying ReLU problem),可能会减少神经元的表达,同时会阻断梯度的回传,可能会造成训练困难,但从另一方面来说,其类似于L1正则化,增加了模型的稀疏性,会带来dropout相似的效果,增加模型的泛化性。

5. ReLU激活函数的变种

 上图ReLU函数的一系列变种函数,其解决ReLU神经元死亡现象(dying ReLU problem),对于输入值小于0时,添加了一个a<1的线性系数,其中Leaky ReLU函数这个系数a值是固定的较小值,而PRelu这个系数a值是一个模型可训练的参数,RReLU函数这个系数a值是随机采样得到的。

特别是对于小型网络,应用Leaky ReLU函数是很有必要的,能让输出值小于0部分梯度也能回传,可以帮忙模型更好的训练。

与PReLU函数类似的是Maxout函数f(x)=max(w_1x+b_1, w_2x+b_2,...),其提供了更多可学习参数,号称可以拟合任何的凸激活函数,但是其带来了更多的参数,增加了模型的学习难度。

ReLU函数另一个变种是对ReLU函数做了向上截断(如下),这是因为ReLU系列函数存在scale-invariant的特性即当输入增加10倍,输出也会增加10倍,由于其只输出大于0的值,因此当各层权重值加大时,其输出值会累计膨胀,称之为bias shift,造成学习上的困难。

ReLU另一个类似的激活函数是Swish函数, 其是由sigmoid函数再乘以输入变量得到,但在图形上类似于ReLU但为平滑,同时通过引入\beta变量,当\beta值越大其越趋近于ReLU函数,当其值越小,其越趋近于线性函数,这个\beta可以作为一个可以训练学习的参数,一些研究通过实验表明特别在大规模深度神经网络中,其能取得比ReLU更好的效果。

 Swish函数另一个主要的问题是其梯度计算更为复杂,因此另一类似的激活函数hardSwish提供了更为简单的版本。

6. Softplus激活函数

 softplus激活函数可以视为ReLU函数的平滑版本,当\beta值越大其越趋近于ReLU函数,但是虽然其处处连续可导,但在实际上其并没有比ReLu更好的效果,一方面其计算梯度更为复杂,另外可能是Relu所带来的稀疏性对模型本身会增益。

7. ELU类激活函数

前文提到ReLU函数存在bias shift的问题,PReLU等变种激活函数可以解决这个问题,但是其存在线性负轴,因此对于噪声缺乏稳健性(神经元缺乏不激活状态),而ELU类激活函数更为平滑,函数处处连续可导,同时保证输出的均值为0,因此在训练时的收敛速度要高于ReLU,也不存在ReLU神经元死亡现象(dying ReLU problem),但是ELU函数的计算复杂度要高于ReLU,所以在测试时计算速度要大于ReLU。

8. shrink类激活函数

shrink类函数几乎是很少用于隐层激活函数,其类似于一个线性函数,只不过在0附近有一个段非激活区域,在某些场景下会有用,比如用于软L1正则项的计算,或者在稀疏编码sparse coding,可以用于计算稀疏的潜在变量。

总结:

对于激活函数的选择并没有放之四海皆准的法则,一般都需要根据模型需要去尝试。很多学者建议在初始情况下选择ReLU作为默认激活函数,之后可以尝试PReLU、Maxout、Swish等类ReLU函数进行优化,但这些方法都可能会增加模型的训练难度。

另外,sigmoid、tanh等其他类激活函数由于存在梯度消失等问题,很多学者并不推荐使用,但是通过结合BatchNorm等方法,在部分场景下会更适合,比如tanh函数适合某些需要负值输出的情况。

相关文章:

常见激活函数Activation Function的选择

Activation Function激活函数一般会神经网络中隐层和输出层上&#xff0c;其中作用在输出层主要用于适配输出&#xff0c;比如sigmoid函数可用于生成[0,1]之间的概率估计值。而作用于隐层主要用于增加神经网络的非线性&#xff0c;增加了网络的表达能力&#xff0c;本文主要介绍…...

大厂跟进ChatGPT,为什么百度“文心一言”成色最好?【快评】

作者 | 曾响铃 文 | 响铃说 赶ChatGPT热度&#xff0c;百度3月初就要发布与ChatGPT类似的人工智能聊天机器人服务“文心一言”&#xff08;英文名&#xff1a;ERNIE Bot&#xff09;&#xff0c;似乎无法提振资本市场对百度的信心。 2022年第四季度及全年未经审计的财报发布…...

ChatGPT和Web3:人工智能如何帮助您建立和发展您的 Web3 公司

ChatGPT是OpenAI在2022年11月推出的聊天机器人。该机器人建立在OpenAI的GPT-3人工智能家族上&#xff0c;并通过监督学习和强化学习技术进行了优化。 与ChatGPT机器人聊天时&#xff0c;你会感觉自己在与一个懂得一切并以非常教育性的方式回答的朋友交谈。回答在许多知识领域非…...

【人工智能 AI】怎样实施RPA 机器人流程自动化(Robotic Process Automation)?核心技术有哪些?

文章目录 RPA 简介RPA的实施RPA的核心技术1. 自动化测试(1)自动化测试工具(2)自动化测试框架2. 自动化脚本(1)自动化脚本语言(2)自动化脚本框架3. 机器学习(1)机器学习模型(2)机器学习框架(3)自然语言处理(4)图像处理(5)深度学习(6)机器人操作系统RPA核心能…...

基于BP神经网络的性别识别,BP神经网络详细原理,自编码神经网络代码,神经网络案例之18

目标 背影 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数&#xff0c; BP神经网络的传递函数 数据 神经网络参数 基于BP神经网络 性别识别的MATLAB代码 效果图 结果分析 展望 背影 男人体内蛋白质比例大&#xff0c;女生…...

2023年消费电子行业研究报告

第一章 行业概况 消费电子行业是电子信息行业的子行业。消费电子是指围绕着消费者应用而设计的与生活、工作和娱乐息息相关的电子类产品&#xff0c;通常会应用于娱乐、通讯以及文书用途&#xff0c;最终实现消费者自由选择资讯、享受娱乐的目的&#xff0c;主要侧重于个人购买…...

CSDN 编程竞赛三十一期题解

竞赛总览 CSDN 编程竞赛三十一期&#xff1a;比赛详情 (csdn.net) 本次竞赛的最后一道题的描述部分有些问题&#xff08;题目描述与样例不符&#xff09;&#xff0c;另外&#xff0c;测试数据似乎也有点问题&#xff0c;试了多种方式&#xff0c;但最多只能通过10%的测试点。…...

SpringMVC常见面试题(2023最新)

目录前言1.简单介绍下你对springMVC的理解?2.说一说SpringMVC的重要组件及其作用3.SpringMVC的工作原理或流程4.SpringMVC的优点5.SpringMVC常用注解6.SpringMVC和struts2的区别7.怎么实现SpringMVC拦截器8.SpringMvc的控制器是不是单例模式&#xff1f;如果是&#xff0c;有什…...

【正点原子FPGA连载】第十六章DP彩条显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十六章DP彩条显…...

数据结构与算法—链表list

目录 链表 链表类型 链表插入 链表删除 写程序注意点 与数组区别 链表应用 LRU 实现思想 链表 链表&#xff0c;一种提高数据读取性能的技术&#xff0c;在硬件设计、软件开发中有广泛应用。常见CPU缓存&#xff0c;数据库缓存&#xff0c;浏览器缓存等。缓存满时&#…...

自定义View练习题目整理

一、动态音频播放柱形图 1、效果图&#xff1a; 2、步骤 &#xff08;1&#xff09;、新建自定义View类&#xff0c;继承View &#xff08;2&#xff09;、重写onDraw()方法&#xff0c;使用画笔和画布循环画一定数量的柱形 Overrideprotected void onDraw(Canvas canvas) {s…...

LAMP平台部署及应用

LAMP平台部署及应用 &#x1f4d2;博客主页&#xff1a; 微笑的段嘉许博客主页 &#x1f4bb;微信公众号&#xff1a;微笑的段嘉许 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐留言&#x1f4dd; &#x1f4cc;本文由微笑的段嘉许原创&#xff01; &#x1f4c…...

ubuntu20.04安装python3虚拟环境

1.安装pip3 sudo apt install python3-pip2.安装虚拟环境 sudo apt install virtualenv sudo apt install virtualenvwrapper3.修改配置文件设置环境变量 打开.bashrc并编辑 gedit ~/.bashrc在.bashrc文件后面加入下面两行 export WORKON_HOME$HOME/.virtualenvs source …...

VUE3源码分析————rollup打包

文章目录什么是rolluprollup打包和webpack打包的区别rollup打包准备一、安装yarn开始rollup打包一、初始化二、package.json文件配置三、新建并配置打包文件夹四、下载rollup及打包执行文件五、文件大致分布![image.png](https://img-blog.csdnimg.cn/img_convert/66f1a85ff57d…...

【JavaScript】前端实现电子签名:

文章目录一、效果:二、实现:三、扩展一、效果: 二、实现: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"vie…...

Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Feb 2023)

Windows 11, version 22H2&#xff0c;2023 年 2 月 更新 请访问原文链接&#xff1a;https://sysin.org/blog/windows-11/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org 全新推出 Windows 11 全新 Windows 体验&#x…...

【java】Spring Cloud --Spring Cloud Alibaba 教程

文章目录Spring Cloud Alibaba是什么Spring Cloud AlibabaSpring Cloud Alibaba 组件Spring Cloud Alibaba 的应用场景Spring Cloud 两代实现组件对比Spring Cloud Alibaba 版本依赖Spring Cloud Alibaba 组件版本关系Spring Cloud Alibaba NacosNacos 的特性服务发现服务健康监…...

通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作增加编程要求

2.编程要求&#xff1a; 1&#xff09;结构体封装 typedef struct{ char* cmd_arr; //命令行字符串 gpio_t* gpiox;//GPIO组号 unsigned int pin; //引脚编号 status_t status; //LED灯状态 void(*gpio_write_pin)(gpio_t* gpiox,unsigned int pin,status_t status); }cmd_t; 2…...

银行家算法

银行家算法 银行家算法是一种用来避免操作系统死锁出现的有效算法&#xff0c;所以在引入银行家算法的解释之前&#xff0c;有必要简单介绍一下死锁的概念。 一、死锁 死锁&#xff1a;是指两个或两个以上的进程在执行过程中&#xff0c;由于竞争资源或者由于彼此通信而造成…...

181、【动态规划】leetcode ——72. 编辑距离(C++版本)

题目描述 原题链接&#xff1a;72. 编辑距离 解题思路 动态规划五步曲&#xff1a; &#xff08;1&#xff09;dp[i][j]含义&#xff1a; 以word1[i - 1]和word2[j - 1]结尾子串&#xff0c;经过最少次增删改后&#xff0c;可让word1变为word2的步数。dp中的i对应word1中的i…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...