【问题标题】:Logistic function misclassification逻辑函数错误分类
【发布时间】: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)

npNumPy 导入包的名称。由于 XOR 逻辑使用的是 0 和 1,因此逻辑函数应该是适当的激活函数。尽管如此,我得到的结果在所有情况下都接近 0.5,即 0 和 1 的任何输入组合都会产生接近 0.5 的值。我说的有什么错误吗?

不要犹豫,向我询问更多上下文或更多代码。提前致谢。

【问题讨论】:

  • 您可以将logistic(data) 的输出分配给logistic_prime 中的局部变量并使用它两次,而不是实际调用该函数两次。这与你的问题无关,但至少训练会失败得更快。

标签: python numpy activation-function


【解决方案1】:

我和你有同样的问题。 当数据不能被线性超平面划分时,就会出现问题。 尝试训练数据:

X = [[-1,0],[0,1],[1,0],[0,-1]]
Y = [1,0,1,0]

如果你把它画在一个坐标上,那么你就可以了,它不是线性可分的。 在logistic上训练它,参数都接近0,结果接近0.5。

另一个线性可分的例子是使用Y = [1,1,0,0] 和后勤工作。

【讨论】:

    猜你喜欢
    • 2018-03-12
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 2013-06-20
    相关资源
    最近更新 更多