最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 神经网络模型中使用激活函数的定义和不同的使用场景

    我们都知道,在神经网络模型中使用激活函数的主要目的是为我们的网络引入非线性特征,增强网络的学习能力。激活函数应用于隐藏层和输出层中每个节点的称为 z 的输入加权和(其中输入可以是原始数据或前一层的输出)。

    在本文中,我们将讨论神经网络中常见的激活函数,并使用可视化技术帮助您了解激活函数的函数定义和不同的使用场景。

    看完这篇文章,你会对什么时候使用哪个激活函数有一个清晰的认识,了解不同激活函数的定义。

    神经网络中不同层的激活函数

    神经网络通常由三种类型的层组成:输入层、隐藏层和输出层。

    输入层只保存输入数据,不进行任何计算。因此,这里不需要使用激活函数。

    需要在神经网络的隐藏层中使用非线性激活函数,因为需要将非线性引入网络以学习复杂的模式。如果没有非线性激活函数,具有许多隐藏层的神经网络就会变成一个巨大的线性回归模型,这对于从现实世界数据中学习复杂的模式毫无用处。根据我们在隐藏层中使用的激活函数的类型,神经网络模型的性能可能会有很大差异。

    在神经网络的输出层中使用激活函数的选择取决于我们正在解决的问题的类型。

    线性和非线性函数

    大多数激活函数是非线性的。但有时线性激活函数也用于神经网络,例如用于解决回归问题的神经网络模型的输出层。

    线性函数(称为 f)接受输入 z 并返​​回输出 cz,即输入乘以常数 c。在数学上,这可以表示为 f(z) = cz。当 c=1 时,函数按原样返回输入,不对输入进行任何更改。二维空间中的线性函数图是一条直线。

    任何不是线性的函数都可以归类为非线性函数。非线性函数的图形不是直线。它可以是一个复杂的模式,也可以是两个或多个线性组件的组合。

    不同类型的激活函数

    下面将讨论神经网络中常用的激活函数。

    1、Sigmoid

    主要特征:

    也是逻辑回归模型中使用的逻辑函数。

    • sigmoid 函数是一个sigmoid。

    · 这是一个非线性函数。

    · sigmoid 函数将其输入转换为 0 到 1 之间的概率值。

    ·它将大的负值转换为0,将大的正值转换为1。

    · 对于输入 0,它返回 0.5。所以 0.5 被称为阈值,它可以决定给定输入属于哪一类。

    用法:

    早期,Sigmoid 函数被用作 MLP、CNN 和 RNN 中隐藏层的激活函数。

    · sigmoid 函数现在仍在 RNN 中使用。

    · MLPs 和 CNNs 中我们通常不会对隐藏层使用 sigmoid 函数,因为它太慢了,我们在那里使用 ReLU 或 Leaky ReLU。

    · 当我们构建二元分类器时,输出层必须使用sigmoid函数,其中输出被解释为类标签,取决于函数返回的输入的概率值。

    当我们使用 sigmoid 函数构建多标签分类模型时,每个相互包含的类都有两个结果。不要将此与多类分类模型混淆。

    由于以下缺点,我们通常不在隐藏层中使用 sigmoid 函数。

    · sigmoid 函数存在梯度消失问题。这也称为梯度饱和。

    · sigmoid 函数收敛缓慢。

    · 它的输出不是以零为中心的。因此,它使优化过程更加困难。

    • 由于包含 e^z 项,该函数的计算量很大。

    2、谭

    主要特征:

    • tanh(正切双曲线)函数的输出始终介于 -1 和 +1 之间。

    · 像sigmoid函数一样,它有一个sigmoid。这也是一个非线性函数。

    • 使用 tanh 函数优于 sigmoid 函数的一个优点是 tanh 函数以零为中心。这使得优化过程更容易。

    · tanh 函数的梯度比 sigmoid 函数的梯度更陡。

    用法:

    · 目前,tanh 函数也被用作 MLP、CNN 和 RNN 中隐藏层的激活函数。

    · tanh 函数也用于 RNN。

    · 对于 MLP 和 CNN 中的隐藏层,我们一般不使用 tanh 函数。

    · 我们从不在输出层使用 tanh 函数。

    由于以下缺点,我们通常不在隐藏层中使用 tanh 函数。

    · tanh 函数存在梯度消失问题。

    • 由于包含 e^z 项,该函数的计算量很大。

    3、RELU

    主要特征:

    · ReLU(整流线性单元)激活函数是 sigmoid 和 tanh 激活函数的绝佳替代品。

    ReLU的发明是深度学习领域最重要的突破之一。

    · 不存在梯度消失问题。

    · 计算成本低。ReLU 的收敛速度被认为是 sigmoid 和 tanh 函数的 6 倍。

    • 如果输入值为0 或更大,ReLU 函数按原样输出输入。如果输入小于 0,则 ReLU 函数输出值 0。

    · ReLU 函数由两个线性分量组成。因此,ReLU 函数是一个分段线性函数。所以ReLU函数是一个非线性函数。

    · ReLU 函数的输出范围可以从 0 到正无穷大。

    · 收敛速度比 sigmoid 和 tanh 函数快。这是因为 ReLU 函数对一个线性分量具有固定导数(斜率),而对另一个线性分量具有零导数。因此,使用 ReLU 函数的学习过程要快得多。

    · 使用 ReLU 更快地执行计算,因为函数中不包含指数项。

    用法:

    · ReLU 函数是 MLP 和 CNN 神经网络模型中隐藏层的默认激活函数。

    · 我们通常不会在 RNN 模型的隐藏层中使用 ReLU 函数。相反,我们在那里使用 sigmoid 或 tanh 函数。

    · 我们从不在输出层使用 ReLU 函数。

    缺点:

    使用 ReLU 函数的主要缺点是它有一个垂死的 ReLU 问题。(梯度值过大时,更新后权重为负数,relu后变为0,后面不再更新)

    4、泄漏的 ReLU

    主要特征:

    ·leaky ReLU 激活函数是默认 ReLU 函数的修改版本。

    · 与 ReLU 激活函数一样,该函数不受梯度消失问题的影响。

    · 如果输入值为0大于0,leaky ReLU函数会像默认的ReLU函数一样输出输入。但是如果输入小于0,leaky ReLU函数会输出一个由αz定义的小负值(其中α是一个小的常数值,通常0.01,z是输入值)。

    · 它没有任何零导数(斜率)的线性分量。所以它可以避免濒临死亡的 ReLU 问题。

    · 使用leaky ReLU 的学习过程比默认的ReLU 更快。

    用法:

    · ReLU 函数的相同用法也适用于leaky ReLU 函数。

    5、参数ReLU(PReLU)激活函数

    主要特征:

    · 这是 ReLU 函数的另一个变体。

    · 这几乎类似于leaky ReLU 函数。唯一的区别是值 α 成为可学习的参数(因此得名)。我们将 α 设置为网络中每个神经元的参数。因此,α的最优值是从网络中学习到的。

    6、Relu6

    主要特征:

    · ReLU 和 ReLU6 的主要区别在于 ReLU 在正侧允许非常高的值,而 ReLU6 在正侧被限制为 6 的值。任何 6 或更大的输入值都将被限制为值 6(因此得名)。

    · ReLU6 函数由三个线性分量组成。它是一个非线性函数。

    7、SoftMax

    主要特征:

    · 这也是一个非线性激活函数。

    · softmax函数计算一个事件(类)在K个不同事件(类)上的概率值。它计算每个类别的概率值。所有概率之和为 1,这意味着所有事件(类)都是互斥的。

    用法:

    · 对于多类分类问题,必须在输出层使用 softmax 函数。

    · 不要在隐藏层中使用 softmax 函数。

    8、二元阶梯激活函数

    主要特征:

    · 此函数也称为阈值激活函数。我们可以设置任何值作为阈值,这里我们指定值 0。

    · 如果输入大于阈值,此函数输出值 1。如果输入等于或小于阈值,此函数输出值 0。

    · 此函数输出二进制值,0 或 1。

    · 该函数由两个线性分量组成。所以该函数是一个分段线性函数。所以二元阶跃函数是非线性函数而不是平滑函数。

    用法:

    · 现代神经网络模型中一般不使用该函数。

    · 但是可以用这个函数来解释诸如“火神经元”、“感知器的内部工作”等理论概念。因此,阶跃函数在理论上很重要。

    9、身份激活函数

    主要特征:

    · 这也称为线性激活函数。

    · 当我们谈论激活函数时,这是唯一被认为是线性函数的函数。

    · 该函数按原样输出输入值。不会对输入进行任何更改。

    用法:

    · 此功能仅用于解决回归问题的神经网络模型的输出层。

    · 不要在隐藏层中使用此功能。

    10、嗖嗖

    主要特征:

    • 该函数是通过将 sigmoid 函数乘以输入 z 来构造的。

    · 这是一个非线性函数。

    · 该图与 ReLU 激活函数的图非常相似。

    · 曲线比 ReLU 激活函数更平滑。在训练模型时,这种平滑度很重要。该函数在训练期间很容易收敛。

    用法:

    · 仅用于隐藏层。

    · 不要在神经网络模型的输出层使用这个函数。

    缺点:

    · Swish 函数的主要缺点是计算量很大,因为函数中包含了 e^z 项。这可以通过使用下面定义的称为“Hard Swish”的特殊功能来避免。

    12、H-Swish

    主要特征:

    · 与 Swish 功能基本相同的曲线。这在计算上很便宜,因为 sigmoid 函数被线性模拟所取代。

    用法:

    · H-Swish 的用法类似于 Swish 激活函数的用法。

    最后总结

    激活函数只是数学函数。激活函数应该具有的主要特征是函数是可微的,因为这是模型中反向传播的要求。

    选择正确的激活函数可以被认为是一种超参数调整,其中激活函数是通过了解问题定义并考虑模型的性能和损失函数的收敛性来手动选择的。这是上面讨论的不同激活函数的使用场景的摘要。在训练神经网络模型时,可以作为参考:

    · 神经网络的输入层节点不需要激活函数,定义输入层时也无需担心激活函数。

    输出层激活函数取决于我们正在解决的问题类型。在回归问题中,我们使用线性(恒等式)激活函数。在二元分类器中,我们使用 sigmoid 激活函数。在多类分类问题中,我们使用 softmax 激活函数。在多标签分类问题中,我们使用 sigmoid 激活函数输出每个类的概率值。

    在隐藏层中使用非线性激活函数神经网络 损失函数种类,通过考虑模型的性能或损失函数的收敛性来做出选择。你可以从 ReLU 激活函数开始,如果你有 Dying ReLU 问题,试试leaky ReLU。

    · 在 MLP 和 CNN 神经网络模型中神经网络 损失函数种类,ReLU 是隐藏层的默认激活函数。

    · 在 RNN 神经网络模型中,我们使用 sigmoid 或 tanh 函数作为隐藏层。tanh 函数具有更好的性能。

    · 只有恒等激活函数被认为是线性的。所有其他激活函数都是非线性的。

    不要在隐藏层中使用 softmax 和 identity 函数,在隐藏层中使用 tanh、ReLU、ReLU 的变体、swish 和 hard swish 函数。hard swish是最新的研究成果,你可以试试

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 神经网络模型中使用激活函数的定义和不同的使用场景

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论