精华内容
下载资源
问答
  • ELU 的提出也解决了ReLU 的问题。与ReLU相比,ELU有负值,这会使激活的平均值接近零。均值激活接近于零可以使学习更快,因为它们使梯度更接近自然梯度。 ELU(x)={x,x>0α(ex−1),x≤0 ELU(x)=\left\{ \begin{...

    分类目录:《算法设计与分析》总目录
    相关文章:
    · 激活函数:基础知识
    · 激活函数(一):Sigmoid函数
    · 激活函数(二):双曲正切函数(Tanh函数)
    · 激活函数(三): 线性整流函数(ReLU函数)
    · 激活函数(四):Leaky ReLU函数
    · 激活函数(五):ELU函数
    · 激活函数(六):Parametric ReLU(PReLU)函数
    · 激活函数(七):Softmax函数
    · 激活函数(八):Swish函数
    · 激活函数(九):Maxout函数
    · 激活函数(十):Softplus函数
    · 激活函数(十一):Softsign函数
    · 激活函数(十二):高斯误差线性单元(GELUs)


    ELU 的提出也解决了ReLU 的问题。与ReLU相比,ELU有负值,这会使激活的平均值接近零。均值激活接近于零可以使学习更快,因为它们使梯度更接近自然梯度。

    E L U ( x ) = { x , x > 0 α ( e x − 1 ) , x ≤ 0 ELU(x)=\left\{ \begin{aligned} x & \quad ,x > 0 \\ \alpha(e^x - 1) & \quad , x\leq 0\\ \end{aligned} \right. ELU(x)={xα(ex1),x>0,x0

    ELU函数的特点:

    • 没有Dead ReLU问题,输出的平均值接近0,以0为中心。
    • ELU 通过减少偏置偏移的影响,使正常梯度更接近于单位自然梯度,从而使均值向零加速学习。
    • ELU函数在较小的输入下会饱和至负值,从而减少前向传播的变异和信息。
    • ELU函数的计算强度更高。与Leaky ReLU类似,尽管理论上比ReLU要好,但目前在实践中没有充分的证据表明ELU总是比ReLU好。

    ELU函数的图像:
    ELU函数的图像

    展开全文
  • ELU激活函数以及python画图

    千次阅读 2019-10-29 20:28:39
    Elu激活函数论文:https://arxiv.org/pdf/1511.07289v5.pdf 论文理解:https://blog.csdn.net/mao_xiao_feng/article/details/53242235?locationNum=9&fps=1 ... ht...

    Elu激活函数论文:https://arxiv.org/pdf/1511.07289v5.pdf
    论文理解:https://blog.csdn.net/mao_xiao_feng/article/details/53242235?locationNum=9&fps=1
    https://blog.csdn.net/m0_37561765/article/details/78398098
    https://blog.csdn.net/u012524708/article/details/79579313
    在这里插入图片描述
    Elu函数融合了sigmoid和ReLU,左侧具有软饱和性,右侧无饱和性。右侧线性部分使得ELU能够缓解梯度消失,而左侧软饱能够让ELU对输入变化或噪声更鲁棒。ELU的输出均值接近于零,所以收敛速度更快。在 ImageNet上,不加 Batch Normalization 30 层以上的 ReLU 网络会无法收敛,PReLU网络在MSRA的Fan-in (caffe )初始化下会发散,而 ELU 网络在Fan-in/Fan-out下都能收敛。

    python画激活函数
    参考:https://blog.csdn.net/Xin_101/article/details/93738819
    (threshold、sigmoid、Relu、PRelu、tanh)
    Elu函数

    import matplotlib.pyplot as plt
    import mpl_toolkits.axisartist as axisartist
    import numpy as np
    import math
    fig = plt.figure(figsize=(6, 6))
    ax = axisartist.Subplot(fig, 111)
    fig.add_axes(ax)
    # 隐藏坐标轴
    ax.axis[:].set_visible(False)
    # 添加坐标轴
    ax.axis['x'] = ax.new_floating_axis(0, 0)
    ax.axis['y'] = ax.new_floating_axis(1, 0)
    # x轴添加箭头
    ax.axis['x'].set_axisline_style('-|>', size=1.0)
    ax.axis['y'].set_axisline_style('-|>', size=1.0)
    # 设置坐标轴刻度显示方向
    ax.axis['x'].set_axis_direction('top')
    ax.axis['y'].set_axis_direction('right')
    plt.xlim(-10, 10)
    plt.ylim(-2.5, 10)
    x_1 = np.arange(0, 10, 0.1)
    y_1 = x_1
    x_axis = np.arange(-10, 10, 0.2)
    y_axis = np.arange(-0, 1, 0.2)
    plt.plot(x_1, y_1, 'r-', label=r'Elu=$\{\stackrel{x,x>0}{\alpha(exp(x)-1), x<=0}$')
    x_2 = np.arange(-10, 0, 0.1)
    y_2 = 1*(np.exp(x_2)-1)
    plt.plot(x_2, y_2, 'r-')
    plt.legend()
    #plt.savefig('lu.jpg')
    plt.show()
    
    展开全文
  • 指数化线性单元(Exponential Linear Unit, ELU)的公式如下: σ ( x ) = { x , x ≥ 0 λ ⋅ ( e x p ( x ) − 1 ) , x < 0 \begin{aligned} \sigma(x) = \left\{\begin{matrix} x,&x\geq 0\\ \lambda \...

    本篇主要整理下激活函数的相关内容。

    首先讲下激活函数需要满足的条件:

    • 计算简单
    • 非线性

    为什么需要满足非线性呢?我们来看下面这个例子。

    如图单隐层神经网络,我们在计算的时候有如下公式:
    z 1 [ 2 ] = w [ 1 ] x + b [ 1 ] a 1 [ 2 ] = g [ 1 ] ( z 1 [ 2 ] ) \begin{aligned} z_1^{[2]} &amp;= w^{[1]}x+b^{[1]} \\ a_1^{[2]} &amp;= g^{[1]}(z_1^{[2]}) \end{aligned} z1[2]a1[2]=w[1]x+b[1]=g[1](z1[2])
    其中, g g g表示激活函数,假设激活函数是线性函数,其表达式为: g ( x ) = w x + b g(x)=wx+b g(x)=wx+b,则
    a 1 [ 2 ] = g [ 1 ] ( z 1 [ 2 ] ) = w z 1 [ 2 ] + b = w ( w [ 1 ] x + b [ 1 ] ) + b = w w [ 1 ] x + w b [ 1 ] + b \begin{aligned} a_1^{[2]} &amp;= g^{[1]}(z_1^{[2]}) \\ &amp;=wz_1^{[2]}+b \\ &amp;=w(w^{[1]}x+b^{[1]} )+b \\ &amp;=ww^{[1]}x+wb^{[1]}+b \end{aligned} a1[2]=g[1](z1[2])=wz1[2]+b=w(w[1]x+b[1])+b=ww[1]x+wb[1]+b

    我们令 w ′ = w w [ 1 ] w&#x27;=ww^{[1]} w=ww[1] b ′ = w b [ 1 ] + b b&#x27;=wb^{[1]}+b b=wb[1]+b,则 a 1 [ 2 ] = w ′ x + b ′ a_1^{[2]}=w&#x27;x+b&#x27; a1[2]=wx+b,这和没有经过激活函数处理的结果一样,因此如果激活函数是线性的,则无论有多少隐层,其和具有线性激活函数的单隐层网络效果一样。因此,为了得到更好的效果,我们需要激活函数是非线性的。一般而言,线性激活函数只有的输出层才使用,比如,你需要预测一个回归问题,线性激活函数可以将结果映射为实数。

    下面介绍几种常用的激活函数:

    1、sigmoid

    sigmoid函数也成logistic函数,其公式为:
    σ ( x ) = 1 1 + e x p ( − x ) \begin{aligned} \sigma(x)=\frac{1}{1+exp(-x)} \end{aligned} σ(x)=1+exp(x)1

    下图是sigmoid函数对应的图像(图片来源):

    从上图可以看出,sigmoid函数的性质如下:

    • 关于 ( 0 , 0.5 ) (0, 0.5) (0,0.5)中心对称,其值全部大于0
    • sigmoid可以将实数域的值映射到 ( 0 , 1 ) (0, 1) (0,1)之间,赋予了概率的意义。
    • 在sigmoid函数值 x &gt; 5 x&gt;5 x>5或者 x &lt; − 5 x&lt;-5 x<5的区域,出现了饱和区域,函数值几乎平稳不变。

    上述性质便带来了以下问题:

    • 一般而言,我们期望神经网络内数值的期望为0,方差为1(lecun的论文有说明这种情况下效果最好),但是很明显sigmoid函数的期望大于0。
    • sigmoid函数存在的一个非常大的弊端便是它的饱和性,在函数值 x &gt; 5 x&gt;5 x>5或者 x &lt; − 5 x&lt;-5 x<5的区域,sigmoid值几乎不变,也就是说梯度几乎为0,这会导致在反向传播过程中导数处于该区域的误差很难甚至无法被传递到前层(因为在梯度传递过程中,有乘以 σ ′ ( x ) \sigma&#x27;(x) σ(x)这一项),梯度消失,进而导致整个网络无法正常训练。这种现象叫做“梯度饱和”,也称为“梯度消失”。

    因此,基于sigmoid函数的缺陷提出了tanh(x)激活函数。

    2、tanh

    tanh的公式如下:
    σ ( x ) = 2 s i g m o i d ( 2 x ) − 1 = 2 ⋅ 1 1 + e x p ( − 2 x ) − 1 = 1 − e x p ( − 2 x ) 1 + e x p ( − 2 x ) = e x p ( x ) − e x p ( − x ) e x p ( x ) + e x p ( − x ) \begin{aligned} \sigma(x)&amp;=2sigmoid(2x)-1 \\ &amp;=2 \cdot \frac{1}{1+exp(-2x)} - 1\\ &amp;=\frac{1-exp(-2x)}{1+exp(-2x)} \\ &amp;=\frac{exp(x)-exp(-x)}{exp(x)+exp(-x)} \end{aligned} σ(x)=2sigmoid(2x)1=21+exp(2x)11=1+exp(2x)1exp(2x)=exp(x)+exp(x)exp(x)exp(x)
    其函数图如下所示(图片来源):

    从图中可以看出,tanh函数以 ( 0 , 0 ) (0,0) (0,0)为中心点,这在一定程度上缓解了sigmoid函数带来的“均值不为0”的问题,但是仍然存在“梯度饱和”的现象。

    3、ReLU

    为了避免梯度饱和现象的发生,修正线性单元(Rectified Linear Unit, ReLU)被提出。ReLU是一个分段函数,其公式如下:
    σ ( x ) = m a x { 0 , x } = { x , x ≥ 0 0 , x &lt; 0 \begin{aligned} \sigma(x)&amp;=max\{0, x\} \\ &amp;= \left\{\begin{matrix} x,&amp;x\geq 0\\ 0,&amp;x&lt; 0 \end{matrix}\right. \end{aligned} σ(x)=max{0,x}={x,0,x0x<0
    我们可以看到,在 x ≥ 0 x\geq 0 x0时,梯度为1,这部分解决了sigmoid函数和tanh函数梯度饱和的问题,同时,也加速了训练过程,除此之外,ReLU的计算比较简单。但是ReLU存在的一个问题是当 x &lt; 0 x&lt; 0 x<0时,梯度为0,这部分叫做“死区”现象。

    4、Leaky ReLU

    为了缓解“死区”现象,Leaky ReLU尝试将ReLU的 x &lt; 0 x&lt; 0 x<0部分调整成一个斜率很小的值,其公式如下:
    σ ( x ) = { x , x ≥ 0 α ⋅ x , x &lt; 0 \begin{aligned} \sigma(x)=\left\{\begin{matrix} x,&amp;x\geq 0\\ \alpha \cdot x,&amp;x&lt; 0 \end{matrix}\right. \end{aligned} σ(x)={x,αx,x0x<0
    α \alpha α是一个很小的正数,这个超参数需要设置并且比较敏感,因此出现了参数化ReLU和随机化ReLU,这些都是ReLU的变体,这里不再细说。

    5、ELU

    指数化线性单元(Exponential Linear Unit, ELU)的公式如下:
    σ ( x ) = { x , x ≥ 0 λ ⋅ ( e x p ( x ) − 1 ) , x &lt; 0 \begin{aligned} \sigma(x) = \left\{\begin{matrix} x,&amp;x\geq 0\\ \lambda \cdot (exp(x)-1),&amp;x&lt; 0 \end{matrix}\right. \end{aligned} σ(x)={x,λ(exp(x)1),x0x<0

    如图所示(图片来源),ELU除了解决ReLU中的“死区”现象,但是其计算量较大。

    6、总结

    深度网络模型强大的表示能力大部分是由激活函数的非线性带来的。一般而言,在输出层使用线性激活函数,其他隐层使用非线性激活函数,在实际中,ReLU激活函数的使用更频繁。

    展开全文
  • ELU激活函数

    万次阅读 多人点赞 2018-07-31 00:06:56
    ELU激活函数     融合了sigmoid和ReLU,左侧具有软饱和性,右侧无饱和性。 右侧线性部分使得ELU能够缓解梯度消失,而左侧软饱能够让ELU对输入变化或噪声更鲁棒。 ELU的输出均值接近于零,所以收敛速度更快。 ...

               ELU激活函数

              
    这里写图片描述

     

    • 融合了sigmoid和ReLU,左侧具有软饱和性,右侧无饱和性。
    • 右侧线性部分使得ELU能够缓解梯度消失,而左侧软饱能够让ELU对输入变化或噪声更鲁棒。
    • ELU的输出均值接近于零,所以收敛速度更快。
    • 在 ImageNet上,不加 Batch Normalization 30 层以上的 ReLU 网络会无法收敛,PReLU网络在MSRA的Fan-in (caffe )初始化下会发散,而 ELU 网络在Fan-in/Fan-out下都能收敛。
    展开全文
  • ELU函数 图中所示即为ELU函数,其也是Relu函数的一种变体,x大于0时,y=x,x小于等于0时,y=α(exp(x)-1),可看作介于Relu与Leaky Relu之间的函数;其优缺点总结如下: 优点:1、ELU具有Relu的大多数优点,不存在...
  • tensorflow 激活函数 elu exponential

    千次阅读 2019-03-28 14:54:24
    tf.keras.layers.Dense(3, activation='elu'), tf.keras.layers.Dense(3, activation='softplus'), tf.keras.layers.Dense(3, activation='linear'), tf.keras.layers.Dense(3, activation='exponential'), tf....
  • ',color='blue') plt.legend() plt.savefig('sigmoid and tanh.png',dpi=200) 2.2 relu和ELU import math import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['axes....
  • SELU是给ELU乘上系数 λλ, 即 SELU(x)=λ⋅ELU(x) Swish paper Searching for Activation functions(Prajit Ramachandran,Google Brain 2017) β是个常数或可训练的参数.Swish 具备无上界有下界、平滑、非单调...
  • 1.22.Linear常用激活函数 1.22.1.ReLU torch.nn.ReLU() 1.22.2.RReLU torch.nn.RReLU() 1.22.3.LeakyReLU torch.nn.LeakyReLU() 1.22.4.PReLU torch.nn.PReLU() 1.22.5.Sofplus torch.nn....1.22.6.ELU torch.nn.EL
  • # 绘制softmax函数 plt.plot(x,ReLU(x),c="blue",lw="2",label="ReLU") # 绘制ReLU函数 plt.plot(x,elu(x,0.1),c="darkviolet",lw="2",label="elu") # 绘制elu函数 plt.plot(x,LReLU(x),c="springgreen",lw="2",...
  •  深度学习前期用到的激活函数有Sigmoid和Tanh,后期有Relu、LeakyRelu、pRelu、Elu、softplus,接下来,我将一一介绍它们的特点。 Sigmoid 函数 特点:  Sigmoid 函数可以把输入的值映射到0到1之间,...
  • 线性部分使得ELU能够缓解梯度消失,而负值部分能够让ELU对输入变化或噪声更鲁棒。由于具有负值,ELU的输出均值接近于零,所以收敛速度更快。 4.SeLU(Scaled Exponential Linear Unit) 函数形式: S e L U ( x ...
  • Elu函数~小朋友

    千次阅读 2019-01-02 12:55:38
    Elu激励函数的数学表达式如下: 图一:摘自https://blog.csdn.net/zrh_CSDN/article/details/81266188 代码如下: #code:utf-8 import numpy as np import matplotlib.pyplot as plt def elu(x,a): y = x....
  • np.exp(x)-np.exp(-x)/np.exp(x)+np.exp(-x) result = (math.e ** (x) - math.e ** (-x)) / (math.e ** (x) + math.e ** (-x)) return result def relu(x): result = np.maximum(0, x) return result def elu(x,...
  • 常用激活函数汇总 1.sigmoid 2.Tanh 3.ReLU 4.Leaky ReLU 5.ELU 6.Swish 7.Mish ———————————————————————— 文中激活函数及其导数的绘制,请参考: python绘制激活函数及其导数图像 ————...
  • 代码实现: # ELU函数在numpy上的实现 import numpy as np import matplotlib.pyplot as plt def elu(x, a): y = x.copy() for i in range(y.shape[0]): if y[i] [i] = a * (np.exp(y[i]) - 1) return y if __name__...
  • 激活函数(5)ELU函数、PReLU函数

    万次阅读 2019-06-12 21:54:09
    ELU函数 ELU函数公式和曲线如下图 ELU函数是针对ReLU函数的一个改进型,相比于ReLU函数,在输入为负数的情况下,是有一定的输出的,而且这部分输出还具有一定的抗干扰能力。这样可以消除ReLU死掉的问题,不过...
  • 依赖知识 ReLU 前向过程 后向过程 LeakyReLU 前向过程 后向过程 PReLU 前向过程 后向过程 ELU 前向过程 后向过程 SELU 前向过程 ...b) 熟悉ReLU、LeakyReLU、PReLU、ELU、SELU ReLU ​...
  • ReLU、LReLU、PReLU、CReLU、ELU、SELU

    万次阅读 多人点赞 2018-01-22 22:25:34
    ELU SELUReLU tensorflow中:tf.nn.relu(features, name=None)LReLU(Leaky-ReLU) 其中aia_i是固定的。ii表示不同的通道对应不同的aia_i. tensorflow中:tf.nn.leaky_relu(features, alpha=0.2, name=None)PReLU
  • 非饱和激活函数Relu(修正线性单元):Relu6(抑制其最大值):ELU(指数线性单元)SELULeaky-Relu / R-ReluP-Relu(参数化修正线性单元)R-Relu(随机纠正线性单元)Swishhard-SwishMishMaxout关于激活函数统一...
  • 5. ELU 公式: ELU ( x ) = max ⁡ ( 0 , x ) + min ⁡ ( 0 , α ∗ ( exp ⁡ ( x ) − 1 ) ) \text{ELU}(x) = \max(0,x) + \min(0, \alpha * (\exp(x) - 1)) ELU(x)=max(0,x)+min(0,α∗(exp(x)−1)) ELU的函数形状...
  • tf.keras.activations.elu( x, alpha=1.0 ) 源码 Defined intensorflow/python/keras/activations.py. @tf_export('keras.activations.elu') def elu(x, alpha=1.0): return K.elu(x, alpha) 需要引入的...
  • ELU 具有relu的优势,且输出均值接近零,实际上prelu和LeakyReLU都有这一优点。有负数饱和区域,从而对噪声有一些鲁棒性。可以看做是介于relu和LeakyReLU之间的一个东西。当然,这个函数也需要计算exp,从而计算量...
  • 1.2 elu论文(FAST AND ACCURATE DEEP NETWORK LEARNING BY EXPONENTIAL LINEAR UNITS (ELUS)) 1.2.1 摘要 论文中提到,elu函数可以加速训练并且可以提高分类的准确率。它有以下特征: 1)el
  • tensorflow elu函数应用

    2017-07-22 10:16:00
    1、elu函数 图像: 2、tensorflow elu应用 import tensorflow as tf input=tf.constant([0,-1,2,-3],dtype=tf.float32) output=tf.nn.elu(input) with tf.Session() as sess: print('input:')...
  • 一、常见激活函数总结 激活函数:就是在神经网络的神经元... ELU PReLU  这些函数有一个共同的特点那就是他们都是非线性的函数。那么我们为什么要在神经网络中引入非线性的激活函数呢?  如果不用激励函数(其实...
  • 相比ReLU,ELU可以取到负值,这让单元激活均值可以更接近0,类似于Batch Normalization的效果但是只需要更低的计算复杂度。虽然LReLU和PReLU都也有负值,但是它们不保证在不激活状态下(就是在输入为负的状态下)对...
  • 基于ELU卷积神经网络的视频烟雾检测.pdf
  • 4.ELU函数 ELU函数公式和曲线如下图 ELU函数是针对ReLU函数的一个改进型,相比于ReLU函数,在输入为负数的情况下,是有一定的输出的,而且这部分输出还具有一定的抗干扰能力。这样可以消除ReLU死掉的问题,不过还是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,090
精华内容 2,036
关键字:

elu