一句话概括:不用simgoid和tanh作为激活函数,而用ReLU作为激活函数的原因是:加速收敛。

因为sigmoid和tanh都是饱和(saturating)的。何为饱和?个人理解是把这两者的函数曲线和导数曲线plot出来就知道了:他们的导数都是倒过来的碗状,也就是,越接近目标,对应的导数越小。而ReLu的导数对于大于0的部分恒为1。于是ReLU确实可以在BP的时候能够将梯度很好地传到较前面的网络。

ReLU(线性纠正函数)取代sigmoid函数去激活神经元。

定义为:

代码:

x=-10:0.001:10;
relu=max(0,x);
%分段函数的表示方法如下
%y=sqrt(x).*(x>=0&x<4)+2*(x>=4&x<6)+(5-x/2).*(x>=6&x<8)+1*(x>=8);
reluDer=0.*(x<0)+1.*(x>=0);
figure;
plot(x,relu,‘r‘,x,reluDer,‘b--‘);
title(‘Relu函数max(0,x)(实线)及其导数0,1(虚线)‘);
legend(‘Relu原函数‘,‘Relu导数‘);
set(gcf,‘NumberTitle‘,‘off‘);
set(gcf,‘Name‘,‘Relu函数(实线)及其导数(虚线)‘);

输出:

可见,ReLU 在x<0 时硬饱和。由于 x>0时导数为 1,所以,ReLU 能够在x>0时保持梯度不衰减,从而缓解梯度消失问题。但随着训练的推进,部分输入会落入硬饱和区,导致对应权重无法更新。这种现象被称为“神经元死亡”。

ReLU还经常被“诟病”的一个问题是输出具有偏移现象[7],即输出均值恒大于零。偏移现象和 神经元死亡会共同影响网络的收敛性。

人工神经网络之激活函数 -RELU函数相关推荐

  1. 人工神经网络之激活函数 -tanh函数

    tanh函数 tanh(x)=e2x−1e2x+1tanh′(x)=1−tanh(x)2 证明 ∂tanh(x)∂x=(1−2e2x+1)′=2⋅2e2x(e2x+1)2=4e2x(e2x+1)2=( ...

  2. 人工神经网络之激活函数 -softmax函数

    softmax 可以理解为归一化,如目前图片分类有一百种,那经过 softmax 层的输出就是一个一百维的向量.向量中的第一个值就是当前图片属于第一类的概率值,向量中的第二个值就是当前图片属于第二类的 ...

  3. 人工神经网络之激活函数总结

    激活函数: 传统神经网络中最常用的两个激活函数,Sigmoid系(Logistic-Sigmoid.Tanh-Sigmoid)被视为神经网络的核心所在.从数学上来看,非线性的Sigmoid函数对中央区 ...

  4. 深度学习——人工神经网络中为什么ReLu要好过于tanh和sigmoid function?

    参考吴恩达的深度学习课程. 先看看各个激活函数图: 第一个问题:为什么引入非线性激励函数? 如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很 ...

  5. 人工神经网络中为什么ReLu要好过于tanh和sigmoid function?

    先看sigmoid.tanh和RelU的函数图: 第一,采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法和指数运算,计算量相对大,而采用Relu激活函数 ...

  6. 深入理解ReLU函数(ReLU函数的可解释性)

    本篇博文主要来源于对文章 Unwrapping The Black Box of Deep ReLU Networks: Interpretability, Diagnostics, and Simp ...

  7. 深度学习中的sigmod函数、tanh函数、ReLU函数

    1. sigmod核函数  sigmod函数的数学公式为:    函数取值范围(0,1),函数图像下图所示:  二. tanh(x) 函数  tanh(x)函数的数学公式为:  函数取值范围(-1,1 ...

  8. relu函数_【AI初识境】激活函数:从人工设计(sigmoid,relu)到自动搜索(swish)

    这是专栏<AI初识境>的第4篇文章.所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法. 在神经网络中,有一个看似不起眼但是非常重要的概念,那就是激活函数.激活函数模型固然理解起来简 ...

  9. relu函数_从 ReLU 到 GELU,一文概览神经网络的激活函数

    点击"机器学习算法与Python实战","置顶"公众号 重磅干货,第一时间送达 选自 | mlfromscratch    作者 | Casper Hansen ...

最新文章

  1. tf.keras.layers.Resizing 示例 改变维度的层
  2. ExpressJs server中Router的设置
  3. 脑细胞膜等效神经网路12分类实例
  4. Android之Android实现浮层的上下滑动(支持内部添加View)
  5. JavaScript语言基础14
  6. python写一个表白程序-用Python做一个情人节表白神器
  7. MMSE法用于MIMO系统
  8. python中grid函数_Python-Numpy模块Meshgrid函数
  9. ubuntu安装python3.5+pycharm+anaconda+opencv+docker+nvidia-docker+tensorflow+pytorch+Cmake3.8
  10. c语言int的存储形式,C语言变量的存储类型有3种,即int型、float型和char型
  11. 名下房产、汽车、存款被查封后,王思聪要筹拍电影了...
  12. MongoDB教程——第2天
  13. 聚合数据接口,提供开放API
  14. 行为型模式——状态模式(十一)
  15. sqli-labs(19)
  16. xshell 与 xftp 免费版使用
  17. ContactsProvider系统源码导入配置AndroidStudio编译环境
  18. 数学建模笔记(三)论文写作:论文排版
  19. jsonp跨域的原理
  20. lenovo L480 进入bios_rx5700刷bios秒变rx5700xt!rx5700刷rx5700xt bios图文教程

热门文章

  1. 1040 有几个PAT (25分)——18行代码AC
  2. 【进程的同步和互斥,看懂这张图就够了!】
  3. 15行代码AC——习题3-3 数数字 (UVa1225,Digit Counting)
  4. Python 测试开发教程
  5. (*长期更新)软考网络工程师学习笔记——Section 5 数据链路层
  6. Web前端开发笔记——第三章 CSS语言 第二节 CSS选择器
  7. 手机更新找不到计算机,为什么手机更新换代这么快,电脑的更新却没有这么快呢...
  8. db2 如何导出insert语句_MySQL 执行脚本/导入/导出数据
  9. c++ 单例模式_Java面试题总结之设计模式、网络基础、常用算法
  10. oracle 自治数据库 培训,Oracle数据库掌门人,Andrew Mendelsohn 谈自治数据库