激活函数

一文详解激活函数 1. 什么是激活函数? 所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。然后这里也给出维基百科的定义:在计算网络中, 一个节点的激活函数(Activation Function)定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。这与神经网络中的线性感知机的行为类似。然而,只有非线性激活函数才允许这种网络仅使用少量节点来计算非平凡问题。 在人工神经网络 阅读详情

激活函数

什么是激活函数?

所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。

为什么要引入激活函数

激活函数(Activation functions)对于人工神经网络 模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。引入激活函数是为了增加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。
在这里插入图片描述

为什么要转化为非线性?

如果没有引入激活的函数,说到底还是在对线性函数的处理,线性的输入就无法转会为非线性的输出,得到结果永远是线性的就无法去拟合复杂的情况。

常用的激活函数

函数部分借鉴了 https://blog.youkuaiyun.com/tyhj_sf/article/details/79932893 博客的内容

Sigmoid函数

Sigmoid是常用的非线性的激活函数,它的数学形式如下:
f(z)=11+e−zf(z)=\frac{1}{1+e^{-z}}f(z)=1+e−z1​

Sigmoid的几何图像如下:
在这里插入图片描述

特点

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

缺点

sigmoid函数曾经被使用的很多,不过近年来,用它的人越来越少了。主要是因为它固有的一些却缺点。
缺点1: 在深度数据网络中梯度反向传递时导致梯度爆炸和梯度消失,期中梯度爆炸发生的概率非常小,而梯度消失发送的概念比较大,向看一下它的导数
在这里插入图片描述
如果我们初始化神经网络的权值是在0到1之间的随机值,由于反向传播算法的数学推导可知,梯度从后向前传播时,每传递1层梯度值就会减小为原来的0.25倍,如果神经网络隐藏层特别多,那么梯度在穿过多层后会变的非常小接近于0,即出现梯度消失的现象;当网络权值初始化在(1,+∞)(1,+\infty)(1,+∞)之间的值,则会出现梯度爆炸的情况
缺点2:Sigmoid 的 output 不是0均值(即zero-centered)。这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。 产生的一个结果就是:如x>0, f=wTx+bf=w^Tx+bf=wTx+b,那么对w求局部梯度则都为正,这样在反向传播的过程中w要么都往正方向更新,要么都往负方向更新,导致有一种捆绑的效果,使得收敛缓慢。 当然了,如果按batch去训练,那么那个batch可能得到不同的信号,所以这个问题还是可以缓解一下的。因此,非0均值这个问题虽然会产生一些不好的影响,不过跟上面提到的梯度消失问题相比还是要好很多的。
缺点3:其解析式中含有幂运算,计算机求解时相对来讲比较耗时。对于规模比较大的深度网络,这会较大地增加训练时间。

tanh函数

tanh函数解析式:
tanh(x)=ex−e−xex+x−x tanh(x) = \frac{e^x-e^{-x}}{e^x+x^{-x}} tanh(x)=ex+x−xex−e−x​
tanh函数及其导数的几何图像如下图:
在这里插入图片描述
tanh读作Hyperbolic Tangent,它解决了Sigmoid函数的不是zero-centered输出问题,然而,梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在。

Relu 函数

Relu函数的解析式:
Relu=max(0,x) Relu = max(0,x) Relu=max(0,x)
Relu函数及其导数的图像如下图所示:
在这里插入图片描述
ReLU函数其实就是一个取最大值函数,注意这并不是全区间可导的,但是我们可以取sub-gradient,如上图所示。ReLU虽然简单,但却是近几年的重要成果,有以下几大优点:
1) 解决了gradient vanishing问题 (在正区间)
2)计算速度非常快,只需要判断输入是否大于0
3)收敛速度远快于sigmoid和tanh

ReLU也有几个需要特别注意的问题:
1)ReLU的输出不是zero-centered
2)Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。有两个主要原因可能导致这种情况产生: (1) 非常不幸的参数初始化,这种情况比较少见 (2) learning rate太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法。

尽管存在这两个问题,ReLU目前仍是最常用的activation function,在搭建人工神经网络的时候推荐优先尝试!

