1

我正在尝试为 XOR 函数实现一个简单的神经网络。我使用的激活函数是 Sigmoid 函数。sigmoid函数的代码是:

def ActivationFunction(a)
    e = 2.671                   # Sigmoid Function
    expo = e ** a
    val = expo / (1 + expo)
    return val

我的问题是这个函数总是返回一个介于 0.7 和 0.8 之间的值。这个问题在输出过程中显示出主要影响。

任何建议都会被采纳。

4

1 回答 1

1

您的功能已正确实现,但是 的值e不正确。

我建议从那里导入math和使用预定义的e常量。

import math    
def sigmoid(x):
     return 1 / (1 + math.e ** -x)  # mathematically equivalent, but simpler

因此,导数:

def sigmoid_derivative(a):
    return a * (1 - a)

a前向传递的隐藏激活在哪里。

除此之外,我认为您的实施没有任何问题。因此,如果您在修复后仍然获得您不期望的值,那么问题的原因就在其他地方。

于 2018-05-10T06:13:03.447 回答