右饱和:
当x趋向于正无穷时,函数的导数趋近于0,此时称为右饱和。
左饱和:
当x趋向于负无穷时,函数的导数趋近于0,此时称为左饱和。
饱和函数和非饱和函数:
当一个函数既满足右饱和,又满足左饱和,则称为饱和函数,否则称为非饱和函数。
常用的饱和激活函数和非饱和激活函数:
饱和激活函数有如Sigmoid和tanh,非饱和激活函数有ReLU;相较于饱和激活函数,非饱和激活函数可以解决“梯度消失”的问题,加快收敛。
下面我们进行分析:
Sgimoid函数:
sigmoid(x)=11+e−xsigmoid(x)=\frac{1}{1+e^{-x}}sigmoid(x)=1+e−x1​,其导数为sigmoid(x)=e−x(1+e−x)2sigmoid(x)=\frac{e^{-x}}{(1+e^{-x})^2}sigmoid(x)=(1+e−x)2e−x​,图像如下:

可以看出sigmoid的导数最大值为0.25,在进行反向传播时,各层的梯度(均小于0.25)相乘很容易造成梯度为0,也就是“梯度消失”。
tanh函数:
tanh(x)=ex−e−xex+e−xtanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}tanh(x)=ex+e−xex−e−x​,其导数为4e2x(e2x+1)2\frac{4e^{2x}}{(e^{2x}+1)^2}(e2x+1)24e2x​,图像如下:

可以看出,相较于Sigmoid函数有所改善,但导数仍小于1,不能避免梯度消失的情况。
ReLU函数:
该函数与其导函数的图像如下


可以看出ReLu的导函数在正数部分为1,不会造成梯度消失和梯度爆炸。但反向传播时一旦学习率没有设置好,使得某个神经元的ReLu 输入为负数,则会导致该神经元不再更新,这就是神经元死亡的现象,ReLu有一些变体对该问题进行了处理。

本文参照:https://blog.csdn.net/qq_42422981/article/details/89561955,该文中对sigmoig、tanh、ReLu及其变种进行了讲解,大家可以参考一下。

饱和和非饱和激活函数相关推荐

  1. 梯度消失、梯度爆炸、过拟合问题之神经网络应对方案:数据预处理、批量归一化、非饱和激活函数、梯度缩放和梯度裁剪、权重初始化、提前终止、集成学习、l1l2、Dropout

    数据预处理.批量归一化Batch Normalization.非饱和激活函数.梯度缩放(Gradient Scaling)和梯度裁剪(Gradient Clipping).权重初始化(Xavier+H ...

  2. 3D图像重建中的颜色预测误差研究

    目录 整体思路: 1.本课题的目的.意义 1. 描述图像 2. 标注图像 3.CNN 3D图像重建中的颜色预测误差研究 摘 要 1 绪 论 1.1背景与意义 1.2 课题研究内容 1.3 3D重建国内 ...

  3. 卷积神经网络的深入理解-基础篇(卷积,激活,池化,误差反传)

    卷积神经网络的深入理解-基础篇 一.卷积(convolution) 1.无padding时 2.有padding时 3.卷积与全连接 通道数(一般一张彩色图像为三通道RGB) 二.激活(激活函数)(持 ...

  4. 饱和非线性、非饱和非线性

    论文AlexNet中提到饱和非线性.非饱和非线性神经元 1.先说一下线性和和非线性 线性linear,指量与量之间按比例.成直线的关系,在数学上可以理解为一阶导数为常数的函数: 非线性non-line ...

  5. 深度学习中几种常见的激活函数理解与总结

    学习神经网络的时候我们总是听到激活函数这个词,而且很多资料都会提到常用的激活函数,比如Sigmoid函数.tanh函数.Relu函数.肯定很多人刚开始和我一样一头雾水,接下来就让我们详细了解一下激活函 ...

  6. Homepage Machine Learning Algorithm 浅谈深度学习中的激活函数 - The Activation Function in Deep Learning

    原文地址:http://www.cnblogs.com/rgvb178/p/6055213.html 版权声明:本文为博主原创文章,未经博主允许不得转载. 激活函数的作用 首先,激活函数不是真的要去激 ...

  7. 神经网络中常用的激活函数

    原文地址:http://www.cnblogs.com/rgvb178/p/6055213.html 版权声明:本文为博主原创文章,未经博主允许不得转载. 激活函数的作用 首先,激活函数不是真的要去激 ...

  8. 卷积神经网络(CNN)中,卷积层、激活函数、池化层、全链接层术语解析

    本文内容转自https://www.cnblogs.com/zf-blog/p/6075286.html和https://www.cnblogs.com/rgvb178/p/6055213.html ...

  9. 浅谈深度学习中的激活函数

    原址 激活函数的作用 首先,激活函数不是真的要去激活什么.在神经网络中,激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题. 比如在下面的这个问题中: 如上图( ...

  10. 为什么使用非线性激活函数?常见的非线性激活函数及优缺点对比

    为何使用非线性激活函数? ​ 如上图的神经网络,在正向传播过程中,若使用线性激活函数(恒等激励函数),即令,则隐藏层的输出为 即 可以看到使用线性激活函数神经网络只是把输入线性组合再输出,所以当有很多 ...

最新文章

  1. 在ubuntu 16.04.5 LTS上使用Python 2.7生成带logo的二维码实战
  2. 全球及中国水彩调色板行业销售前景与投资商机研究报告2022版
  3. 程序安装后依然是老版主页的修改办法
  4. C#中动态加载卸载类库
  5. 求细胞数量pascal题解
  6. android remote shell,关于 Appium V1.7.2 新增的唯一安卓可执行 mobile 命令 shell 的疑问...
  7. OpenCV2和OpenCV3兼容安装
  8. 使用html2canvas将html标签转化为图片
  9. e class connect.php,帝国CMS6.6程序剖析——e/class/connect.php
  10. 新手降NAT网络第十步曲,小编提供思路。
  11. python 消息队列 go_Python并发编程-RabbitMq消息队列
  12. UE4 C++:Interface接口
  13. linux vim golang 插件,golang vim 插件设置
  14. 空间解析几何 | 曲面的切平面与二元函数全微分的几何意义
  15. Unity获取系统信息SystemInfo(CPU、显卡、操作系统等信息)
  16. nasm ces纠正性训练 nsca-cpt体能训练 pes cscs 体能训练 acsm
  17. python操作ymal文件之PyYAML库的使用
  18. HC32L110(五) Ubuntu20.04 VSCode的Debug环境配置
  19. RAISERROR 提示变量问题
  20. 数据API集合【转载】

热门文章

  1. 【Unity开发小技巧】Unity组合键的代码编写
  2. 【LOJ6198】谢特(后缀自动机)(01Trie)(dsu on tree)
  3. LOJ#6198. 谢特【后缀自动机/数组 + Trie树查异或最大值 + Trie树合并】
  4. oracle linux 环境变量
  5. 某云盘下载工具(IDM,Aria2)速度测试
  6. excel删除无尽空白行_史上最简单的Excel工资条制作方法,实用收藏!
  7. Java各版本的区别
  8. 【技能积累】写邮件时的常用表达
  9. mt950报文解析_MT报文有两种格式
  10. 论文阅读:Negative Lexically Constrained Decoding for Paraphrase Generation