Python Pybrain神经网络阶跃传递函数

Python Pybrain神经网络阶跃传递函数,python,machine-learning,neural-network,pybrain,Python,Machine Learning,Neural Network,Pybrain,有人能告诉我如何在pybrain中实现阶跃激活功能吗 例如 我似乎在中找不到任何实现 谢谢 编辑 我现在了解到,您可以扩展pybrain并创建自己的层。但是,根据文档,我仍然不确定如何做到这一点。有人能给我举个例子,说明如何创建一个实现阶跃激活功能的层吗?如果你想在一个经过反向传播训练的多层网络中使用它,那么这是不可能的。步长函数是不()可微的,这是backprop算法的要求 最接近阶跃函数的函数是 f(x) = max(-1, min(x, 1)) 这将剪辑x的值,以生成介于1和-1之间的值

有人能告诉我如何在pybrain中实现阶跃激活功能吗

例如

我似乎在中找不到任何实现

谢谢

编辑


我现在了解到,您可以扩展pybrain并创建自己的层。但是,根据文档,我仍然不确定如何做到这一点。有人能给我举个例子,说明如何创建一个实现阶跃激活功能的层吗?

如果你想在一个经过反向传播训练的多层网络中使用它,那么这是不可能的。步长函数是不()可微的,这是backprop算法的要求

最接近阶跃函数的函数是

f(x) = max(-1, min(x, 1))
这将剪辑
x
的值,以生成介于1和-1之间的值(如果愿意,可以将其更改为0和1)。此函数的次导数为

f'(x) = 1 if -1 < x < 1
        0 otherwise
f'(x)=1如果-1
不能解决您的问题?您能给我举个例子,说明如何使用上述函数作为传递函数吗?我不完全理解如何从文档中做到这一点:(根据源代码,我得出了结论。我相信你应该很清楚。@mmgp,我在理解文档时遇到了一些实际问题,你能给我一个简单的例子让我开始吗?很多人感谢我将使用这个层作为输出层,隐藏层将使用sigmoid函数。我能使用s吗输出层中的阶跃函数?@Relax\u Im\u A\u Quant:否。输出激活函数必须是次微分函数,以计算隐藏层到输出层的梯度。根据任务的不同,您可能可以使用在下训练的线性输出单位来近似阶跃单位。我对PyBrain不太熟悉,因此我不确定它是否允许激活函数和损失函数的解耦。很好-谢谢你的详细回答。如果我使用不同的训练算法,例如遗传算法,那么我能使用阶跃函数吗?@Relax\u Im\u a\u Quant:我想是的。但是请注意,GAs并没有比暴力搜索更聪明,所以你不能真正期望除了玩具问题,他们什么都可以做。
f'(x) = 1 if -1 < x < 1
        0 otherwise