在 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
是前向传递的隐藏激活。
除此之外,我认为您的实施没有任何问题。因此,如果您仍然在修复后得到了您不期望的值,那么问题的原因就在别处。
我正在尝试为 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
是前向传递的隐藏激活。
除此之外,我认为您的实施没有任何问题。因此,如果您仍然在修复后得到了您不期望的值,那么问题的原因就在别处。