文章目录

  • 在神经网络中为什么要引入非线性激励函数
  • Sigmoid
  • tahn
  • ReLU
  • Leaky ReLU
  • Parametric ReLU
  • Swish
  • 参考

在神经网络中为什么要引入非线性激励函数


为了回答上述这个问题,我们先抛出一个与之相关的问题:什么叫线性?

线性就是利用形如:f(x)=wx+bf(x) = wx + bf(x)=wx+b 的表达式来表示输入与输出的关系。假如输入 xxx 与输出 f(x)f(x)f(x) 存在线性的关系,我们用表达式 f(x)=wx+bf(x) = wx + bf(x)=wx+b 可以很好的表征出这种关系。但是,一旦这种客观的、我们要求解的关系中本就含有非线性关系的话,还用线性表达式去拟合(你可以理解为去表征输入与输出的关系)的话,就会出现非常严重欠拟合现象(无法表示或者表示存在严重误差)。
因为神经网络,存在大量的非线性关系的数据,所以需要引入非线程激励函数

Sigmoid


  • 优点:映射数据在[0, 1]之间;梯度下降明显;
  • 缺点:容易引起梯度消失;输出不是以0为中心;exp()exp()exp() 计算成本高

公式:σ(x)=11+e−x公式:\sigma(x) = \frac{1}{1+e^{-x}}公式:σ(x)=1+e−x1​
导数:σ(x)′=σ(x)(1−σ(x))导数:\sigma(x)'=\sigma(x)(1-\sigma(x))导数:σ(x)′=σ(x)(1−σ(x))

激活函数

导数

注意: Sigmoid 函数趋近 0 和 1 的时候变化率会变得平坦,也就是说,Sigmoid 的梯度趋近于 0。神经网络使用 Sigmoid 激活函数进行反向传播时,输出接近 0 或 1 的神经元其梯度趋近于 0。这些神经元叫作饱和神经元。因此,这些神经元的权重不会更新。此外,与此类神经元相连的神经元的权重也更新得很慢。该问题叫作梯度消失。因此,想象一下,如果一个大型神经网络包含 Sigmoid 神经元,而其中很多个都处于饱和状态,那么该网络无法执行反向传播。

tahn


  • 优点:映射到[-1, 1]之间,收敛快速;
  • 缺点:容易引起梯度消失;

公式:f(x)=tanh(x)=21+e−2x−1公式:f(x) = tanh(x) = \frac{2}{1+e^{-2x}} - 1公式:f(x)=tanh(x)=1+e−2x2​−1
导数:f(x)′=1−f(x)2导数:f(x)'=1-f(x)^2导数:f(x)′=1−f(x)2

激活函数

导数

Tanh 激活函数又叫作双曲正切激活函数(hyperbolic tangent activation function)。与 Sigmoid 函数类似,Tanh 函数也使用真值,但 Tanh 函数将其压缩至-1 到 1 的区间内。与 Sigmoid 不同,Tanh 函数的输出以零为中心,因为区间在-1 到 1 之间。你可以将 Tanh 函数想象成两个 Sigmoid 函数放在一起。在实践中,Tanh 函数的使用优先性高于 Sigmoid 函数。负数输入被当作负值,零输入值的映射接近零,正数输入被当作正值

ReLU


  • 优点:能快速收敛;能缓解梯度消失问题;提供神经网络稀疏表达能力;计算效率高;
  • 缺点:随着训练的进行,可能回出现神经元死亡,权重无法更新;不以0为中心;如果 x<0x < 0x<0,形成死区;

