继续创作,加速生长!这是我参加「日新计划 10 月更文挑战」的第18天,点击查看活动详情

在线性可分的情况下,逻辑回归和线性回归,无论是闭解形式还是凸优化都能高度拟合,可是线性不可分的情况下 (XOR异或函数),需要非线性对数据的分布进行重新映射。

在神经网络中,咱们在每一层线性变换后叠加一个非线性激活函数,以避免多层网络等效于单层线性函数,然后取得更大的学习与拟合能力,以此来解决杂乱的非线性问题。

什么是BP神经网络

BP 神经网络是一种按照差错逆向传达算法练习的多层前馈神经网络,它是20 世纪 晚期神经网络算法的中心,也是现在深度学习算法的根底。

BP算法的基本思想是,学习进程由信号的正向传达和差错的反向传达两个进程组成。
正向传达时,把样本的特征从输入层进行输入,信号经过各个躲藏层逐层处理后,最终从输出层传出。关于网络的实际输出与期望输出之间的差错,把差错信号从最终一层逐层反传, 然后取得各个层的差错学习信号,再依据差错学习信号来修正各个层神经元的权值。

这种信号正向传达与差错反向传达,然后各个层调整权值的进程是循环往复地进行的。权值不断调整的进程,也便是网络学习练习的进程。进行此进程直到网络输出差错减小到预先设置的阈值以下,或者是超过预先设置的最大练习次数。

咱们先忽略BP神经网络中的代价函数、梯度下降法的相关常识,直接来议论为什么BP神经网络顶用的最多的激活函数是 ReLU函数。

那我先简略介绍一下BP神经网络中的四种非线性激活函数:sigmoid 函数,tanh 函数,softsign 函数和ReLU 函数

非线性激活函数

(1)sigmoid函数

sigmoid函数也被称之为 逻辑函数(logical function),函数公式为

为什么ReLU激活函数独受BP神经网络'恩宠'?

sigmoid函数图画如下:

为什么ReLU激活函数独受BP神经网络'恩宠'?

从函数图画中咱们能够看出 函数的取值规模是 0 – 1 之间

  • 当 x 趋向于 -∞ 的时分函数值趋向于 0;
  • 当 x 趋向于 +∞ 的时分函数值趋向于 1。

(2)tanh 函数

tanh函数也被称之为 双曲正切函数,函数公式为

为什么ReLU激活函数独受BP神经网络'恩宠'?

tanh函数图画如下:

为什么ReLU激活函数独受BP神经网络'恩宠'?

从函数图画中咱们能够看出 函数的取值规模是 -1 – 1 之间

  • 当 x 趋向于 -∞ 的时分函数值趋向于 -1;
  • 当 x 趋向于+∞ 的时分函数值趋向于 1。

(3)softsign 函数

函数公式为:

为什么ReLU激活函数独受BP神经网络'恩宠'?

softsign函数图画如下:

为什么ReLU激活函数独受BP神经网络'恩宠'?

从函数图画中咱们能够看出 函数的取值规模是 -1 – 1 之间

  • 当 x 趋向于 -∞ 的时分函数值趋向于 -1;
  • 当 x 趋向于 +∞ 的时分函数值趋向于 1。

(4)ReLU 函数

ReLU(The Rectified Linear Unit) 函数的公式为:

f(x)=max(0,x)f(x) = max(0 , x)

ReLU函数图画如下:

为什么ReLU激活函数独受BP神经网络'恩宠'?

从函数图画中咱们看出,当 x < 0 时,y = 0; 当 x > 0 时,y = x

为什么常用ReLU激活函数?

从上面的四种函数图画中,咱们能够很明显的看出 sigmoid、tanh、softsign激活函数都是S型函数,形状类似,只不过sigmoid 函数取值规模是 0-1 之间,tanh函数 和 softsign函数 取值规模是 -1 – 1 之间。

而ReLU激活函数,首要它整体对错线性的,可是内部关于一切的正值(x > 0),ReLU是线性的(identity),关于一切负值(x < 0),ReLU是零

那么这就意味着:运用ReLU激活函数,不会涉及到特别杂乱的数学运算,因而核算开销相比于别的三种激活函数较小,所以运用ReLU激活函数能够花费更少的时间进行练习或预测,收敛的更快

ReLU函数的 阶段性线性特征 意味着当 x 变大时,斜率不会平稳或“饱和” ,那么这就不会出现别的三种激活函数具有的梯度消失或梯度爆炸问题(关于梯度消失或梯度爆炸,我后续会在专门的文章进行讲解)

总结

以上,便是BP神经网络常常运用ReLU作为激活函数的原因,核算简略、收敛快、无梯度消失问题,后续我们在运用BP神经网络进行练习时,能够直接运用ReLU函数进行练习。