有人能告诉我如何在pybrain中实现一个阶跃激活函数吗?
例如:
def stepActivationFunction(n): if n > 0.5: return 1. else: return 0.
我在pybrain.structure.modules中似乎找不到任何实现方法?
谢谢
编辑
我现在明白可以扩展pybrain并创建自己的层。然而,根据文档,我仍然不确定如何做到这一点。有人能展示一个如何创建实现阶跃激活函数的层的例子吗?
回答:
如果你想在使用反向传播训练的多层网络中使用这个函数,这是不可行的。阶跃函数不是(次)可微的,这是反向传播算法的一个要求。
你能接近阶跃函数的最接近的函数是
f(x) = max(-1, min(x, 1))
这个函数将x
的值剪切到-1到1之间(如果你喜欢,可以改为0到1)。这个函数的次导数是
f'(x) = 1 if -1 < x < 1 0 otherwise