公式:f(x)=max(0,x)公式:f(x) = max(0, x)公式:f(x)=max(0,x)
导数:f(x)′={0forx<01forx≥0导数:f(x)' = \left\{\begin{matrix} 0& for& x < 0\\ 1& for& x \geq 0 \end{matrix}\right.导数:f(x)′={01​forfor​x<0x≥0​

激活函数

导数

当输入 x<0 时,输出为 0,当 x> 0 时,输出为 x。该激活函数使网络更快速地收敛。它不会饱和,即它可以对抗梯度消失问题,至少在正区域(x> 0 时)可以这样,因此神经元至少在一半区域中不会把所有零进行反向传播。由于使用了简单的阈值化(thresholding),ReLU 计算效率很高

Leaky ReLU


  • 优点:高效、快速收敛、正区域不饱和;对 ReLU的扩展;

公式:f(x)=max(0.1x,x)公式:f(x) = max(0.1x, x)公式:f(x)=max(0.1x,x)

激活函数

Leaky ReLU 的概念是:当 x < 0 时,它得到 0.1 的正梯度。该函数一定程度上缓解了 dead ReLU 问题,但是使用该函数的结果并不连贯。尽管它具备 ReLU 激活函数的所有特征,如计算高效、快速收敛、在正区域内不会饱和。
Leaky ReLU 可以得到更多扩展。不让 x 乘常数项,而是让 x 乘超参数,这看起来比 Leaky ReLU 效果要好。该扩展就是 Parametric ReLU.

Parametric ReLU


公式:f(x)=max(αx,x)公式:f(x) = max(\alpha x, x)公式:f(x)=max(αx,x)

导数

其中是超参数。这里引入了一个随机的超参数,它可以被学习,因为你可以对它进行反向传播。这使神经元能够选择负区域最好的梯度,有了这种能力,它们可以变成 ReLU 或 Leaky ReLU。

总之,最好使用 ReLU,但是你可以使用 Leaky ReLU 或 Parametric ReLU 实验一下,看看它们是否更适合你的问题。

Swish


公式:σ(x)=x1+e−x公式:\sigma(x) = \frac{x}{1+e^{-x}}公式:σ(x)=1+e−xx​

激活函数

根据论文(https://arxiv.org/abs/1710.05941v1),Swish 激活函数的性能优于 ReLU 函数。

根据上图,我们可以观察到在 x 轴的负区域曲线的形状与 ReLU 激活函数不同,因此,Swish 激活函数的输出可能下降,即使在输入值增大的情况下。大多数激活函数是单调的,即输入值增大的情况下,输出值不可能下降。而 Swish 函数为 0 时具备单侧有界(one-sided boundedness)的特性,它是平滑、非单调的。

参考

  1. 参考多处网络资源,由于笔记记录较久,现已经不可察,感谢童鞋们的无私分享;

常用的非线性激励函数相关推荐

  1. 非线性激励函数sigmoid,tanh,softplus,Relu

    目前有四种常见的非线性激励函数: sigmoid函数: tanh函数: softplus函数: Relu函数: 其对应得函数图像如下: 函数种类 优点 缺点 sigmoid函数 在整个定义域内可导 g ...

  2. 为什么引入非线性激励函数

    BAT机器学习面试1000题系列(第1~305题) - CSDN博客  https://blog.csdn.net/v_july_v/article/details/78121924 为什么引入非线性 ...

  3. 为什么引入非线性激励函数?

    @张雨石: 第一, 对于神经网络来说,网络的每一层相当于f(wx+b)=f(w'x),对于线性函数,其实相当于f(x)=x,那么在线性激活函数下,每一层相当于用一个矩阵去乘以x,那么多层就是反复的用矩 ...

  4. 引入非线性激励函数的作用

    deep neural network可以认为是特征的多层表达,这过程activation function的作用是提供非线性变换.如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况 ...

  5. sigmoid函数_常用的激活(激励)函数——深度学习笔记(建议收藏)

    激活函数(又叫激励函数,后面就全部统称为激活函数)是模型整个结构中的非线性扭曲力,神经网络的每层都会有一个激活函数.那他到底是什么,有什么作用?都有哪些常见的激活函数呢? 深度学习的基本原理就是基于人 ...

  6. 常用激活函数及其原理/应用,以及相关的问题

    什么是激活函数 激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式.类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个 ...

  7. 常用的激活函数汇总-Sigmoid, tanh, relu, elu

    激活函数(又叫激励函数,后面就全部统称为激活函数)是模型整个结构中的非线性扭曲力,神经网络的每层都会有一个激活函数.那他到底是什么,有什么作用?都有哪些常见的激活函数呢? 深度学习的基本原理就是基于人 ...

  8. 深度学习--TensorFlow(4)BP神经网络(损失函数、梯度下降、常用激活函数、梯度消失梯度爆炸)

    目录 一.概念与定义 二.损失函数/代价函数(loss) 三.梯度下降法 二维w与loss: 三维w与loss: 四.常用激活函数 1.softmax激活函数 2.sigmoid激活函数 3.tanh ...

  9. 图像滤波常用算法实现及原理解析

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 图像滤波是一种非常重要的图像处理技术,本文详细介绍了四种常见 ...

  10. 第12章 Stata非线性回归分析

    目录 12.1非参数回归分析 案例延伸 延伸1:设定散点图被分成垂直等宽波段的数量 延伸2:设定修匀的波段宽度 12.2转换变量回归分析 12.3非线性回归 案例延伸 延伸1:设定非线性回归模型中被估 ...

最新文章

  1. aws lambda使用, aws无服务器部署应用。 aws ecr凭证获取和使用。
  2. VMware workstation虚拟机不能联网解决方法
  3. pytorch dataloader num_workers参数设置导致训练阻塞
  4. Node.js 执行webpack命令出现的错误
  5. s5720找mac 华为交换机_【基础】交换机堆叠模式
  6. 表格列展示自动扩展_进步一点点:excel表格常规操作也能很快捷
  7. kratos的返回值问题与错误返回问题
  8. CSS 动态超链接样式 LVFHA 或 LVHFA
  9. Jumpserver安装和总结
  10. 【bzoj4530】[Bjoi2014]大融合 LCT维护子树信息
  11. java与xml转换 -- XStreamAlias
  12. bat脚本实现微信多开
  13. ev3pid巡线_基于LEGO使用PID算法进行单光巡线机器人设计的心得体会
  14. 【Python】快速简单实现图像背景更换
  15. 重构:改善既有代码的设计 阅读笔记
  16. 计算机网络(三)—— 数据链路层(1):数据链路层概述
  17. Scratch3.0----函数(2)
  18. android 备份游戏数据,用于Android游戏存档备份和存档还原的教程(图形中的详细信息)...
  19. liunx查看ftp服务器文件目录,linux查看ftp服务器目录
  20. 常见的三种Web应用程序:SWA, PWA 和Jamstack

热门文章

  1. iOS系统自带的视频播放器
  2. jquery api中文手册
  3. MySQL数据库学习路径 链接汇总
  4. 计算机组成原理简答题第二章
  5. jsonrpc java_jsonrpc环境搭建和简单实例
  6. h5 游戏 游戏框架 Phaser
  7. 卧槽!字节跳动的面试算法题,实在太变态了
  8. 如何生成PSSM矩阵
  9. 文献笔记(4)(2018ISSCC 13.3)
  10. python注册大漠插件,大漠插件安装包