在深层神经网络中,ReLU优于乙状结肠功能的优势是什么?


141

非线性技术的现状是在深度神经网络中使用整流线性单位(ReLU)代替S型函数。有什么优势?

我知道在使用ReLU时训练网络会更快,并且会受到更多的生物学启发,还有其他优势吗?(也就是说,使用乙状结肠有什么缺点)?


我的印象是允许非线性进入您的网络是一种优势。但是我在下面的任何一个答案中都没有看到...
Monica Heddneck '16

2
@MonicaHeddneck ReLU和Sigmoid都是非线性的……
Antoine

Answers:


130

H=最高0一种一种=w ^X+b

一个主要好处是减小了消失梯度的可能性。当时会出现这种情况。在这种情况下,梯度具有恒定值。相反,随着x的绝对值增加,S形的梯度变得越来越小。ReLU的恒定梯度可加快学习速度。一种>0

ReLU的另一个好处是稀疏性。当时,出现稀疏性。层中存在的此类单元越多,所得表示越稀疏。另一方面,S形总是很可能生成一些非零值,从而导致表示密集。稀疏表示似乎比密集表示更有利。a0


2
说梯度时,是指权重还是输入x?@DaemonMaker
MAS

4
关于重量。基于梯度的学习算法始终相对于学习者的参数(即NN中的权重和偏差)采用梯度。
DaemonMaker

2
“密集”和“稀疏”“表示”是什么意思?谷歌“稀疏表示神经网络”的查询似乎没有提出任何有关。
Hi-Angel

6
“稀疏表示似乎比密集表示更有益。” 您能否提供资料或解释?
Rohan Saxena

1
我不明白这个答案是如何正确的。“减小了梯度消失的可能性”留下了一些希望。对于足够小的,ReLu为零。在学习过程中,当您处于这种状态时,某些神经元的梯度将消失。实际上,这显然是不可避免的,因为否则您的网络将是线性的。批量归一化主要解决了这一问题。这甚至都没有提到最重要的原因:ReLu和它们的渐变。与S形相比,计算速度非常快。X
亚历克斯R.18年

65

优点:

  • 乙状结肠:不炸裂激活
  • Relu:不消失的梯度
  • Relu:比起类似Sigmoid的函数,计算效率更高,因为Relu只需选择max(0,)而不像Sigmoids那样执行昂贵的指数运算X
  • Relu:在实践中,具有Relu的网络往往显示出比S型更好的收敛性能。(克里热夫斯基等人

坏处:

  • 乙状结肠:倾向于消除梯度(因为存在一种将梯度随着“ ”的增加而减小的机制,其中“ a ”是乙状结肠功能的输入。乙状结肠的梯度:S 'a = S a 1 S a 当“ a ”增长到无限大时,S 'a = S a 1 S a = 1 ×一种一种小号一种=小号一种1个-小号一种一种)。小号一种=小号一种1个-小号一种=1个×1个-1个=0

  • Relu:倾向于破坏激活(没有机制来约束神经元的输出,因为“ ”本身就是输出)一种

  • Relu:垂死的Relu问题-如果太多激活都低于零,那么与Relu关联的网络中的大多数单元(神经元)将仅输出零,换句话说,死亡,从而禁止学习。(在某种程度上可以解决这个问题,而是使用Leaky-Relu。)

7
您可能会发现,将美元符号放在等式周围(例如$x$产生,可以对Latex使用数学排版,这很有帮助。X
银鱼

露露:不消失的梯度。?? 对于所有x < b / a,露露一种X+b=0X<-b/一种
亚历克斯R.18年

40

只是补充其他答案:

消失的渐变

其他答案正确地指出,输入(绝对值)越大,S型函数的斜率越小。但是,可能更重要的效果是,S型函数的导数总是小于1。实际上最多为0.25!

不利的一面是,如果您有许多层,则将这些梯度相乘,并且许多小于1的值的乘积会很快变为零。

由于深度学习的最新技术表明,多层有助于很多,因此,Sigmoid函数的这一缺点是杀手game。您只是无法使用Sigmoid进行深度学习。

0一种<01个一种>0


10
这是我一直在寻找的答案。当人们谈论“消失的梯度”时,人们会不禁怀疑“ ReLu的梯度在其一半范围内正好是0。不是“消失””。通过提醒我们梯度在许多层上相乘来描述问题的方式带来了很多清晰度。
鲍里斯·哥列里克

3
@ guilherme-de-lazari建议在最后一行进行更正-relu的值是a> 0的值,但您正在谈论的梯度是a> 0的值为1
saurabh

4
如果这是主要原因,那么我们是否不能将Sigmoid缩放为1 /(1 + exp(-4x))?则导数最多为1(或重新缩放,以使我们可以选择大于1或小于1的选项)。我怀疑这样做的效果会更差,因为重新缩放比例还会缩小导数可与0区分的区域。但是我不确定此答案是否能说明问题。
彼得

5
1个/1个+经验值-一种X一种

7
另外,您可以使用S型曲线进行深度学习,您只需要对输入进行归一化即可,例如通过批处理归一化。这将集中您的输入,以避免使S型饱和。在有关批归一化的原始论文中,S形激活神经网​​络几乎与ReLus相当:arxiv.org/pdf/1502.03167.pdf
Alex

7

除了避免梯度消失的问题之外,ReLU的一个优点是运行时间短得多。max(0,a)的运行速度快于任何Sigmoid函数(例如,逻辑函数= 1 /(1 + e ^(-a)),该函数使用的指数经常执行时运算速度较慢)。对于前馈和后向传播都是如此,因为与S形相比,ReLU的梯度(如果a <0,= 0 else = 1)也非常容易计算(对于逻辑曲线= e ^ a /(((1 + e ^ a)^ 2))。

尽管ReLU确实具有死细胞的缺点,这限制了网络的容量。为了解决这个问题,如果您注意到上述问题,请使用ReLU的变体,例如泄漏的ReLU,ELU等。


1
+1。这是这里唯一正确的答案之一。您还可以使用批量归一化来集中输入以抵消死亡的神经元。
Alex R.18年

2

在“ 稀疏与密集”性能辩论中还需要完成一个额外的答案。

不再考虑NN,只考虑线性代数和矩阵运算,因为前向和后向传播是一系列矩阵运算。

现在请记住,存在许多优化的运算符可应用于稀疏矩阵,因此在我们的网络中优化这些运算可以极大地提高算法的性能。

希望对您有所帮助...


1

主要优点是ReLu的导数为0或1,因此乘以它不会导致权重逐渐远离损失函数的最终结果而消失:

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.