Создать собственную «недифференцируемую» функцию активации в керасе - PullRequest
0 голосов
/ 10 апреля 2019

Можно ли создать пользовательскую функцию активации вида:

def newactivation(x):
    if x <= -1:
        return -1
    elif x > -1 and x <= 1
        return x
    else :
        return 1

Так что в основном это будет линеаризованная версия tanh (x).

Есть ли проблема при оптимизации, что функция имеет две недифференцируемые позиции в -1 и 1?

Как я мог это реализовать?

1 Ответ

2 голосов
/ 10 апреля 2019

Это легко реализовать с помощью функции закрепления:

import keras.backend as K

def activation(x):
    return K.clip(x, -1.0, 1.0)

Поскольку градиент никогда не взрывается, это не должно вызывать проблем, эта функция имеет форму, аналогичную ReLU.

...