【问题标题】:How could this generate a mean of zero这怎么可能产生零均值
【发布时间】:2017-06-08 11:50:57
【问题描述】:

我正在关注 [this] 关于神经网络的教程,他谈到有一个带有此代码的 mean of 0:

syn0 = 2*numpy.random.random((3,1)) - 1

这怎么会产生零平均值?测试它的代码 [here]。将其乘以 2 并减去 1 的目的是什么?有 3 个输入和 1 个输出,这就是为什么它的大小为 (3,1)

【问题讨论】:

  • 我认为它只是一个 3 行 1 列的数组,具有 null esperance。 E(syn0)=2*E(数组)-E(1)=2*(1/2)-1=0.

标签: python python-3.x numpy math neural-network


【解决方案1】:

np.random.random 从 [0, 1) 上的均匀分布中抽取数字。此分布的预期值(平均值)为1/2 * (a + b),其中a 和b 是上下边界(0 和1)。所以期望值为 0.5。

np.random.random(10**6).mean()
Out: 0.50038769812077288

这使得syn0 的预期值为零 (2 * 0.5 - 1 = 0)。

【讨论】:

  • 但是对于 3 个数字,平均值可能相差很多,而不是零,对吧?
  • 他为什么不直接减去 0.5?
  • 是的,随着样本量的增加,您将接近实际平均值。对于像这样非常小的样本量,随机数的平均值可以是 0 到 1 之间的任何值。如果只考虑平均值,也可以减去 0.5。它们会生成具有相同均值的不同分布。
  • 最后一个问题:他为什么不把它们都做成0?他们是随机的有好处吗?
猜你喜欢
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 2018-11-06
相关资源
最近更新 更多