在 python 中实现 sigmoid 函数

Implementing sigmoid function in python

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

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

我的问题是这个函数总是返回一个介于 0.7 和 0.8 之间的值。这个问题在输出过程中表现出重大影响。

我们会提出任何建议。

你的函数实现正确,但是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 是前向传递的隐藏激活。

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