【发布时间】:2022-10-15 03:41:55
【问题描述】:
我根据 Sebastian Lague 关于神经网络的视频创建了一个用于创建神经网络的测试脚本 (On repl.it)。在使用导数优化梯度下降之前,一切都正常运行。
在实现所有导数之后,输出的成本收敛到一个看似任意的值。我做了一些测试,看看我的数学是否有问题,但一切似乎都正常。
我的猜测之一是它可能与这些功能有关:
def ActivationFunction(input):
input = np.clip(input, -500, 500)
return 1 / (1 + np.exp(-input))
def ActivationDerivative(input):
input = np.clip(input, -500, 500)
return np.exp(input) / ((np.exp(input) + 1) ** 2)
我遇到了溢出错误,所以我在输入中添加了一个最小值/最大值。成本的收敛值似乎基于最小/最大值。
ActivationFunction 是一个 sigmoid 函数。 ActivationDerivative 应该是该函数的导数。在尝试实施衍生产品以优化脚本之前,这些功能工作得非常好。
我分配给神经网络尝试解决的唯一任务是解决 XOR 门并确定二进制数是偶数还是奇数。
我想知道究竟是什么导致了这种任意收敛的成本值以及如何解决它。
【问题讨论】:
标签: python neural-network