Leaky ReLU函数(PReLU)

函数表达式:
f(x)=max(αx,x) f(x) =max(\alpha x,x) f(x)=max(αx,x)
Leaky Relu函数及其导数的图像如下图所示:
在这里插入图片描述
人们为了解决Dead ReLU Problem,提出了将ReLU的前半段设为αx\alpha xαx而非0,通常α=0.01\alpha=0.01α=0.01。另外一种直观的想法是基于参数的方法,即ParametricReLU:f(x)=max(αx,x)Parametric ReLU:f(x) = \max(\alpha x, x)ParametricReLU:f(x)=max(αx,x),其中α\alphaα
可由方向传播算法学出来。理论上来讲,Leaky ReLU有ReLU的所有优点,外加不会有Dead ReLU问题,但是在实际操作当中,并没有完全证明Leaky ReLU总是好于ReLU。

应用中如何选择合适的激活函数?

这个问题目前没有确定的方法,凭一些经验吧。
1)深度学习往往需要大量时间来处理大量数据,模型的收敛速度是尤为重要的。所以,总体上来讲,训练深度学习网络尽量使用zero-centered数据 (可以经过数据预处理实现) 和zero-centered输出。所以要尽量选择输出具有zero-centered特点的激活函数以加快模型的收敛速度。
2)如果使用 ReLU,那么一定要小心设置 learning rate,而且要注意不要让网络出现很多 “dead” 神经元,如果这个问题不好解决,那么可以试试 Leaky ReLU、PReLU 或者 Maxout.
3)最好不要用 sigmoid,你可以试试 tanh,不过可以预期它的效果会比不上 ReLU 和 Maxout.

【激活函数】SELU 激活函数 SELU (Scaled Exponential Linear Unit) SELU是对ELU激活函数的改进,通过引入自动标准化机制,使得神经网络的隐藏层在训练过程中可以自动地保持输出的均值和方差接近于1。 阅读详情

相关推荐

激活函数小结

本篇博客对一些激活函数进行总结,以便加深理解和记忆

路遥知马力,日久见人心 1335

【深度学习笔记—1】:激活函数

想必对于深度学习或多或少学过的童鞋们一定知道激活函数,本文就详细介绍以下为什么深度学习模型需要激活函数,激活函数的种类都有哪些,我们又该如何正确选择激活函数。 ∗∗本文很重要∗∗**本文很重要**∗∗本文很重要∗∗ ...

王乐予的博客 7772

激活函数使用位置,为什么使用激活函数

无论我们怎样调整权重和参数,结果都是线性的。目的:转化成神经元输出值。

ZhangJiqun&191cm&85kg 159

sigmoid函数_温故知新——激活函数及其各自的优缺点

1.什么是激活函数?所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。激活函数对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如图,在神经元中,输入(inputs )通过加权,求和后,还被作用在一个函数上,这个函数就是激活函数。2.为什么要用激活函数?如果...

weixin_39945445的博客 6265

为什么要使用激活函数,激活函数的作用

目录 1.如果没有激活函数会怎么样? 2.所以需要对线性输出做非线变换 激活函数的作用:激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。 3.常见的激活函数 3.1.Sigmoid函数 3.2.tanh函数 3.3.Relu函数 总结: 1.如果没有激活函数会怎么样? 1. 对于y=ax+b 这样的函数,当x的输入很大时,y的输出也是无限大小的,经过多层网络叠...

Jiashilin 2万+

大红球预警版-精选+自定义板块监控

这是一款简单易用的股票大单资金监控插件,兼容通达信软件,可嵌入分时图或定制版面。它以红绿圆球直观显示主力买卖情况(红球为买,绿球为卖),支持300万以上大单语音播报。插件提供实时资金流向分析、多股同时监控、自定义预警条件等功能,无需L2账号。用户可自由切换图形/列表模式,监控特定板块,并配合幻影软件实现自动交易。虽然上涨股通常红球占优,但需结合其他指标综合判断。该插件完全免费,包含详细视频教程,适合新手使用。

