【发布时间】:2017-08-03 14:42:11
【问题描述】:
我在尝试教神经网络 XOR 逻辑函数时遇到了麻烦。我已经使用双曲正切和 ReLU 作为激活函数对网络进行了成功的训练(关于 ReLU,我知道它不适合这类问题,但我仍然想测试它)。尽管如此,我还是无法让它与logistic function 一起工作。我对函数的定义是:
def logistic(data):
return 1.0 / (1.0 + np.exp(-data))
及其派生词:
def logistic_prime(data):
output = logistic(data)
return output * (1.0 - output)
np 是 NumPy 导入包的名称。由于 XOR 逻辑使用的是 0 和 1,因此逻辑函数应该是适当的激活函数。尽管如此,我得到的结果在所有情况下都接近 0.5,即 0 和 1 的任何输入组合都会产生接近 0.5 的值。我说的有什么错误吗?
不要犹豫,向我询问更多上下文或更多代码。提前致谢。
【问题讨论】:
-
您可以将
logistic(data)的输出分配给logistic_prime中的局部变量并使用它两次,而不是实际调用该函数两次。这与你的问题无关,但至少训练会失败得更快。
标签: python numpy activation-function