人工神经网络之激活函数 -RELU函数
一句话概括:不用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函数相关推荐
- 人工神经网络之激活函数 -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=( ...
- 人工神经网络之激活函数 -softmax函数
softmax 可以理解为归一化,如目前图片分类有一百种,那经过 softmax 层的输出就是一个一百维的向量.向量中的第一个值就是当前图片属于第一类的概率值,向量中的第二个值就是当前图片属于第二类的 ...
- 人工神经网络之激活函数总结
激活函数: 传统神经网络中最常用的两个激活函数,Sigmoid系(Logistic-Sigmoid.Tanh-Sigmoid)被视为神经网络的核心所在.从数学上来看,非线性的Sigmoid函数对中央区 ...
- 深度学习——人工神经网络中为什么ReLu要好过于tanh和sigmoid function?
参考吴恩达的深度学习课程. 先看看各个激活函数图: 第一个问题:为什么引入非线性激励函数? 如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很 ...
- 人工神经网络中为什么ReLu要好过于tanh和sigmoid function?
先看sigmoid.tanh和RelU的函数图: 第一,采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法和指数运算,计算量相对大,而采用Relu激活函数 ...
- 深入理解ReLU函数(ReLU函数的可解释性)
本篇博文主要来源于对文章 Unwrapping The Black Box of Deep ReLU Networks: Interpretability, Diagnostics, and Simp ...
- 深度学习中的sigmod函数、tanh函数、ReLU函数
1. sigmod核函数 sigmod函数的数学公式为: 函数取值范围(0,1),函数图像下图所示: 二. tanh(x) 函数 tanh(x)函数的数学公式为: 函数取值范围(-1,1 ...
- relu函数_【AI初识境】激活函数:从人工设计(sigmoid,relu)到自动搜索(swish)
这是专栏<AI初识境>的第4篇文章.所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法. 在神经网络中,有一个看似不起眼但是非常重要的概念,那就是激活函数.激活函数模型固然理解起来简 ...
- relu函数_从 ReLU 到 GELU,一文概览神经网络的激活函数
点击"机器学习算法与Python实战","置顶"公众号 重磅干货,第一时间送达 选自 | mlfromscratch 作者 | Casper Hansen ...
最新文章
- tf.keras.layers.Resizing 示例 改变维度的层
- ExpressJs server中Router的设置
- 脑细胞膜等效神经网路12分类实例
- Android之Android实现浮层的上下滑动(支持内部添加View)
- JavaScript语言基础14
- python写一个表白程序-用Python做一个情人节表白神器
- MMSE法用于MIMO系统
- python中grid函数_Python-Numpy模块Meshgrid函数
- ubuntu安装python3.5+pycharm+anaconda+opencv+docker+nvidia-docker+tensorflow+pytorch+Cmake3.8
- c语言int的存储形式,C语言变量的存储类型有3种,即int型、float型和char型
- 名下房产、汽车、存款被查封后,王思聪要筹拍电影了...
- MongoDB教程——第2天
- 聚合数据接口,提供开放API
- 行为型模式——状态模式(十一)
- sqli-labs(19)
- xshell 与 xftp 免费版使用
- ContactsProvider系统源码导入配置AndroidStudio编译环境
- 数学建模笔记(三)论文写作:论文排版
- jsonp跨域的原理
- lenovo L480 进入bios_rx5700刷bios秒变rx5700xt!rx5700刷rx5700xt bios图文教程
热门文章
- 1040 有几个PAT (25分)——18行代码AC
- 【进程的同步和互斥,看懂这张图就够了!】
- 15行代码AC——习题3-3 数数字 (UVa1225,Digit Counting)
- Python 测试开发教程
- (*长期更新)软考网络工程师学习笔记——Section 5 数据链路层
- Web前端开发笔记——第三章 CSS语言 第二节 CSS选择器
- 手机更新找不到计算机,为什么手机更新换代这么快,电脑的更新却没有这么快呢...
- db2 如何导出insert语句_MySQL 执行脚本/导入/导出数据
- c++ 单例模式_Java面试题总结之设计模式、网络基础、常用算法
- oracle 自治数据库 培训,Oracle数据库掌门人,Andrew Mendelsohn 谈自治数据库