guleba的博客 1795

神经网络激活函数的作用是什么?

这周本来想写一篇个人笔记,关于神经网络中反向传播算法识别手写字符的实现。但是,在整理自己的思路的时候,发现本人把之前看的许多神经网络的东西都给忘了,内心很是着急啊!在看到激活函数的时候,突然不知道激活函数是干嘛用的!立马翻遍手里的纸质资料,都说的模糊不清。无奈,赶紧来网上看看!下面,我就把在网上看到的知识点,总结一下,形成读书笔记,方便大家学习!由于本人知识有限,文章有少部分参考网上,如有侵权,请

Microstrong 6万+

【TouchDesigner】三维渲染

Cmera COMP Uniform Scale(按比例缩放):沿x,y,z三个轴等比例缩放相机(通常不建议改变相机大小)。 Constrain To(约束到):让相机附属到某个指定元件上,跟随指定元件运动。 Look At(朝向):让相机在移动过程中始终面对指定的元件。 Pah SOP(相机的路径):输入SOP元件名字,为相机指定移动路径。 Geometry Comp Geometry COMP中的参数与Camera COMP中的参数用法大部分都相似。特殊的是它的instacne页面的

wangpuqing1997的博客 5459

激活函数的作用

激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题 首先我们有这个需求,就是二分类问题,如我要将下面的三角形和圆形点进行正确的分类,如下图: 利用我们单层的感知机, 用它可以划出一条线, 把平面分割开: 上图直线是由得到,那么该感知器实现预测的功能步骤如下,就是我已经训练好了一个感知器模型,后面对于要预测的样本点,带入模型中,如果y>0,那么就说明是直线的右侧,也就...

atarik@163.com 3万+

LTspice进阶技巧-031.一键加密仿真模型:LTspice Encrypt Tool实战指南

本文详细介绍了LTspice Encrypt Tool的使用方法,帮助工程师一键加密LTspice仿真模型,保护知识产权。通过图形化界面简化操作流程,支持批量加密和兼容性处理,适用于电路设计中的模型保护需求。

weixin_28304023的博客 202

从AI画稿到3D虚拟时装:Illustrator与Substance 3D的服装设计工作流

本文旨在解决传统服装与纺织品设计师在产品开发流程中,面临的“2D印花图案无法直观预见3D上身效果”、“物理打样成本高昂且周期漫长”的核心痛点。我们将介绍一套纯数字化的3D可视化工作流,核心是利用 Adobe Illustrator 进行矢量印花图案创作,通过 Adobe Substance 3D Sampler 将其转化为逼真的PBR(基于物理渲染)布料材质,并最终在 Adobe Substance 3D Stager 中,将该材质应用于3D服装模型,渲染出照片级的虚拟样衣。本指南将帮助设计师以极低的成本和

Kingsdesigner的博客 1398

23种激活函数

