精华内容
下载资源
问答
  • 常用激活函数比较

    2019-02-16 12:41:40
    常用激活函数比较 本文结构: 什么是激活函数为什么要用都有什么sigmoid ,ReLU, softmax 的比较如何选择 1. 什么是激活函数 如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个...

    常用激活函数比较


    本文结构:

    1. 什么是激活函数
    2. 为什么要用
    3. 都有什么
    4. sigmoid ,ReLU, softmax 的比较
    5. 如何选择

    1. 什么是激活函数

    如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数 Activation Function。



    2. 为什么要用

    如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。
    如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。


    3. 都有什么

    (1) sigmoid函数(曲线很像“S”型)

    公式:


    曲线:


    也叫 Logistic 函数,用于隐层神经元输出
    取值范围为(0,1)
    它可以将一个实数映射到(0,1)的区间,可以用来做二分类。(它不像SVM直接给出一个分类的结果,Logistic Regression给出的是这个样本属于正类或者负类的可能性是多少,当然在多分类的系统中给出的是属于不同类别的可能性,进而通过可能性来分类。
    在特征相差比较复杂或是相差不是特别大时效果比较好。

    sigmoid缺点:
    激活函数计算量大,反向传播求误差梯度时,求导涉及除法
    反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练(sigmoid的饱和性)

    下面解释为何会出现梯度消失:

    反向传播算法中,要对激活函数求导,sigmoid 的导数表达式为:


    sigmoid 原函数及导数图形如下:


    从上图可以看到,其两侧导数逐渐趋近于0 


    具有这种性质的称为软饱和激活函数。具体的,饱和又可分为左饱和与右饱和。与软饱和对应的是硬饱和, 即


    sigmoid 的软饱和性,使得深度神经网络在二三十年里一直难以有效的训练,是阻碍神经网络发展的重要原因。具体来说,由于在后向传递过程中,sigmoid向下传导的梯度包含了一个  因子(sigmoid关于输入的导数),因此一旦输入落入饱和区,的导数就会变得接近于0,导致了向底层传递的梯度也变得非常小。此时,网络参数很难得到有效训练。这种现象被称为梯度消失一般来说, sigmoid 网络在 5 层之内就会产生梯度消失现象

    此外,sigmoid函数的输出均大于0,使得输出不是0均值,这称为偏移现象,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。


    (2) Tanh函数

    公式



    f’(z)=4sigmoid‘(2z)

    曲线


    也称为双切正切函数
    取值范围为[-1,1]。
    tanh在特征相差明显时的效果会很好,在循环过程中会不断扩大特征效果。
    与 sigmoid 的区别是,tanh 是 0 均值的,因此实际应用中 tanh 会比 sigmoid 更好,然而,tanh一样具有软饱和性,从而造成梯度消失。

    (3) ReLU

    Rectified Linear Unit(ReLU) - 用于隐层神经元输出

    公式


    曲线


    输入信号 <0 时,输出都是0,>0 的情况下,输出等于输入

    ReLU 的优点:
    Krizhevsky et al. 发现使用 ReLU 得到的 SGD 的收敛速度会比 sigmoid/tanh 快很多。除此之外,当x<0时,ReLU硬饱和,而当x>0时,则不存在饱和问题。所以,ReLU 能够在x>0时保持梯度不衰减,从而缓解梯度消失问题。这让我们能够直接以监督的方式训练深度神经网络,而无需依赖无监督的逐层预训练。

    ReLU 的缺点:
    随着训练的推进,部分输入会落入硬饱和区,导致对应权重无法更新。这种现象被称为“神经元死亡”。与sigmoid类似,ReLU的输出均值也大于0,偏移现象和 神经元死亡会共同影响网络的收敛性。

    (4) softmax函数

    Softmax - 用于多分类神经网络输出

    公式


    举个例子来看公式的意思:


    就是如果某一个 zj 大过其他 z, 那这个映射的分量就逼近于 1,其他就逼近于 0,主要应用就是多分类。

    为什么要取指数,第一个原因是要模拟 max 的行为,所以要让大的更大。
    第二个原因是需要一个可导的函数。


    4. sigmoid ,ReLU, softmax 的比较

    Sigmoid 和 ReLU 比较:

    sigmoid 的梯度消失问题,ReLU 的导数就不存在这样的问题,它的导数表达式如下:


    曲线如图


    对比sigmoid类函数主要变化是:
    1)单侧抑制
    2)相对宽阔的兴奋边界
    3)稀疏激活性。

    Sigmoid 和 Softmax 区别:

    softmax is a generalization of logistic function that “squashes”(maps) a K-dimensional vector z of arbitrary real values to a K-dimensional vector σ(z) of real values in the range (0, 1) that add up to 1.

    sigmoid将一个real value映射到(0,1)的区间,用来做二分类。

    而 softmax 把一个 k 维的real value向量(a1,a2,a3,a4….)映射成一个(b1,b2,b3,b4….)其中 bi 是一个 0~1 的常数,输出神经元之和为 1.0,所以相当于概率值,然后可以根据 bi 的概率大小来进行多分类的任务。

    二分类问题时 sigmoid 和 softmax 是一样的,求的都是 cross entropy loss,而 softmax 可以用于多分类问题

    softmax是sigmoid的扩展,因为,当类别数 k=2 时,softmax 回归退化为 logistic 回归。具体地说,当 k=2 时,softmax 回归的假设函数为:


    利用softmax回归参数冗余的特点,从两个参数向量中都减去向量θ1 ,得到:


    最后,用 θ′ 来表示 θ2−θ1,上述公式可以表示为 softmax 回归器预测其中一个类别的概率为


    另一个类别概率的为


    这与 logistic回归是一致的。

    softmax建模使用的分布是多项式分布,而logistic则基于伯努利分布
      

    多个logistic回归通过叠加也同样可以实现多分类的效果,但是 softmax回归进行的多分类,类与类之间是互斥的,即一个输入只能被归为一类;多个logistic回归进行多分类,输出的类别并不是互斥的,即"苹果"这个词语既属于"水果"类也属于"3C"类别。


    5. 如何选择

    选择的时候,就是根据各个函数的优缺点来配置,例如:

    如果使用 ReLU,要小心设置 learning rate,注意不要让网络出现很多 “dead” 神经元,如果不好解决,可以试试 Leaky ReLU、PReLU 或者 Maxout.


    参考资料:
    http://feisky.xyz/machine-learning/neural-networks/active.html
    http://jishu.y5y.com.cn/qq_17754181/article/details/56495406
    https://www.zhihu.com/question/29021768
    http://blog.csdn.net/cyh_24/article/details/50593400
    http://www.itdadao.com/articles/c15a1000722p0.html
    https://www.zhihu.com/question/23765351

    展开全文
  • 一、啥是激活函数?为啥用激活函数常用的有哪些? 啥是激活函数激活函数是上层节点的输出和下层节点的输入之间的一个非线性函数关系。 为啥用激活函数?要是不用激活函数,不管多少层的神经网络说白了都是些...

    一、啥是激活函数?为啥用激活函数?常用的有哪些?

    • 啥是激活函数?激活函数是上层节点的输出下层节点的输入之间的一个非线性函数关系
    • 为啥用激活函数?要是不用激活函数,不管多少层的神经网络说白了都是些线性变换的叠加,网络的逼近能力有限,所以引入非线性函数。
    • 常用的有哪些?早期:sigmoid、tanh;近期:Relu及其改进(Leaky-ReLU、P-ReLU、R-ReLU...)、Maxout

    二、Sigmoid函数

    • Sigmoid公式、求导、图像:
    • Sigmoid的导数的图像:
    • 缺点:x较大时,导数接近0,导致参数长时间得不到更新。因此除了输出层是一个二分类问题,其他基本不用它。
    • pytorch:torch.sigmoid()

    三、Tanh函数(双曲正切)

    • tanh公式、求导、图像:
    • tanh导数图像:
    • 优缺点:解决了Sigmoid函数的不是zero-centered输出问题(y轴方向均值为0),然而仍有梯度消失(gradient vanishing)的问题和幂运算耗时的问题。
    • pytorch:torch.tanh()

    四、relu函数

    • relu公式、求导、图像
    • relu导数图像
    • relu优点:
      • 正区间解决了梯度弥散(梯度消失)
      • 计算速度非常快,只需要判断输入是否大于0
      • 收敛速度远快于sigmoid和tanh
    • relu缺点:
      • ReLU的输出不是zero-centered
      • Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新,原因:
        • 非常不幸的参数初始化,这种情况比较少见
        • learning rate太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法。

    五、其他激活函数

    • Leaky ReLU函数(PReLU):

      •  

        优缺点:不会有Dead ReLU问题,但性能还没证明比relu好

    • ELU (Exponential Linear Units) 函数:

      • 优缺点:没有Dead ReLU问题;输出的均值接近0;zero-centered。但性能也不一定比relu好

    • MaxOut函数

      • maxout相当于一层神经网络,对于输入特征 X=(x1,x2,……xd),其函数如下:

        • 权重w是一个大小为(d,m,k)三维矩阵,b是一个大小为(m,k)的二维矩阵,这两个就是我们需要学习的参数。如果我们设定参数k=1,这时网络就类似于普通的MLP网络。

      • 参考经验:

        • 最好不用sigmoid,不如tanh,更不如ReLU 和 Maxout

        • 尽量使用zero-centered数据 (可以经过数据预处理实现) 和zero-centered输出。所以要尽量选择输出具有zero-centered特点的激活函数以加快模型的收敛速度。

        • 如果使用 ReLU,那么一定要小心设置 learning rate,而且要注意不要让网络出现很多 “dead” 神经元,如果这个问题不好解决,那么可以试试 Leaky ReLU、PReLU 或者 Maxout.

    【参考资料】

     

    展开全文
  • 常用激活函数的总结与比较

    千次阅读 2017-08-11 14:07:46
    本文为 CS231n 中关于激活函数部分的笔记。 激活函数(Activation Function)能够把输入的特征保留并映射下来。 Sigmoid Sigmoid 非线性函数将输入映射到 (0,1)(0,1) 之间。它的数学公式为:σ(x)=11+e...

    本文为 CS231n 中关于激活函数部分的笔记。

    激活函数(Activation Function)能够把输入的特征保留并映射下来。

    Sigmoid

    Sigmoid 非线性函数将输入映射到 (0,1)(0,1) 之间。它的数学公式为:σ(x)=11+exσ(x)=11+e−x

    历史上,sigmoid 函数曾非常常用,然而现在它已经不太受欢迎,实际很少使用了,因为它主要有两个缺点:

    1. 函数饱和使梯度消失

    sigmoid 神经元在值为 0 或 1 的时候接近饱和,这些区域,梯度几乎为 0。因此在反向传播时,这个局部梯度会与整个代价函数关于该单元输出的梯度相乘,结果也会接近为 0 。

    这样,几乎就没有信号通过神经元传到权重再到数据了,因此这时梯度就对模型的更新没有任何贡献。

    除此之外,为了防止饱和,必须对于权重矩阵的初始化特别留意。比如,如果初始化权重过大,那么大多数神经元将会饱和,导致网络就几乎不学习。

    2. sigmoid 函数不是关于原点中心对称的

    这个特性会导致后面网络层的输入也不是零中心的,进而影响梯度下降的运作。

    因为如果输入都是正数的话(如 f=wTx+bf=wTx+b 中每个元素都 x>0x>0 ),那么关于 ww 的梯度在反向传播过程中,要么全是正数,要么全是负数(具体依据整个表达式 ff 而定),这将会导致梯度下降权重更新时出现 z 字型的下降。

    当然,如果是按 batch 去训练,那么每个 batch 可能得到不同的信号,整个批量的梯度加起来后可以缓解这个问题。因此,该问题相对于上面的神经元饱和问题来说只是个小麻烦,没有那么严重。

    tanh

    tanh 函数同样存在饱和问题,但它的输出是零中心的,因此实际中 tanh 比 sigmoid 更受欢迎。

    tanh 函数实际上是一个放大的 sigmoid 函数,数学关系为:tanh(x)=2σ(2x)1tanh⁡(x)=2σ(2x)−1

    ReLU

    ReLU 近些年来非常流行。它的数学公式为:f(x)=max(0,x)f(x)=max(0,x)

    ww 是二维时,ReLU 的效果如图:

    ReLU 的优点:

    1. 相较于 sigmoid 和 tanh 函数,ReLU 对于 SGD 的收敛有巨大的加速作用(Alex Krizhevsky 指出有 6 倍之多)。有人认为这是由它的线性、非饱和的公式导致的。
    2. 相比于 sigmoid/tanh,ReLU 只需要一个阈值就可以得到激活值,而不用去算一大堆复杂的(指数)运算。

    ReLU 的缺点是,它在训练时比较脆弱并且可能“死掉”

    举例来说:一个非常大的梯度经过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了。如果这种情况发生,那么从此所有流过这个神经元的梯度将都变成 0。

    也就是说,这个 ReLU 单元在训练中将不可逆转的死亡,导致了数据多样化的丢失。实际中,如果学习率设置得太高,可能会发现网络中 40% 的神经元都会死掉(在整个训练集中这些神经元都不会被激活)。

    合理设置学习率,会降低这种情况的发生概率。

    Leaky ReLU

    Leaky ReLU 是为解决“ ReLU 死亡”问题的尝试。

    ReLU 中当 x<0 时,函数值为 0。而 Leaky ReLU 则是给出一个很小的负数梯度值,比如 0.01。

    有些研究者的论文指出这个激活函数表现很不错,但是其效果并不是很稳定。

    Kaiming He 等人在 2015 年发布的论文 Delving Deep into Rectifiers 中介绍了一种新方法PReLU,把负区间上的斜率当做每个神经元中的一个参数来训练。然而该激活函数在在不同任务中表现的效果也没有特别清晰。

    Maxout

    Maxout 是对 ReLU 和 Leaky ReLU 的一般化归纳,它的函数公式是(二维时):max(wT1+b1,WT2+b2)max(w1T+b1,W2T+b2)。ReLU 和 Leaky ReLU 都是这个公式的特殊情况(比如 ReLU 就是当 w1,b1=0w1,b1=0时)。

    这样 Maxout 神经元就拥有 ReLU 单元的所有优点(线性和不饱和),而没有它的缺点(死亡的ReLU单元)。然而和 ReLU 对比,它每个神经元的参数数量增加了一倍,这就导致整体参数的数量激增。

    如何选择激活函数?

    通常来说,很少会把各种激活函数串起来在一个网络中使用的。

    如果使用 ReLU,那么一定要小心设置 learning rate,而且要注意不要让你的网络出现很多 “dead” 神经元,如果这个问题不好解决,那么可以试试 Leaky ReLU、PReLU 或者 Maxout.

    最好不要用 sigmoid,可以试试 tanh,不过可以预期它的效果会比不上 ReLU 和 Maxout.

    参考资料

    1. http://cs231n.github.io/neural-networks-1/
    2. https://zhuanlan.zhihu.com/p/21462488
    3. http://blog.csdn.net/cyh_24/article/details/50593400

    原文链接:https://livc.io/176
    展开全文
  • 深度学习激活常用函数比较分析  本文主要针对邱锡鹏老师《NNDL》中3.1节中提及的集中激活函数做了一下对比记录,并不较少激活函数本身,只是从发展和优缺点的角度去评价他们。并尝试在他们当中找出可改进的角度和...

    【全面总结】深度学习常用激活函数分析比较

      本文主要针对邱锡鹏老师《NNDL》中3.1节中提及的集中激活函数做了一下对比记录,并不较少激活函数本身,只是从发展和优缺点的角度去评价他们。并尝试在他们当中找出可改进的角度和变化趋势。

      首先给出今天参与对比的激活函数们:Sigmoid系列(Logistic, Tanh, Hard-L&T), ReLU函数系列(ReLU, Leaky ReLU, PReLU, ELU, Softplus), 谷歌的Swish函数, BERT中应用的GELUS函数以及Maxout单元。一个个来说,并且在叙述后者时加入与前者的对比。

      首先,给出激活函数的通用特性:1.连续并且可导;2.函数比较简单;3.函数值域在一个合适的区间,不能偏大也不能偏小。

    Sigmoid函数系列

      该系列函数容易饱和,存在梯度消失问题(梯度消失是指Sigmoid函数存在的饱和区导数接近于0,误差经过每一层都会不断地衰减,当网络层数较深时,梯度就会不停的衰减甚至消失)。SIgmoid函数会导致一个非稀疏的神经网络。

    Logistic函数

      直接分析其特点:(其余没写在这里的在后面的对比中给出)

    • Logistic函数首先是具备Sigmoid的标准特性,两端饱和(即趋向于无穷时导数为零)。
    • 有‘挤压’特性的函数,可以看做把一个实数域的输入“挤压”到了(0,1)区间上。
    • 与感知机阶跃函数相比,其输出可以直接看成概率分布,使得神经网络可以更好的与机器学习模型结合。
    • 理解上,可以将其看作“软性门”,可以用来控制其他神经元输出信息的数量。

    Tanh函数

      对比分析Tanh函数:

    • 与Logistic相比,它是一个零中心化的函数(而Logistic不是,可以参考下文图像直观看出),可以减少带给后一层神经元的偏置偏移,提高梯度下降的效率(收敛得更快)。
    • 同样有着刚才Logistic的特性,也是两端饱和函数,只不过值域扩大了一倍。
    • 与Logistic一样,属于指数运算函数,梯度下降过程计算量较大。
    Chart1:Logistic函数图像与Sigmoid函数图像比较图

    Hard-L&T函数

      Hard_Logistic和Hard_Tanh是前面两种Sigmoid函数的Hard版,解决了两端饱和性问题但依然没解决指数运算量大的问题。

    • 比前者们更易进行拟合,两端饱和部分被一阶泰勒展开函数进行线性化处理后在进行梯度计算的时候明显的收敛速度加快。
    • 至于函数是否零中心化此二者与其非Hard版本保持一致,并且继承其前者的其他优点。

      但是尽管有如此多的优点,Sigmoid函数仍然位于激活函数鄙视链的最底端,属于早起是用的深度学习激活函数,前几年开始使用的激活函数选择顺序就已经是:Elus > Relu > Sigmoid了,现在更是有了谷歌的Swish函数出现,所以现在已经很少单独使用Sigmoid作为激活函数了。

    Chart2:两种函数的Hard版本与原图相比较

    ReLU函数系列

      该系列函数存在的问题是缺乏随机因素,参数设置上主观性较强,实际应用时需要对网络模型参数初始化过程不断调整和测试来避免过拟合问题。ReLU函数所带来的稀疏性相比Sigmoid函数好得多。原始的ReLU现在也已经不太被应用了,更多的我们应该关注它的变种函数。但我们先来看的是原始的ReLU,并且用他来对比改进的变种函数。

    ReLU函数

      原始的ReLU函数非常简单,所以采用ReLU的神经元只需要进行加、乘和比较的操作,计算上更加高效。

    • 简单,计算高效。
    • 和Logistic一样也是非零中心化的激活函数(给下一层产生偏置偏移,影响梯度下降效果)。
    • 与Sigmoid系列函数相比的时候,能够体现ReLU缓解了梯度消失的问题,加速了梯度下降的收敛速度。
    • 单侧抑制(一侧函数值为0)。
    • 宽兴奋边界(兴奋度可以达到很高)。
    • 致命的缺陷是会发生死亡现象。
    • 和Logistic函数一样无法产生负值,影响梯度下降收敛速度。
    • 具有稀疏表达能力(可以产生0,而Sigmoid饱和只能近似接近0而产生不了0)

    Leaky ReLU函数

      在ReLU基础上当x<0是引入一个非常小的γ值来作为梯度,这样就可以避免ReLU的神经元死亡问题了。

    • 能够避免神经元死亡问题。
    • 不会产生过拟合问题。
    • 计算也相对后面几种模型比较简单(比如与ELU和前面的基于指数运算的函数相比)。
    • 由于可以避免死亡,同时补充了梯度,所以其收敛速度甚至比原始ReLU还要快。

    PReLU函数

      和刚才的Leaky ReLU相比只是将参数变化为了一个向量的形式,向量内元素个数与该层神经元个数相同,为每个神经元路径配置不同的参数。参数可通过学习得到。

    • 允许不同的神经元拥有不同的参数,灵活性更高,应用于机器学习过程时可以有更好的拟合效果,但和刚才L-ReLU不同,现在过拟合的可能性又重新出现了。
    • 计算量相对来说要多了一些,但不是致命的缺陷(依然比指数运算类要好很多)。
    • 更加适合应用于实际模型学习当中,更符合一般实际问题的性质,但参数学习过程复杂。
    • 向上继承了刚才L-ReLU模型防止神经元死亡的优点。

    ELU函数

      将ReLU函数<0部分平滑化,线性转饱和,图像呈近似零中心化。虽然存在梯度饱和与指数运算的问题,但跟Sigmoid相比依然要好上很多。

    • 事实上ELU的效率比以上三种ReLU还要高,他相当于取了比较折中的方案,首先它避免了无负值的缺陷。
    • 但加上了负值就无可避免的出现平滑曲线,虽然相当于重新引入了饱和曲线,只不过优点的作用更大。
    • 同样也因此避免了死亡的产生。
    • 指数运算也只是相对于其他ReLU族函数复杂,比起Sigmoid还是小巫见大巫,所以现在ELU也是常用的激活函数选择。

    SoftPlus函数

      SoftPlus事实上提出来的很早,在2001年就被踢出来了,要远远早于10年提出的ReLU,他可以看做是ReLU的一个平滑版本。相应的特性也很相似。

    • 同样没有负值。
    • 同样非零中心化。
    • 同样的单侧抑制(左侧饱和)
    • 同样的宽兴奋边界。
    • 比ReLU缺少了稀疏性,因为左侧饱和了。
    Chart3:ReLU系列函数图像(PReLU可以看做不同的L-ReLU图像集合)

    Swish函数

      这是谷歌在2017年提出来的新的激活函数,在ReLU的优势基础上强化了门控机制,超参数β的加入使得函数可以调整门控的开关状态来近似于不同的ReLU函数。之前说Sigmoid函数容易饱和,ReLU函数族缺乏随机因素,神经网络建模中比较重要的就是模型的非线性。同时为了模型泛化能力需要加入随机正则的部分。而先前的函数我们都还讨论不到同时兼备这两者较好的表达。而从Swish开始以及后面的GELU都开始有了这种效果。

    • 继承了ReLU的优势,在X>0时依然不存在梯度消失问题。
    • 同时<0的部分也不会轻易的死亡,门控机制的加入使得灵活性变强,导致Swish能应用于多种机器学习模型的实际环境中。
    • β参数可以唯一也可以该层每个神经元各对应一个。(一对一学习,一对多进行固定)
    • 计算量会很大是唯一缺陷。
    Chart4:Swish函数图像

    GELU函数

      GELU在非线性激活中应用了随机正则的思想,也是一种通过门控机制来调整输出的激活函数,和Swish函数非常类似。BERT的源码在使用的就是GELU,所以可以看出GELU现在的应用还是很好的。

    • 包含随机正则的思想可以更加方便梯度下降过程以及学习速度。
    • 以标准正态分布作为表达式成分,可以通过Sigmoid函数进行近似,拟合能力更强。
    • 同时具备Swish的上述优点。
    • 它不产生饱和,并且通过自门控进行调整,能够相对于ReLU适应更多的模型环境。
    • 同时相比于ELU不需要为了创造负值和非线性而导致牺牲太多。
    • 代码实现也比较简单。
    Chart5:GELU函数与前者比较

    Maxout单元

      Maxout提出的时间也比ReLU要晚一些,所以避免了一些前者所存在的问题。它主要的改进是不再使用净输入,而转去关注上一层全部的原始输出。

    • 缺陷非常的明显,由于要参考的输入变成了上层全部原始输出,参数是呈k倍增加的。
    • 参数是可学习的,其中的权重是学习变化的,其本身是一个分段线性函数。
    • Maxout的拟合能力是很强的,它相当于是一个函数逼近器,对于一个标准的MLP来说,如果隐藏神经元层数足够多,理论上可以逼近任何函数。但是同时也要避免过拟合问题。
    • 与Swish和GELU相比的话在非线性和随机正则表达上要缺憾一些,但却也能够避免最前面几种模型的大部分缺点。

     

     

    展开全文
  • 常用激活函数

    2018-10-10 15:58:17
    什么是激活函数 为什么要用 都有什么 sigmoid ,ReLU, softmax 的比较 如何选择 1. 什么是激活函数 如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数 ...
  • 常用激活函数小总结

    2019-12-19 18:49:58
    1,单个神经元网络模型2,激活函数的来源二,四种常用激活函数与理解1,Sigmod函数(非线性激活函数)2,Tanh函数(非线性激活函数)3,ReLU函数4,Swish函数三,激活函数的学习感想以上若有错误或不足欢迎批评...
  • 常用激活函数介绍

    2021-02-02 09:53:24
    sigmod函数曾经是比较流行的,它可以想象成一个神经元的放电率,在中间斜率比较大的地方是神经元的敏感区,在两边斜率很平缓的地方是神经元的抑制区。 当然,流行也是曾经流行,这说明函数本身是有一定的缺陷的。 ...
  • NLP笔记:常用激活函数考察整理 0. 引言 1. 常用激活函数 1. sigmoid 2. softmax 3. relu系列 1. relu 2. leaky relu 3. elu 4. selu 5. gelu 6. 其他 4. tanh 5. 其他 2. 总结 3. 参考链接 0. 引言 这篇...
  • 神经网络中如果不加入激活函数,其一定程度...目前比较流行的激活函数主要分为以下7种:1.sigmoid2.tanh3.ReLu4.Leaky ReLu5.PReLu6.RReLu7 Maxout8 SELU总结是ELU的改进版本,参考文献: [ReLu]:Rectifier Nonl...
  • 几种常用激活函数

    2018-07-07 21:19:55
    sigmod函数曾经是比较流行的,它可以想象成一个神经元的放电率,在中间斜率比较大的地方是神经元的敏感区,在两边斜率很平缓的地方是神经元的抑制区。当然,流行也是曾经流行,这说明函数本身是有一定的缺陷的。...
  • 激活函数比较

    2017-11-11 10:45:13
    激活函数( Activation Function )能够把输入的特征保留并映射下来。SigmoidSigmoid 非线性函数将输入映射到 (0,1) \left( 0,1\right) 之间。它的数学公式为:σ(x)=11+e−x\sigma \left( x\right) =\dfrac {1} {1+...
  • 常用激活函数

    2019-05-06 00:14:10
    2.激活函数的用途(为什么需要激活函数)? 3.有哪些激活函数,都有什么性质和特点? 4.sigmoid ,ReLU, softmax 的比较 5.应用中如何选择合适的激活函数? 什么是激活函数? 首先要了解神经网络的基本模型。 ...
  • 常用激活函数比较   本文结构: 什么是激活函数 为什么要用 都有什么 sigmoid ,ReLU, softmax 的比较 如何选择 1. 什么是激活函数 如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个...
  • 缺点1:在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失,其中梯度爆炸发生的概率非常小,而梯度消失发生的概率比较大。首先来看Sigmoid函数的导数,如下图所示: 缺点2:Sigmoid 的 output 不是0均值(即...
  • sigmod函数曾经是比较流行的,它可以想象成一个神经元的放电率,在中间斜率比较大的地方是神经元的敏感区,在两边斜率很平缓的地方是神经元的抑制区。 当然,流行也是曾经流行,这说明函数本身是有一定的缺陷的...
  • 本文记录了神经网络中激活函数的学习过程,欢迎学习交流。 神经网络中如果不加入激活函数,...目前比较流行的激活函数主要分为以下7种: 1.sigmoid 2.tanh 3.ReLu 4.Leaky ReLu 5.PReL...
  • 激活函数

    2020-08-05 11:55:10
    激活函数各种激活函数整理总结常用激活函数及其导数常用激活函数及其导数的图像为什么需要激活函数标准说法更形象的解释关于各个激活函数的比较和适用场景sigmoid 和softmax区别什么情况下 ReLU 的神经元会死亡?...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 252
精华内容 100
关键字:

常用激活函数比较