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

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)

質問

何かおかしくなりましたか?f1およびf2fと同等ではありませんf\ alpha \ in(0、1)を想定α(0,1)?)

回答:


50

ウィキペディアから直接

ここに画像の説明を入力してください

  • Leaky ReLUにより、ユニットがアクティブでないときにゼロ以外の小さな勾配が可能になります。

  • パラメトリックReLUは、他のニューラルネットワークパラメーターとともに学習されるパラメーターに漏れ係数を作成することにより、この考えをさらに進めます。


3
ああ、おかげで、私はいつも漏れReLUsを持っていることを忘れてハイパーパラメトリックReLUsてきたようにパラメータとして。αα
マーティントーマ

1
Googleの場合:大丈夫です。(ところで、私にとってこの質問は「Leaky ReLU vs PReLU」の3番目の結果です)
マーティン・トーマ

3
@martinthoma true!そのために全く犯罪はありません!私が答えを見つけた方法もかなり愚かでした。私はPReLUの「P」が何であるか知らなかったので、それを理解し、「Parametric ReLU」と入力するだけでPReLUが何であるかを見つけて、ウィキペディアのページに移動しました。あなたの質問のために私は今日何かを学びました;)
トーマスW

1
いいね それがどうあるべきか:-)この場合、私の小さなアクティベーション機能の概要もあなたにとって興味深いかもしれません。記事はドイツ語で(部分的に)であるが、私はそれが問題でないことを部分の推測
マーティン・トーマ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.