文章目录一、简介二、激活函数种类1、恒等函数2、单位阶跃函数3、逻辑函数4、双曲正切函数5、反正切函数6、Softsign函数7、反平方根函数(ISRU)8、线性整流函数(ReLU)9、带泄露线性整流函数(Leaky ReLU)10、参数化线性整流函数(PReLU)11、带泄露随机线性整流函数(RReLU)12、指数线性函数(ELU)13、扩展指数线性函数(SELU)14、S型线性整流激活函数(S...

梦的灰色边沿... 2万+

PCL 平面点云的凹多边形边界提取【2025最新版】

平面点云的凹多边形边界提取及边界轮廓线绘制。博客长期更新,本文最近更新时间为:2025年1月6日。

点云侠的博客 7183

激活函数(Activation Function)及十大常见激活函数

激活函数(Activation Function)、Sigmoid、tanh、ReLU、Leaky ReLU、ELU、PReLU、Softmax、Swish、Maxout、Softplus

learn more,have more 1万+

外骨骼机器人(二):自适应振荡器

振荡器是一种数学工具,可以用于实时跟踪、预测类周期信号的频率、相位、幅值等,而助行外骨骼机器人需要自动适应人体的行走频率、幅度,两者相结合,就能使助行外骨骼机器人拥有更舒适、更自然的行走步态。 ......

行者无疆的博客 4264

【实战篇】【硅基流动API+Cherry Studio搭建个人知识库全流程解析:从零到精通的超详细指南】

在人工智能技术高速发展的今天,基于大语言模型的知识库已成为开发者提效的必备工具。然而云端服务存在响应延迟、数据隐私、硬件依赖等痛点。通过硅基流动API与的深度整合,我们既能享受大模型的强大能力,又能实现本地化部署与高效管理。本文将从环境配置到高阶调优,手把手带你构建企业级知识库系统。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1082

CNN基础——激活函数

1、什么是激活函数 激活函数(Activation functions)对于人工神经网络 模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。引入激活函数是为了增加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。 2、为什么要使用激活函数? 激活函数对模型学习、理解非常复杂和非线性的函数具有重.

AI浩 2万+

【目标检测-YOLO】YOLOv5-v5.0-yolov5s网络架构详解(第一篇)

源码:GitHub - ultralytics/yolov5 at v5.0 由于YOLO v5 代码库在持续更新,如上图,有多个版本,每个版本的网络结构不尽相同。以下内容以 v5.0 为准,网络结构选用 yolov5s。 为了方便画图和理解网络结构,选用可视化工具:Netron 网页版进行可视化, 然后使用PPT作图。 在Releases · ultralytics/yolov5 · GitHub找到 v5.0中的Assets 中的yolov5s.pt并下载该权重。 下图为直接......

博观约取,厚积薄发 2万+

一文搞懂激活函数

1、什么是激活函数 神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数)。 2、激活函数的用途(为什么需要激活函数)? 1. 对于y=ax+b 这样的函数,当x的输入很大时,y的输出也是无限大小的,经过多层网络叠加后,值更加膨胀的没边了,这显然不符合我们的预期,很多情况下我们希...

ytusdc的博客 1万+

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

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

深度学习-激活函数:饱和激活函数【Sigmoid、tanh】、非饱和激活函数【ReLU、Leaky ReLU、RReLU、PReLU、ELU、Maxout】

参考资料: 深度学习中几种常见的激活函数理解与总结

u013250861的博客 8349

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

常见激活函数总结

本文介绍了常见的激活函数,包括Sigmoid 函数,Tanh 函数,ReLU (Rectified Linear Unit)、Leaky ReLU、Parametric ReLU (PReLU)、Softmax 函数、Swish 函数、GELU (Gaussian Error Linear Unit)的详细定义,优缺点,python代码,并进行了对比分析

m0_66890670的博客 3535

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

激活函数汇总

激活函数汇总

qq_54445177的博客 2496

激活函数之ReLU函数

0 前言 激活函数的引入是为了增加神经网络模型的非线性,没有激活函数每层就相当于矩阵相乘。每一层输出都是上层的输入的线性函数,无论神经网络多少层,输出都是输入的线性组合,就是最原始的感知机 加入激活函数,给神经元引入非线性因素,神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。 1 激活函数之ReLU函数 ReLU函数是目前比较火的一个激活函数,函数公式:,函...

tian_panda的博客 9万+

激活函数总结

今天我们一起探讨一下常用的几种激活函数。 激活函数的示意图如下所示: 激活函数的作用:激活函数是作用于神经网络神经元输出的函数,只有加入了非线性激活函数之后,神经网络才具备了分层的非线性映射学习能力。 激活函数可以分为线性激活函数和非线性激活函数。 一、线性激活函数 先说一下线性激活函数,此时神经网络并不能真正改善误差,因为每次迭代的梯度(导数)是相同的,网络将不能很好地训练和从数据中捕获复杂的模式。因此,线性函数可能是需要高度解释能力的简单任务的理想选择。 二、非线性激活函数 1、Sigmoid激活函

fs01234的博客 9164
上一篇: 文章翻译—Why are deep neural networks hard to train?
下一篇: 如何用python去简单的调用c的dll
AndSonder
博客等级 码龄7年 364粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值