1

我有一个确定性神经网络,我想让它成为随机的。

两个问题:

  1. 我不确定这是否意味着我需要使用 sigmoid 的结果来确定输出的概率,或者概率是否只是神经元输入,而 sigmoid 函数现在是多余的。
  2. 如何使用 numpy 有效地做到这一点?我知道如何生成随机位,但是你如何在一个大数组中使用给定的概率来做到这一点?(如果重要的话,我当前的 sigmoid 函数是 tanh)
4

1 回答 1

0
  1. 仍然需要 sigmoid 函数,因为反向传播用于计算 sigmoid 函数的导数,而不是神经元是否被触发。
  2. 在像以前一样计算激活之后,我现在通过以下方式运行结果数组 x:

    return numpy.random.ranf(x.shape) < x

    我的时机是3.03323280772e-05

    另请注意,numpy 将布尔值视为 1 和 0,因此无需将结果传输回 int/float)。因为现在是 0 和 1,所以我不得不稍微更改我的代码 - 在我使用 -1 和 1 作为目标值和输入之前。

于 2013-04-24T15:59:53.783 回答