首页 > 解决方案 > 在 keras 中创建自定义的“不可微分”激活函数

问题描述

是否可以创建表单的自定义激活函数:

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

所以基本上它是tanh(x)的线性化版本。

优化过程中是否存在问题,该函数在 -1 和 1 处有两个不可微分的位置?

我怎么能实现这个?

标签: pythonkerasneural-networkactivation-function

解决方案


使用剪辑功能很容易实现:

import keras.backend as K

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

由于梯度永远不会爆炸,这应该不是问题,这个函数的形状类似于 ReLU。


推荐阅读