> 文章列表 > 动手学深度学习第4.8章某公式推导

动手学深度学习第4.8章某公式推导

动手学深度学习第4.8章某公式推导

这个公式是在计算神经网络中某个隐藏层神经元的输出 oio_ioi期望值 E[oi]E[o_i]E[oi]方差 Var[oi]\\mathrm{Var}[o_i]Var[oi]。为了简化讨论,我们假设前一层神经元的输出 xjx_jxj 和权重 wijw_{ij}wij 之间是独立的,并且它们的期望值为零,即 E[xj]=0E[x_j] = 0E[xj]=0E[wij]=0E[w_{ij}] = 0E[wij]=0。同时,我们假设权重 wijw_{ij}wij 的方差为 σ2\\sigma^2σ2,前一层神经元输出 xjx_jxj 的方差为 γ2\\gamma^2γ2

现在我们来看这个公式的推导过程:

  1. 首先计算输出 oio_ioi 的期望值 E[oi]E[o_i]E[oi]
    E[oi]=∑j=1ninE[wijxj]=∑j=1ninE[wij]E[xj]=0,\\begin{aligned} E[o_i] & = \\sum_{j=1}^{n_\\mathrm{in}} E[w_{ij} x_j] \\\\ & = \\sum_{j=1}^{n_\\mathrm{in}} E[w_{ij}] E[x_j] \\\\ & = 0, \\end{aligned} E[oi]=j=1ninE[wijxj]=j=1ninE[wij]E[xj]=0,
    这里我们使用了独立随机变量的期望值乘法规则:E[XY]=E[X]E[Y]E[XY] = E[X]E[Y]E[XY]=E[X]E[Y]

  2. 接下来计算输出 oio_ioi 的方差 Var[oi]\\mathrm{Var}[o_i]Var[oi]
    Var[oi]=E[oi2]−(E[oi])2=∑j=1ninE[wij2xj2]−0=∑j=1ninE[wij2]E[xj2]=ninσ2γ2.\\begin{aligned} \\mathrm{Var}[o_i] & = E[o_i^2] - (E[o_i])^2 \\\\ & = \\sum_{j=1}^{n_\\mathrm{in}} E[w^2_{ij} x^2_j] - 0 \\\\ & = \\sum_{j=1}^{n_\\mathrm{in}} E[w^2_{ij}] E[x^2_j] \\\\ & = n_\\mathrm{in} \\sigma^2 \\gamma^2. \\end{aligned} Var[oi]=E[oi2](E[oi])2=j=1ninE[wij2xj2]0=j=1ninE[wij2]E[xj2]=ninσ2γ2.
    在这里,我们首先使用了方差的定义 Var[X]=E[X2]−(E[X])2\\mathrm{Var}[X] = E[X^2] - (E[X])^2Var[X]=E[X2](E[X])2。然后,我们再次应用了独立随机变量的期望值乘法规则:E[X2Y2]=E[X2]E[Y2]E[X^2 Y^2] = E[X^2]E[Y^2]E[X2Y2]=E[X2]E[Y2]。最后,由于所有权重 wijw_{ij}wij 和神经元输出 xjx_jxj 的方差分别相等(分别为 σ2\\sigma^2σ2γ2\\gamma^2γ2),我们可以将求和转化为 ninσ2γ2n_\\mathrm{in} \\sigma^2 \\gamma^2ninσ2γ2

所以,这个公式中的 ninσ2γ2n_\\mathrm{in} \\sigma^2 \\gamma^2ninσ2γ2 是通过计算神经元输出 oio_ioi 的方差 Var[oi]\\mathrm{Var}[o_i]Var[oi] 推导出来的。