当前位置: 首页 > 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…...

别再死记硬背MIPI状态转换图了!用Python脚本模拟单向/双向Data Lane状态机

用Python脚本动态解析MIPI状态机&#xff1a;从理论到实践的可视化之旅 每次打开MIPI协议文档看到那些密密麻麻的状态转换图&#xff0c;是不是感觉像在解读外星密码&#xff1f;作为嵌入式开发者&#xff0c;我们需要的不是死记硬背那些LP-11→LP-01的箭头指向&#xff0c;而…...

避坑指南:PICO空间网格开发常见问题排查(视频透视/组件配置/真机调试)

PICO空间网格开发实战&#xff1a;视频透视配置与真机调试全解析 在混合现实&#xff08;MR&#xff09;开发领域&#xff0c;PICO设备凭借其出色的空间感知能力为开发者提供了广阔的创新空间。然而&#xff0c;当我们将Unity引擎与PICO硬件结合进行空间网格开发时&#xff0c;…...

Wan2.2-I2V-A14B开源大模型部署:PyTorch 2.4+CUDA 12.4兼容性验证

Wan2.2-I2V-A14B开源大模型部署&#xff1a;PyTorch 2.4CUDA 12.4兼容性验证 1. 镜像概述与核心价值 Wan2.2-I2V-A14B是一款专注于文本到视频生成的开源大模型&#xff0c;其私有部署镜像经过深度优化&#xff0c;能够充分发挥RTX 4090D显卡的性能优势。这个镜像最大的特点在…...

如何通过Cowabunga Lite实现iOS安全定制与个性体验

如何通过Cowabunga Lite实现iOS安全定制与个性体验 【免费下载链接】CowabungaLite iOS 15 Customization Toolbox 项目地址: https://gitcode.com/gh_mirrors/co/CowabungaLite 1. 三分钟完成首次配置&#xff1a;从连接到应用的极简流程 当你第一次打开Cowabunga Lit…...

RobotStudio机器人轨迹规划:从工件坐标到流畅路径的实战指南

1. 工件坐标系的创建与校准 在RobotStudio中规划机器人轨迹的第一步&#xff0c;就是建立准确的工件坐标系。这就像盖房子前要先打好地基&#xff0c;坐标系就是机器人运动的"地基"。我见过不少新手直接开始示教点位&#xff0c;结果发现机器人总是跑偏&#xff0c;就…...

新手入门:借助快马AI实现你的第一个超能力选择网页

作为一个刚接触编程的新手&#xff0c;我最近想尝试做一个有趣的网页项目。看到网上那些酷炫的交互效果&#xff0c;总觉得很神奇但又无从下手。直到发现了InsCode(快马)平台&#xff0c;它让我这个小白也能轻松实现"超能力选择器"这样的创意想法。 项目构思 我想做一…...

Qwen3-8B镜像站新手教程:如何选择模型并进行首次提问

Qwen3-8B镜像站新手教程&#xff1a;如何选择模型并进行首次提问 1. 认识Qwen3-8B&#xff1a;你的智能AI助手 Qwen3-8B是Qwen系列最新一代大型语言模型&#xff0c;拥有80亿参数&#xff0c;在推理能力、指令执行和多语言支持方面表现出色。这个模型特别适合个人开发者和小型…...

新手避坑指南:在Ubuntu 20.04 ROS Noetic下搞定宇树Z1机械臂Gazebo仿真(附依赖安装全流程)

宇树Z1机械臂ROS仿真全流程避坑指南&#xff1a;从零搭建到Gazebo控制 第一次在Ubuntu 20.04上配置宇树Z1机械臂的ROS Noetic仿真环境时&#xff0c;我几乎踩遍了所有可能的坑——依赖版本冲突、编译报错、环境变量配置错误...如果你也在经历类似的痛苦&#xff0c;别担心&…...

实时口罩检测-通用镜像效果展示:绿色框已戴,红色框未戴,一目了然

实时口罩检测-通用镜像效果展示&#xff1a;绿色框已戴&#xff0c;红色框未戴&#xff0c;一目了然 1. 开箱即用的口罩检测方案 在公共场所管理中&#xff0c;快速识别人员是否佩戴口罩一直是个实际需求。传统方法要么需要专业设备&#xff0c;要么准确率不高。今天要介绍的…...

超滤膜行业领先公司

《2026年超滤膜权威排名&#xff1a;深圳市洛哈斯水处理技术有限公司何以凭借AI智控技术领跑行业&#xff1f;》在2026年的深度测评中&#xff0c;深圳市洛哈斯水处理技术有限公司凭借其行业领先的“AIoT智能膜系统”与卓越的长期运行稳定性&#xff0c;综合表现排名第一&#…...