神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)

神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)常规sigmoid和tanhsigmoid特点:可以解释,比如将0-1之间的取值解释成一个神经元的激活率(firingrate)缺陷:有饱和区域,是软饱和,在大的正数和负数作为输入的时候,梯度就会变成零,使得神经元基本不能更新。只有…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)

常规 sigmoid 和 tanh

sigmoid


这里写图片描述

这里写图片描述

特点:可以解释,比如将0-1之间的取值解释成一个神经元的激活率(firing rate)

缺陷:

  1. 有饱和区域,是软饱和,在大的正数和负数作为输入的时候,梯度就会变成零,使得神经元基本不能更新。
  2. 只有正数输出(不是zero-centered),这就导致所谓的zigzag现象:


这里写图片描述

详细说明:


这里写图片描述


3 . 计算量大(exp)

tanh

tanh函数定义如下:


这里写图片描述

激活函数形状:


这里写图片描述

tanh和sigmoid函数是具有一定的关系的,可以从公式中看出,它们的形状是一样的,只是尺度和范围不同。

tanh是zero-centered,但是还是会饱和。

ReLU 大家族

ReLU


这里写图片描述

CNN中常用。对正数原样输出,负数直接置零。在正数不饱和,在负数硬饱和。relu计算上比sigmoid或者tanh更省计算量,因为不用exp,因而收敛较快。但是还是非zero-centered。

relu在负数区域被kill的现象叫做dead relu,这样的情况下,有人通过初始化的时候用一个稍微大于零的数比如0.01来初始化神经元,从而使得relu更偏向于激活而不是死掉,但是这个方法是否有效有争议。

LeakyReLU


这里写图片描述

为了解决上述的dead ReLU现象。这里选择一个数,让负数区域不在饱和死掉。这里的斜率都是确定的。

PReLU

parametric rectifier:

f(x) = max(ax,x)

但是这里的a不是固定下来的,而是可学习的。

ELU


这里写图片描述

具有relu的优势,且输出均值接近零,实际上prelu和LeakyReLU都有这一优点。有负数饱和区域,从而对噪声有一些鲁棒性。可以看做是介于relu和LeakyReLU之间的一个东西。当然,这个函数也需要计算exp,从而计算量上更大一些。

大一统:Maxout

maxout是通过分段线性函数来拟合所有可能的凸函数来作为激活函数的,但是由于线性函数是可学习,所以实际上是可以学出来的激活函数。具体操作是对所有线性取最大,也就是把若干直线的交点作为分段的界,然后每一段取最大。

maxout可以看成是relu家族的一个推广。

缺点在于增加了参数量。

更多相关见以前整理的一篇:深度学习中的各种tricks_2.0_maxout

2018年04月22日21:53:22

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

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

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


相关推荐

  • C语言统计一个字符串中单词的个数「建议收藏」

    C语言统计一个字符串中单词的个数

    2022年2月5日
    52
  • 单模光纤和多模光纤的区别,以及作用

    单模光纤和多模光纤的区别,以及作用按传输模式分按光在光纤中的传输模式可分为:单模光纤和多模光纤。单模光纤传输距离远远大于多模光纤单模光纤只可以传送一种单一光波多模光纤可以传送多种光波单模比多模要贵,要好如果距离短,首选多模。因为LED发射/接收机比单模需要的激光便宜得多。如果距离大于5英里,单模光纤最佳。另外一个要考虑的问题是带宽:如果将来的应用可能包括传输大带宽数据信号,那么单模将是最佳选择。总结起来:L…

    2022年4月19日
    41
  • MATLAB中meshgrid函数用法

    MATLAB中meshgrid函数用法meshgrid是MATLAB中用于生成网格采样点的函数。在计算机中进行绘图操作时,通常会给出如z=x^2+y^2会给出表格数据,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x,y)。表中一共有7*7=49个数据,我们分别标出来,得到下图 试问如何用MATLAB函数画出此图

    2022年6月6日
    100
  • EJB初步学习

    EJB初步学习 今天简单学习了传说中的EJB,首先总的感觉,就是他的最重要的一个特点吧,就是能够使远程用户访问到本地或是服务器上的资源服务器。打个比方吧,传统的,还记得我们的第一个JAVA项目吧,那是个简单的对数据库增删改查的操作,用简单的界面来显示数据。那么当我们把这个项目打包发布之后,事必要把你自己的数据库也贡献出去,你做的软件在进行增删改查时也就只能对你机子上的一个数据库,别人如果想要对你这个数据库进

    2022年9月30日
    3
  • Python3.X出现AttributeError: module ‘urllib’ has no attribute ‘urlopen’错误[通俗易懂]

    研究用Python写爬虫,下载一个网页。报错代码如下importurllibdefgetHtml(url):page=urllib.urlopen(url)html=page.read()returnhtmlhtml=getHtml(“http://www.baidu.com”)print(html)运行时报错:Attribute

    2022年4月12日
    81
  • Hadoop面试题总结「建议收藏」

    Hadoop面试题总结「建议收藏」Hadoop面试题总结1.hadoop的TextInputFormat作用是什么?如何自定义实现?InputFormat会在map操作之前对数据进行两方面的预处理:gitSplits,返回的是InputSplit数组,对数据进行split切片,每一个切片都需要一个map任务去处理。getRecordReader,返回的是RecordReader对象,将每个切片中的数据转换为<k…

    2022年6月16日
    31

发表回复

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

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