Чим відрізняється LeakyReLU від PReLU?


42

Я думав, що обидва, PReLU та Leaky ReLU є

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

Керас, однак, обидві функції в документах .

Leaky 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 і f2 еквівалентні f (якщо припустити α(0,1) ?)

Відповіді:


50

Прямо з Вікіпедії :

введіть тут опис зображення

  • Leaky ReLU s дозволяють мати невеликий ненульовий градієнт, коли пристрій не активний.

  • Параметричні ReLU s продовжують цю ідею, перетворюючи коефіцієнт витоку в параметр, який дізнається разом з іншими параметрами нейронної мережі.


3
А, дякую, я завжди забуваю, що у Leaky ReLU є як гіперпараметр, а параметричні ReLU мають параметр . αα
Мартін Тома

1
Для Google-речі: це нормально . (Btw, для мене це питання є третім результатом зараз для "Leaky ReLU vs PReLU")
Мартін Тома,

3
@MartinThoma правда! Жодного образи за це! Те, як я знайшов відповідь, було досить дурним; Я не знав, що таке "P" в PReLU, тому я зрозумів це, а потім спробував розібратися, що таке PReLU, просто набравши "Parametric ReLU", який потрапив на сторінку вікіпедії. Я дізнався щось сьогодні через ваше запитання;)
Thomas W

1
Приємно. Ось так і має бути :-) У цьому випадку мій маленький огляд функції активації може бути цікавим і для вас. Стаття (частково) німецькою мовою, але, мабуть, для цієї частини це не має значення
Мартін Тома,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.