LeakyReLU和PReLU有什么区别?


42

我认为PReLU和Leaky ReLU都是

f(x)=max(x,αx) with α(0,1)

但是Keras在docs中具有这两个功能。

泄漏的ReLU

LeakyReLU的来源

return K.relu(inputs, alpha=self.alpha)

因此(请参阅relu代码

f1(x)=max(0,x)αmax(0,x)

预备

PReLU的来源

def call(self, inputs, mask=None):
    pos = K.relu(inputs)
    if K.backend() == 'theano':
        neg = (K.pattern_broadcast(self.alpha, self.param_broadcast) *
               (inputs - K.abs(inputs)) * 0.5)
    else:
        neg = -self.alpha * K.relu(-inputs)
    return pos + neg

因此

f2(x)=max(0,x)αmax(0,x)

我做错了吗?f1f_2是否不f2等于f(假设α(0,1)?)

Answers:


50

直接来自维基百科

在此处输入图片说明

  • 当设备不工作时,泄漏的ReLU允许一个小的非零梯度。

  • 参数ReLU通过将泄漏系数作为一个参数与其他神经网络参数一起学习,使这一思想更进一步。


3
啊,谢谢,我总是忘记泄漏的ReLU以作为超参数,而Parametric ReLU以作为参数。αα
马丁·托马

1
对于谷歌-件事:那没关系。(顺便说一句,对我来说,这个问题是“泄漏的ReLU vs PReLU”的第三个结果)
Martin Thoma

3
@MartinThoma真的!根本没有冒犯!我发现答案的方法也很愚蠢。我不知道PReLU中的“ P”是什么,所以我弄清楚了这一点,然后尝试通过仅输入“ Parametric ReLU”来弄清楚PReLU是什么,这使我进入了Wikipedia页面。由于您的问题,我每天都学到了一些东西;)
Thomas W

1
真好 那就应该这样:-)在这种情况下,我的激活功能概述对您也可能很有趣。这篇文章(部分)是德语的,但我想对于这一部分来说应该没关系
Martin Thoma
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.