激活函数ReLU、Leaky ReLU、PReLU和RReLU

激活函数ReLU、Leaky ReLU、PReLU和RReLU“激活函数”能分成两类——“饱和激活函数”和“非饱和激活函数”。sigmoid和tanh是“饱和激活函数”,而ReLU及其变体则是“非饱和激活函数”。使用“非饱和激活函数”的优势在于两点:1.首先,“非饱和激活函数”能解决所谓的“梯度消失”问题。2.其次,它能加快收敛速度。Sigmoid函数需要一个实值输入压缩至[0,1]的范围σ(x)=1/…

大家好,又见面了,我是你们的朋友全栈君。

“激活函数”能分成两类——“饱和激活函数”和“非饱和激活函数”。

激活函数ReLU、Leaky ReLU、PReLU和RReLU

sigmoid和tanh是“饱和激活函数”,而ReLU及其变体则是“非饱和激活函数”。使用“非饱和激活函数”的优势在于两点:
    1.首先,“非饱和激活函数”能解决所谓的“梯度消失”问题。
    2.其次,它能加快收敛速度。
    Sigmoid函数需要一个实值输入压缩至[0,1]的范围
    σ(x) = 1 / (1 + exp(−x))
    tanh函数需要讲一个实值输入压缩至 [-1, 1]的范围
    tanh(x) = 2σ(2x) − 1
ReLU
    ReLU函数代表的的是“修正线性单元”,它是带有卷积图像的输入x的最大函数(x,o)。ReLU函数将矩阵x内所有负值都设为零,其余的值不变。ReLU函数的计算是在卷积之后进行的,因此它与tanh函数和sigmoid函数一样,同属于“非线性激活函数”。这一内容是由Geoff Hinton首次提出的。

ReLU 的缺点:
训练的时候很”脆弱”,很容易就”die”了
例如,一个非常大的梯度流过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了,那么这个神经元的梯度就永远都会是 0.
如果 learning rate 很大,那么很有可能网络中的 40% 的神经元都”dead”了。
ELUs
    ELUs是“指数线性单元”,它试图将激活函数的平均值接近零,从而加快学习的速度。同时,它还能通过正值的标识来避免梯度消失的问题。根据一些研究,ELUs分类精确度是高于ReLUs的。下面是关于ELU细节信息的详细介绍:

    激活函数ReLU、Leaky ReLU、PReLU和RReLU

 

Leaky ReLUs
    ReLU是将所有的负值都设为零,相反,Leaky ReLU是给所有负值赋予一个非零斜率。Leaky ReLU激活函数是在声学模型(2013)中首次提出的。以数学的方式我们可以表示为:

    激活函数ReLU、Leaky ReLU、PReLU和RReLUai是(1,+∞)区间内的固定参数。

参数化修正线性单元(PReLU)
    PReLU可以看作是Leaky ReLU的一个变体。在PReLU中,负值部分的斜率是根据数据来定的,而非预先定义的。作者称,在ImageNet分类(2015,Russakovsky等)上,PReLU是超越人类分类水平的关键所在。
随机纠正线性单元(RReLU)
    “随机纠正线性单元”RReLU也是Leaky ReLU的一个变体。在RReLU中,负值的斜率在训练中是随机的,在之后的测试中就变成了固定的了。RReLU的亮点在于,在训练环节中,aji是从一个均匀的分布U(I,u)中随机抽取的数值。形式上来说,我们能得到以下结果:

    激活函数ReLU、Leaky ReLU、PReLU和RReLU

总结
    下图是ReLU、Leaky ReLU、PReLU和RReLU的比较:

    激活函数ReLU、Leaky ReLU、PReLU和RReLU

 

    PReLU中的ai是根据数据变化的;

    Leaky ReLU中的ai是固定的;

    RReLU中的aji是一个在一个给定的范围内随机抽取的值,这个值在测试环节就会固定下来。

 

 转载:http://i.ifeng.com/lady/vnzq/news?m=1&aid=124686188&mid=2EjJF3&all=1&p=2

关于激活函数比较优秀的博客

1、https://blog.csdn.net/Leo_Xu06/article/details/53708647

(补充,对于sigmoid函数,权重w越大,曲线越倾斜)

2、https://blog.csdn.net/guorongronghe/article/details/70174476

3、https://blog.csdn.net/weixin_42057852/article/details/84644348

4、https://blog.csdn.net/u011684265/article/details/78039280

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147876.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库基础:select基本查询语句

    数据库基础:select基本查询语句数据库基本查询语句规范为:select区域from表名查询指定表select*from表名*:代表所有列示例:select*fromTL_REQUEST查询指定列select列名from表名列名:代表从指定的列名中查找,:如果是查找对应的多列,则用英文逗号间隔示例:selectBU_NOfromTL_REQUEST…

    2022年6月13日
    27
  • Win7、Win10中Protel99se不能加载库文件解决方法「建议收藏」

    Win7、Win10中Protel99se不能加载库文件解决方法「建议收藏」Win7以后系统中Protel99se不能加载库文件解决方法在win7下安装Protel99se会出现无法添加原理图库,元件库的情况。如图,提示“filenotrecognized”。方法二:利用原理图FindComponent功能:首先,添加原理图库,在**.sch文件中点击“Find”(下图左)在“Path”中找到存放设计的文件夹,点击“Findnow”(下图右)再点击“close”即可;2)PCB库的添加如果在C:\Windows下找不到Advpcb

    2022年5月29日
    89
  • 设计模式之桥接(bridge)模式

    在现实生活中,我们常常会用到两种或多种类型的笔,比如毛笔和蜡笔。假设我们需要大、中、小三种类型的画笔来绘制12中不同的颜色,如果我们使用蜡笔,需要准备3*12=36支。但如果使用毛笔的话,只需要提供3

    2021年12月19日
    50
  • Django(10)ORM模型介绍[通俗易懂]

    Django(10)ORM模型介绍[通俗易懂]前言随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了:1.SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句。2.

    2022年7月28日
    5
  • python中多个if语句用法_if语句的用法

    python中多个if语句用法_if语句的用法python中if语句用法以下实例通过使用if…elif…else语句判断数字是正数、负数或零:推荐:《python教程》实例(Python3.0+)#Filename:test.py#authorby:www.php.cn#用户输入数字num=float(input(“输入一个数字:”))ifnum>0:print(“正数”)elifnum==…

    2022年9月26日
    0
  • java传递二维数组_java二维数组

    java传递二维数组_java二维数组数组–是用来存储一组相同数据类型的数据的容器;数组本身是一个引用数据类型[]数组内部存储的元素?可以是基本数据类型;int[]也可以是引用数据类型;String[]引用数据类型;StringMathScanner想要创建一个数组–里面存储好多个小数组int[],如何做?二维数组1.数组的定义/声明;int[][]x;2.数组的初始化;静态初始化;–有长度有元素int[][]x={{3,…

    2022年4月29日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号