美文网首页
深度神经网络中的激活函数

深度神经网络中的激活函数

作者: nlpming | 来源:发表于2020-08-22 18:38 被阅读0次

简介

  • 线性模型是机器学习领域中最基本也是最重要的工具,以逻辑回归和线性回归为例;在真实情况中,我们往往会遇到线性不可分问题(例如XOR异或函数),需要非线性变换对数据的分布进行重新映射。
  • 对于深度神经网络,我们在每一层线性变换后叠加一个非线性激活函数,以避免多层网络等效于单层线性函数,从而获得更强大的学习与拟合能力。

常用激活函数及其导数

(1)sigmoid 激活函数

f(z) = \frac{1}{1 + e^{-z}},sigmoid激活函数导数:
f'(z) = f(z)(1-f(z))

sigmoid激活函数及其导数.png
(2)tanh 激活函数

f(z) = tanh(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}},tanh激活函数导数:
f'(z) = 1 - f(z)^2

tanh激活函数及其导数.png
(3)relu 激活函数

f(z) = max(0,z),relu激活函数导数:
f(z) = \begin{cases} 1, & \text{$z > 0$} \\ 0, & \text{$z \leq 0$} \end{cases}

relu激活函数及其导数.png

为什么sigmoid和tanh激活函数会导致梯度消失的现象?

  • 由sigmoid函数图像可知,它将输入映射到区间(0, 1);当z很大时,f(z)趋近于1,当z很小时,f(z)趋近于0。其导数f'(z)z很大或很小时都会趋近于0,造成梯度消失的现象;
  • 有tanh函数图像可知,当z很大f(z)趋近于1,当z很小f(z)趋近于-1;其导数f'(z)z很大或很小时都会趋近于0,同样会出现“梯度消失”现象;

Relu系列的激活函数相对于sigmoid和tanh激活函数的优点是什么?它们有什么局限性以及如何改进?

  • 优点:
    (1)从计算角度上,sigmoid和tanh激活函数均需要计算指数,复杂度高;而relu只需要一个阈值即可得到激活值;
    (2)relu的非饱和性可以有效解决梯度消失的问题,提供相对宽的激活边界;
    (3)relu的单侧抑制提供了网络的稀疏表达能力;

  • 局限性
    (1)relu的局限性在于其训练过程中会导致神经元死亡的问题。 这是由于函数f(z) = max(0, z)导致梯度在经过该relu单元时被置为0,且在之后也不被任何数据激活,即流经该神经元的梯度永远为0,不对任何数据产生响应。
    (2)在实际训练中,如果学习率设置较大,会导致超过一定比例的神经元不可逆死亡,进而参数梯度无法更新,整个训练过程失败。

Relu激活函数的改进

  • 为了解决上述问题,人们设计了relu的变种 Leaky Relu 其形式表示为:
    f(z) = \begin{cases} z, & \text{$z > 0$} \\ az, & \text{$z \leq 0$} \end{cases}
    Leaky Relu与relu的区别在于,当z < 0的时候其值不为0,而是一个斜率为a的线性函数,一般a为一个很小的正常数。这样既实现了单侧抑制,又保留了部分负梯度信息以至于不完全丢失。但是另一方面,a值的选择增加了问题难度,需要较强的人工先验或多次重复训练以确定合适的参数值。
  • 基于此,参数化的 PRelu(Parametric Relu) 应运而生。它与 Leaky Relu 的主要区别是将负轴部分斜率a作为网络的一个可学习的参数,进行反向传播训练,与其他含参数网络层联合优化。
  • 另一种改进 Random Relu 增加了“随机化”机制,具体地在训练过程中,斜率a作为一个满足某种分布的随机采样,测试时再固定下来。Random relu在一定程度上能起到正则化的作用。

参考资料

相关文章

  • 一文理清深度学习前馈神经网络

    ? Index 多层感知机(MLP)介绍 深度神经网络的激活函数 深度神经网络的损失函数 多层感知机的反向传播算法...

  • 3. 深度学习- 常用的激活函数

    在学习神经网络中,我们会常常碰到激活函数这个名词。那么什么是激活函数?激活函数激活的是什么?在神经网络中,有什么用...

  • 深度学习基础

    深度学习 一、神经网络基础 1.感知机 2.神经网络 激活函数 ①sigmoid 函数 ②tanh函数(双曲正切函...

  • 激活函数的选择

    “激活函数”,又称“非线性映射函数”,是深度卷积神经网络中不可或缺的关键模块。可以说,深度网络模型其强大的表示能力...

  • 机器学习笔记(五)——激活函数

    激活函数区别和作用 本质:    激活函数是来向神经网络中引入非线性因素,通过激活函数,神经网络就可以拟合各种曲线...

  • 机器学习中常见函数

    1、激活函数 常用于神经网络,激活函数增加了神经网络模型的非线性特征 2、损失函数 机器学习过程中中,我们期望样本...

  • 神经网络的激活函数总结

    导言 激活函数在神经网络中具有重要的地位。在SIGAI之前的公众号文章“理解神经网络的激活函数”中,我们回答了3个...

  • ReLu 激活函数理解

    ReLU激活函数:简单之美深度学习中的激活函数与梯度消失

  • 65-R语言训练深度预测模型

    《深度学习精要(基于R语言)》学习笔记 1、概览 本文涉及以下主题:• 深度前馈神经网络入门• 常见的激活函数:整...

  • 深度神经网络中的激活函数

    简介 线性模型是机器学习领域中最基本也是最重要的工具,以逻辑回归和线性回归为例;在真实情况中,我们往往会遇到线性不...

网友评论

      本文标题:深度神经网络中的激活函数

      本文链接:https://www.haomeiwen.com/subject/sfwvjktx.html