一般神经网络的微分与网络参数的初始化

server/2024/11/13 9:07:56/

(文章的主要内容来自电科的顾亦奇老师的 Mathematical Foundation of Deep Learning, 有部分个人理解)

一般深度网络>神经网络的微分

上周讨论的前向和反向传播算法可以推广到任意深度网络>神经网络的微分。
对于一般的网络来说,可能无法逐层分割,但仍然可以用流图来表示。因此,反向传播是通过从输出神经元开始、向后传递信息并在输入处结束来执行的。

更准确地说,给定从 R d \mathbb{R}^{d} Rd R \mathbb{R} R网络>神经网络 f ( x ; θ ) f(x; θ) f(x;θ) 映射图,假设总共有 K 个神经元,我们用 x 1 , … , x d x_1, \dots ,x_d x1,,xd N d + 1 , … , N d + K N_{d+1}, \dots ,N_{d+K} Nd+1,,Nd+K标记输入。为了方便起见,神经元被标记为使得有向边总是从小索引到大索引。

我们用 w i , j w_{i,j} wi,j 表示从神经元 N i N_i Ni(或输入 x i x_i xi)到神经元 N j N_j Nj 的边的权重。 令 P j P_j Pj 为由神经元 N j N_j Nj 的直接前驱的索引组成的集合 ( d + 1 ≤ j ≤ d + K ) (d + 1 ≤ j ≤ d + K) (d+1jd+K)。 类似地,令 S j S_j Sj 为由顶点 x j x_j xj N j N_j Nj 的直接后继索引组成的集合 ( 1 ≤ j < d + K ) (1 ≤ j < d + K) (1j<d+K)。 例如,在图 2.10 中, P 7 = { 2 , 3 , 5 , 6 } P_7 = \{2,3,5,6\} P7={2,3,5,6} S 7 = { 9 , 10 , 11 } S_7 = \{9,10,11\} S7={9,10,11}
在这里插入图片描述
现在,对于任何 1 ≤ j ≤ d + K 1 ≤ j ≤ d + K 1jd+K,假设以下计算发生在 N j N_j Nj:
y j = σ j ( q j ) , q j = ∑ k ∈ P j w k , j y k + b j , for   d + 1 ≤ j ≤ d + K . (2.27) y _ { j } = \sigma _ { j } ( q _ { j } ) , \text{ } \text{ } q _ { j } = \sum _ { k \in P _ { j } } w _ { k , j } y _ { k } + b _ { j } , \text{for }\text{ } d + 1 \leq j \leq d + K . \tag{2.27} yj=σj(qj),  qj=kPjwk,jyk+bj,for  d+1jd+K.(2.27)

y j = x j , for   1 ≤ j ≤ d . (2.28) y _ { j } = x _ { j } , \text{ }\text{ }\text{for }\text{ } 1 \leq j \leq d . \tag{2.28} yj=xj,  for  1jd.(2.28)
其中 σ j σ_j σj b j b_j bj N j N_j Nj 的激活函数和偏差。
恒等式(2.28)仅仅是为了符号方便。
请注意, y j y_j yj 表示顶点 N j N_j Nj x j x_j xj 的输出值。
我们可以使用一种流程图来表示这个过程:
在这里插入图片描述

另外,我们将 p j p _ { j } pj表示为 ∂ f ( x ; θ ) ∂ q j \frac { \partial f ( x ; \theta ) } { \partial q _ { j } } qjf(x;θ) 表示为 d + 1 ≤ j ≤ d + K d + 1 ≤ j ≤ d + K d+1jd+K.
使用链式法则,如果 i ∈ S j i ∈ S_j iSj ,我们有 (对于节点 N j N_j Nj, f对其任意一个入度边 w i , j w_{i,j} wi,j偏导表示) (这里 y i y_i yi表示某个前导节点)
∂ f ( x ; θ ) ∂ w i , j = ∂ f ( x ; θ ) ∂ q j ⋅ ∂ q j ∂ w i , j = p j ⋅ y i ⋅ (2.29) \frac { \partial f ( x ; \theta ) } { \partial w _ { i , j } } = \frac { \partial f ( x ; \theta ) } { \partial q _ { j } } \cdot \frac { \partial q _ { j } } { \partial w _ { i , j } } = p _ { j } \cdot y _ { i \cdot } \tag{2.29} wi,jf(x;θ)=qjf(x;θ)wi,jqj=pjyi(2.29) ∂ f ( x ; θ ) ∂ b j = ∂ f ( x ; θ ) ∂ q j ⋅ ∂ q j ∂ b j = p j . (2.30) \frac { \partial f ( x ; \theta ) } { \partial b _ { j } } = \frac { \partial f ( x ; \theta ) } { \partial q _ { j } } \cdot \frac { \partial q _ { j } } { \partial b _ { j } } = p _ { j } . \tag{2.30} bjf(x;θ)=qjf(x;θ)bjqj=pj.(2.30)
另外, p j p_j pj也可通过 p j = ∂ f ( x ; θ ) ∂ q j = ∑ k ∈ S j ∂ f ( x ; θ ) ∂ q k ⋅ ∂ q k ∂ y j ⋅ d y j d q j = σ j ′ ( q j ) ⋅ ∑ k ∈ S j p k ⋅ w j , k for   d + 1 ≤ j < d + K . (2.32) p _ { j } = \frac { \partial f ( x ; \theta ) } { \partial q _ { j } } = \sum _ { k \in S _ { j } } \frac { \partial f ( x ; \theta ) } { \partial q _ { k } } \cdot \frac { \partial q _ { k } } { \partial y _ { j } } \cdot \frac { d y _ { j } } { d q _ { j } } \\ = \sigma _ { j } ^ { \prime } ( q _ { j } ) \cdot \sum _ { k \in S _ { j } } p _ { k } \cdot w _ { j , k } \text{ }\text{ }\text{ }\text{for }\text{ } d + 1 \leq j < d + K .\tag{2.32} pj=qjf(x;θ)=kSjqkf(x;θ)yjqkdqjdyj=σj(qj)kSjpkwj,k   for  d+1j<d+K.(2.32)来计算.

同时, 我们有
∂ f ( x ; θ ) ∂ x j = ∑ k ∈ S j ∂ f ( x ; θ ) ∂ q k ⋅ ∂ q k ∂ y j ⋅ ∂ y j ∂ x j (2.33) \frac { \partial f ( x ; \theta ) } { \partial x _ { j } } = \sum _ { k \in S _ { j } } \frac { \partial f ( x ; \theta ) } { \partial q _ { k } } \cdot \frac { \partial q _ { k } } { \partial y _ { j } } \cdot \frac { \partial y _ { j } } { \partial x _ { j } }\tag{2.33} xjf(x;θ)=kSjqkf(x;θ)yjqkxjyj(2.33)
因此,我们可以首先实现前向传播 (2.27)-(2.28),它传递来自输入 x 1 , … , x d x_1, \dots, x_d x1,,xd 的信息到输出神经元 N d + K N_{d+K} Nd+K
在此阶段,我们从小到大地计算并保存 j = 1 , … , d + K j = 1,\dots, d+K j=1,,d+K 时的 { y j } \{y_j\} {yj} { q j } \{q_j\} {qj}
接下来,我们实现反向传播 (2.29)-(2.32),它从 N d + K N_{d+K} Nd+K 传递到输入。 具体来说,我们依照 j = d + K , d + K − 1 , … , d + 1 j = d+K, d+K-1,\dots, d+1 j=d+K,d+K1,,d+1计算 { p j } \{p_j\} {pj} { ∂ f ( x ; θ ) ∂ w i , j } i ∈ P j \left\{ \frac { \partial f ( x ; \theta ) } { \partial w _ { i , j} } \right\} _ { i \in P j } {wi,jf(x;θ)}iPj { ∂ f ( x ; θ ) ∂ b j } \left\{ \frac { \partial f ( x ; \theta ) } { \partial b_j} \right\} {bjf(x;θ)}. 最终, j = 1 , … , d j = 1,\dots, d j=1,,d时的 { ∂ f ( x ; θ ) ∂ x j } \left\{ \frac { \partial f ( x ; \theta ) } { \partial x_j} \right\} {xjf(x;θ)}可被公式(2.33)计算
在这里插入图片描述
在这里插入图片描述

由路径制定的导数

更一般地,我们可以制定导数的封闭形式。
在图论意义上,将 P ( j , n 1 , n 2 , … , n k , d + K ) \mathcal{P}(j, n_1, n_2, \dots, n_k, d + K) P(j,n1,n2,,nk,d+K) 表示为从顶点 N j N_j Nj x j x_j xj 通过神经元 N n 1 , N n 2 , … , N n k N_{n_1}, N_{n_2}, \dots, N_{n_k} Nn1,Nn2,,Nnk 到输出神经元 N d + K N_{d+K} Nd+K的路径。
然后根据链式法则,对于任何 d + 1 ≤ j ≤ d + K d + 1 ≤ j ≤ d + K d+1jd+K i ∈ P j i ∈ P_j iPj,有
∂ f ( x ; θ ) ∂ w i , j = y i ⋅ ∑ P ( j , n 1 , n 2 , … , n k , d + K ) σ j ′ ( q j ) ⋅ w j , n 1 ⋅ σ n 1 ′ ( q n 1 ) ⋅ w n 1 , n 2 ⋅ σ n 2 ′ ( q n 2 ) ⋯ w n k , d + K ⋅ σ d + K ′ ( q d + K ) , (2.34) \frac { \partial f ( x ; \theta ) } { \partial w _ { i , j } } = y _ { i } \cdot \sum _ { \mathcal{P} ( j , n _ { 1 } , n _ { 2 } , \ldots , n _ { k } , d + K ) } \sigma _ { j } ^ { \prime } ( q _ { j } ) \cdot w _ { j , n _ { 1 } } \cdot \sigma _ { n _ { 1 } } ^ { \prime } ( q _ { n _ { 1 } } ) \cdot w _ { n _ { 1 } , n _ { 2 } } \cdot \sigma _ { n _ { 2 } } ^ { \prime } ( q _ { n _ { 2 } } ) \cdots w _ { n _ { k }, d+K } \cdot \sigma _ { d + K } ^ { \prime } ( q _ { d + K } ) ,\tag{2.34} wi,jf(x;θ)=yiP(j,n1,n2,,nk,d+K)σj(qj)wj,n1σn1(qn1)wn1,n2σn2(qn2)wnk,d+Kσd+K(qd+K),(2.34)其中对从节点 N j N_j Nj N d + K N_{d+K} Nd+K 的所有路径进行求和。 类似地,对于 1 ≤ j ≤ d 1 ≤ j ≤ d 1jd,有:
∂ f ( x ; θ ) ∂ x j = ∑ P ( j , n 1 , n 2 , … , n k , d + K ) σ j ′ ( q j ) ⋅ w j , n 1 ⋅ σ n 1 ′ ( q n 1 ) ⋅ w n 1 , n 2 ⋅ σ n 2 ′ ( q n 2 ) ⋯ w n k , d + K ⋅ σ d + K ′ ( q d + K ) , \frac { \partial f ( x ; \theta ) } { \partial x_ j } = \sum _ { \mathcal{P} ( j , n _ { 1 } , n _ { 2 } , \ldots , n _ { k } , d + K ) } \sigma _ { j } ^ { \prime } ( q _ { j } ) \cdot w _ { j , n _ { 1 } } \cdot \sigma _ { n _ { 1 } } ^ { \prime } ( q _ { n _ { 1 } } ) \cdot w _ { n _ { 1 } , n _ { 2 } } \cdot \sigma _ { n _ { 2 } } ^ { \prime } ( q _ { n _ { 2 } } ) \cdots w _ { n _ { k }, d+K } \cdot \sigma _ { d + K } ^ { \prime } ( q _ { d + K } ) , xjf(x;θ)=P(j,n1,n2,,nk,d+K)σj(qj)wj,n1σn1(qn1)wn1,n2σn2(qn2)wnk,d+Kσd+K(qd+K),其中对从 x j x_j xj N d + K N_{d+K} Nd+K 的所有路径进行求和.

假设 f ( x ; θ ) f(x; θ) f(x;θ) 的所有激活函数都是 sigmoid 函数。 请注意,如果中间变量 q i q_i qi 的模 ∣ q i ∣ |q_i| qi较大,则 σ i ′ ( q i ) σ^{\prime}_i (q_i) σi(qi) 项将接近于零。 那么对于长路径,包含许多小乘数 σ i ′ ( q i ) σ^{\prime}_i (q_i) σi(qi)的右侧乘积将非常接近于零。 因此,如果权重为 w i , j w_{i,j} wi,j 的边距离输出神经元较远,则导数 ∂ f ( x ; θ ) ∂ w i , j \frac { \partial f ( x ; \theta ) } { \partial w_{i , j} } wi,jf(x;θ)可能非常接近于零,甚至在实际计算中被机器精度下溢。

此外,假设我们有一个损失函数 L ( f ( x ; θ ) ) \mathcal{L}(f(x;θ)) L(f(x;θ)),其中 L ( ⋅ ) \mathcal{L}(\cdot) L()是可微分的。当使用梯度下降法优化 L \mathcal{L} L时,我们计算的 ∇ θ L ∇_{θ}\mathcal{L} θL 有以下分量: ∇ w i , j L = L ′ ( f ( x ; θ ) ) ⋅ ∂ f ( x ; θ ) ∂ w i , j . \nabla _ { w _ { i , j } } \mathcal{L}= \mathcal{L}^ { \prime } ( f ( x ; \theta ) ) \cdot \frac { \partial f ( x ; \theta ) } { \partial w _ { i , j } } . wi,jL=L(f(x;θ))wi,jf(x;θ).因此, ∂ f ( x ; θ ) ∂ w i , j \frac { \partial f ( x ; \theta ) } { \partial w _ { i , j } } wi,jf(x;θ)的消失很可能会导致 ∇ w i , j L \nabla _ { w _ { i , j } } \mathcal{L} wi,jL的消失。在这种情况下,参数 w i , j w_{i,j} wi,j 几乎无法通过梯度下降来改变,因此收敛速度会大大减慢。这种梯度消失的问题经常出现在使用 sigmoid 函数的深度神经元网络优化中。解决梯度消失问题的一种有效方法是使用残差网络>神经网络(ResNets)。

权重初始化

网络层数较少的情况下,将所有权重和偏差初始化为零,或者从零均值的均匀分布或高斯分布中进行采样,通常会提供足够令人满意的收敛结果。 然而,在深度网络>神经网络的情况下,权重的正确初始化会对最优算法的收敛方式产生显着影响。

权重太小/大可能会导致梯度消失或爆炸问题, 这可以从梯度表达式(2.34)中部分地认识到。
如果 σ j ′ σ^{\prime}_j σj 是有限的并且权重 w j i w_{ji} wji 的值太小,则长路径的乘积将接近于零,从而导致梯度消失。
另一方面,对于 sigmoid 激活结果,如果 ∣ w j i ∣ |w_{ji}| wji 较大, q j = ∑ k ∈ P j w k , j y k + b j q _ { j } = \sum _ { k \in P _ { j } } w _ { k , j } y _ { k } + b _ { j } qj=kPjwk,jyk+bj 也会很大,使得 σ j ′ ( q j ) σ^{\prime}_j (q_j ) σj(qj) 接近于零。

从前向传播的观点来看…

权重 w j i w_{ji} wji 如何的正确初始化?
现在假设信息通过前向传播从第 (ℓ − 1) 层传递到第 ℓ 层,即 y j ℓ = σ j ℓ ( ∑ i = 1 M ℓ − 1 w j i ℓ y i ℓ − 1 ) , (2.35) y _ { j } ^ { \ell } = \sigma _ { j } ^ { \ell} ( \sum _ { i = 1 } ^ { M _ { \ell - 1 } } w _ { j i } ^ { \ell } y _ { i } ^ {\ell - 1 } ) ,\tag{2.35} yj=σj(i=1M1wjiyi1),(2.35)
其中 j 是第 ℓ 层神经元的索引。 这里我们省略了偏差 b b b。 在实践中,偏差通常被初始化为零或均值为零的随机变量。 为简单起见,我们假设 { w i j ℓ } i , j \{w^ℓ_{ij}\}_{i,j} {wij}i,j { y i ℓ − 1 } i \{y^{ℓ−1}_i\}_i {yi1}i 是两组独立且同分布的均值为零的随机变量。
此外,在前向传播中, y i ℓ − 1 y^{ℓ−1}_i yi1 是通过先前的权重计算的,因此与当前的 w i j ℓ w^ℓ_{ij} wij无关,因此它俩是相互独立的。

最终, 我们的目标是找到一种 w i j ℓ w^ℓ_{ij} wij的分布,使得第 ℓ 层的输出与它的输入一样分散, 即 Var ( y j ℓ ) = Var ( y i ℓ − 1 ) \text{Var}(y^ℓ_j) = \text{Var}(y^{ℓ−1}_i ) Var(yj)=Var(yi1)
我们首先引入以下结论

引理2.3: 如果 X 和 Y 是两个独立的随机变量且 E [ ( X ) ] = E [ ( Y ) ] = 0 E[(X)] = E[(Y)] = 0 E[(X)]=E[(Y)]=0,则 Var ( X Y ) = Var ( X ) Var ( Y ) \text{Var}(XY ) = \text{Var}(X)\text{Var}(Y ) Var(XY)=Var(X)Var(Y)
在这里插入图片描述
此外,令 f f f为可微函数。 然后 f ( x ) f(x) f(x) x = E [ X ] x = E[X] x=E[X] 处的线性近似给出 f ( x ) ≈ f ( E [ X ] ) + f ′ ( E [ X ] ) ( x − E [ X ] ) . f ( x ) \approx f ( E \left[ X \right] ) + f ^ { \prime } ( E \left[ X \right] ) ( x - E \left[ X \right] ) . f(x)f(E[X])+f(E[X])(xE[X]).用随机变量 X X X 替换变量 x x x 会得到 f ( X ) ≈ f ( E [ X ] ) + f ′ ( E [ X ] ) ( X − E [ X ] ) . f ( X ) \approx f ( E \left[ X \right] ) + f ^ { \prime } ( E \left[ X \right] ) ( X - E \left[ X \right] ) . f(X)f(E[X])+f(E[X])(XE[X]).因此, Var ( f ( X ) ) ≈ Var ( f ′ ( E [ X ] ) ( X − E [ X ] ) ) = f ′ ( E [ X ] ) 2 Var ( X ) . \text{Var}( f ( X ) ) \approx \text{Var} ( f ^ { \prime } ( E \left[ X \right] ) ( X - E \left[ X \right] ) ) = f ^ { \prime } ( E \left[ X \right] ) ^ { 2 } \text{Var} ( X ) . Var(f(X))Var(f(E[X])(XE[X]))=f(E[X])2Var(X).那么带入公式 (2.35) 的数值可知 ( f → σ f\rightarrow\sigma fσ, X → w j i ℓ y i ℓ − 1 X\rightarrow w _ { j i } ^ { \ell } y _ { i } ^ {\ell - 1 } Xwjiyi1, 且已知 w j i ℓ w _ { j i } ^ { \ell } wji y i ℓ − 1 y _ { i } ^ {\ell - 1 } yi1相互独立, 故 E ( w j i ℓ y i ℓ − 1 ) \mathbb{E}(w _ { j i } ^ { \ell } y _ { i } ^ {\ell - 1 }) E(wjiyi1)是可以分离的. 由假设可得, E ( w j i ℓ ) = E ( y i ℓ − 1 ) = 0 \mathbb{E}(w _ { j i } ^ { \ell }) = \mathbb{E}( y _ { i } ^ {\ell - 1 })=0 E(wji)=E(yi1)=0):
在这里插入图片描述
(这里倒数第二个个式子到最后一个式子的原因, 我怀疑是在初始化中, 所有Weight的初始值都是相同的)
因为我们的目标是 Var ( y j ℓ ) = Var ( y i ℓ − 1 ) \text{Var}(y^ℓ_j) = \text{Var}(y^{ℓ−1}_i ) Var(yj)=Var(yi1), 因此需要 M ℓ − 1 ( ( σ j ℓ ) ′ ( 0 ) ) 2 Var ( w j i ℓ ) = 1 M _ { \ell - 1 } ( ( \sigma _ { j } ^ {\ell} ) ^ { \prime } ( 0 ) ) ^ { 2 } \text{Var} ( w _ { j i } ^ { \ell } ) = 1 M1((σj)(0))2Var(wji)=1 故有:
Var ( w j i ℓ ) = 1 M ℓ − 1 ( ( σ j ℓ ) ′ ( 0 ) ) 2 (2.37) \text{Var}( w ^ { \ell } _ { j i } ) = \frac { 1 } { M _ { \ell - 1 } \left( ( \sigma ^ { \ell } _ { j } ) ^ { \prime } ( 0 ) \right) ^ { 2 } } \tag{2.37} Var(wji)=M1((σj)(0))21(2.37)

因此,我们得到两个有用的结论:

  1. 如果 w j i ℓ w^{\ell}_{ji} wji是从正态分布中得出的, 那么 w j i ℓ ∼ N ( 0 , 1 M ℓ − 1 ( ( σ j ℓ ) ′ ( 0 ) ) 2 ) w _ { j i } ^ { \ell } \sim \mathcal{N} ( 0 , \frac { 1 } { M _ { \ell - 1 } ( ( \sigma _ { j } ^ { \ell } ) ^ { \prime } ( 0 ) ) ^ { 2 } } ) wjiN(0,M1((σj)(0))21)
  2. 如果 w j i ℓ w^{\ell}_{ji} wji是从均匀分布中得出的, 因为 U [ − a , a ] U[-a, a] U[a,a]的方差是 a 2 3 \frac{a^2}{3} 3a2, 所以有 w j i ℓ ∼ U [ − 3 M ℓ − 1 ( σ j ′ ) ′ ( 0 ) , 3 M ℓ − 1 ( σ j ℓ ) ′ ( 0 ) ] w _ { j i } ^ { \ell } \sim U \left[ - \frac { \sqrt { 3 } } { \sqrt { M _ { \ell - 1 } ( \sigma _ { j } ^ { \prime } ) ^ { \prime } ( 0 ) } } , \frac { \sqrt { 3 } } { \sqrt { M _ { \ell- 1 } ( \sigma _ { j } ^ { \ell} ) ^ { \prime } ( 0 ) } } \right] wjiU[M1(σj)(0) 3 ,M1(σj)(0) 3 ]

可以发现, 如果要实现网络两层输出值的方差一致, 只需要保证它们之间的边权的初始化服从上述分布即可.
同时, 通过观察方差本身的构成, 我们可以发现这种方差只与 “第一层的结点个数” 和 “第二层的激活函数在0处的导数” 有关.
在这里插入图片描述

从反向传播的观点来看…

另一种策略是从反向传播的角度推导的,也称为 Xavier 初始化 [5]。
我们预计: Var ( ∂ f ( x ; θ ) ∂ w i j ℓ − 1 ) = Var ( ∂ f ( x ; θ ) ∂ w i j ℓ ) (2.38) \text{Var}( \frac { \partial f ( x ; \theta ) } { \partial w _ { i j } ^ { \ell - 1 } } ) = \text{Var} ( \frac { \partial f ( x ; \theta ) } { \partial w _ { i j } ^ { \ell } } )\tag{2.38} Var(wij1f(x;θ))=Var(wijf(x;θ))(2.38)

我们假设 { a i , w j i ℓ } i , j , ℓ \{a_i , w^ℓ_{ji}\}_{i,j,ℓ} {ai,wji}i,j, 中的所有权重都是独立且均值为零的同分布随机变量。 另外,我们假设所有激活函数都是恒等的,则关系式 (2.22)-(2.25) 为 p L + 1 = 1 , p i L = p L + 1 a i , (2.39) p ^ { L + 1 } = 1 , p _ { i } ^ { L } = p ^ { L + 1 } a _ { i } ,\tag{2.39} pL+1=1,piL=pL+1ai,(2.39) p i ℓ − 1 = ∑ j = 1 M ℓ p j ℓ w j i ℓ , for   ℓ = L , L − 1 , … , 2 (2.40) p _ { i } ^ { \ell - 1 } = \sum _ { j = 1 } ^ { M _ { \ell } } p _ { j } ^ { \ell } w _ { j i } ^ { \ell} , \text{ for }\ \ell= L , L - 1 , \ldots , 2 \tag{2.40} pi1=j=1Mpjwji, for  =L,L1,,2(2.40)

通过回溯递归, p j ℓ p_j^\ell pj是由 { w j i ℓ + 1 } i , j ∪ ⋯ ∪ { w j i L } i , j ∪ { a i } i \{w^{\ell+1}_{ji}\}_{i,j} \cup \cdots \cup \left\{ w _ { j i } ^ { L } \right\} _ { i , j } \cup \left\{ a _ { i } \right\} _ { i } {wji+1}i,j{wjiL}i,j{ai}i确定的而非独立的 { w j i ℓ } i , j \{w^\ell_{ji}\}_{i,j} {wji}i,j { y ℓ − 1 } i \{y^{\ell-1}\}_i {y1}i (这俩者是 p j ℓ p_j^\ell pj左侧的边权和输出).
因此, p j ℓ p _ { j } ^ { \ell } pj w j i ℓ w _ { j i } ^ { \ell } wji之间是彼此独立的, 故: E [ ∑ j = 1 M ℓ p j ℓ w j i ℓ ] = ∑ j = 1 M ℓ E [ p j ℓ ] E [ w j i ℓ ] = 0 , \mathbb{E} \left[ \sum _ { j = 1 } ^ { M _ { \ell } } p _ { j } ^ { \ell } w _ { j i } ^ { \ell } \right] = \sum _ { j = 1 } ^ { M _ { \ell } } \mathbb{E} \left[ p _ { j } ^ { \ell } \right] \mathbb{E} \left[ w _ { j i } ^ { \ell } \right] = 0 , E[j=1Mpjwji]=j=1ME[pj]E[wji]=0,因为所有权重都是均值为零的同分布随机变量, 故 E [ w j i ℓ ] = 0 \mathbb{E}[w_{ji}^{\ell}]=0 E[wji]=0, 由上式可得, E [ p i ℓ − 1 ] = 0 \mathbb{E}[p^{ℓ−1}_i] = 0 E[pi1]=0,类似地, E [ p i ℓ ] = 0 \mathbb{E}[p^ℓ_i] = 0 E[pi]=0.

此外,由于 y j ℓ = ∑ i = 1 M ℓ − 1 w j i ℓ y i ℓ − 1 y _ { j } ^ { \ell } = \sum _ { i = 1 } ^ { M _ { \ell - 1 } } w _ { j i } ^ { \ell } y _ { i } ^ { \ell - 1 } yj=i=1M1wjiyi1 w j i ℓ w^ℓ_{ji} wji y i ℓ − 1 y^{ℓ−1}_i yi1 无关 (前向传播的结论),故 E [ y j ℓ ] = ∑ i = 1 M ℓ − 1 E [ w j i ℓ ] E [ y i ℓ − 1 ] = 0. \mathbb{E}[ y _ { j } ^ { \ell } ] = \sum _ { i = 1 } ^ { M _ { \ell - 1} } \mathbb{E} [ w _ { j i } ^ { \ell } ] \mathbb{E} [ y _ { i } ^ { \ell - 1 } ] = 0. E[yj]=i=1M1E[wji]E[yi1]=0.

类似地, E [ y j ℓ − 1 ] = E [ y j ℓ − 2 ] = 0 \mathbb{E}[y_j^{\ell-1}]=\mathbb{E}[y_j^{\ell-2}]=0 E[yj1]=E[yj2]=0.

现在,对于 ℓ ≥ 2 ℓ ≥ 2 2,通过(2.29),目标(2.38)可被写为 Var ( p j ℓ − 1 y i ℓ − 2 ) = Var ( p j ℓ y i ℓ − 1 ) \text{Var}(p_j^{\ell-1}y_i^{\ell-2}) = \text{Var}(p^\ell_j y_i^{\ell-1}) Var(pj1yi2)=Var(pjyi1)
使用引理 2.3 令: Var ( p j ℓ − 1 ) Var ( y i ℓ − 2 ) = Var ( p j ℓ ) Var ( y i ℓ − 1 ) . \text{Var}( p _ { j } ^ { \ell- 1 } ) \text{Var}( y _ { i } ^ { \ell- 2 } ) = \text{Var}( p _ { j } ^ { \ell} ) \text{Var}( y _ { i } ^ { \ell- 1 } ) . Var(pj1)Var(yi2)=Var(pj)Var(yi1).

如上所述,我们还期望 Var ( y i ℓ − 2 ) = Var ( y i ℓ − 1 ) \text{Var}(y^{ℓ−2}_i ) = \text{Var}(y^{ℓ−1}_i) Var(yi2)=Var(yi1) (基于前向传播的目标),因此下式必须成立 Var ( p j ℓ − 1 ) = Var ( p j ℓ ) . (2.41) \text{Var}( p _ { j } ^ { \ell - 1 } ) = \text{Var}( p _ { j } ^ { \ell } ). \tag{2.41} Var(pj1)=Var(pj).(2.41)
对(2.40)进行取方差的操作, 即 Var ( ⋅ ) \text{Var}(\cdot) Var(). 以及引入引理2.3. 可得:
Var ( p i ℓ − 1 ) = ∑ j = 1 M ℓ Var ( p j ℓ ) Var ( w j i ℓ ) = M ℓ Var ( p j ℓ ) Var ( w j i ℓ ) , (2.42) \text{Var} ( p _ { i } ^ { \ell - 1 } ) = \sum _ { j = 1 } ^ { M _ { \ell } } \text{Var}( p _ { j } ^ { \ell } ) \text{Var} ( w _ { j i } ^ { \ell } ) = M _ { \ell} \text{Var}( p _ { j } ^ { \ell } ) \text{Var}( w _ { j i } ^ { \ell} ) ,\tag{2.42} Var(pi1)=j=1MVar(pj)Var(wji)=MVar(pj)Var(wji),(2.42)
其中我们使用了 { p j ℓ } j \{p^ℓ_j\}_j {pj}j 同分布这一事实。 结合(2.41)和(2.42),我们有 Var ( w j i ℓ ) = 1 M ℓ . (2.43) \text{Var} ( w _ { j i } ^ { \ell} ) = \frac { 1 } { M _ { \ell } } .\tag{2.43} Var(wji)=M1.(2.43)
关系式(2.43)表示 w j i ℓ w^ℓ_{ji} wji 的方差与第ℓ层的宽度成反比。 相比之下,在线性激活函数的假设下,关系式(2.37)变为 Var ( w j i ℓ ) = 1 M ℓ − 1 , (2.44) \text{Var} ( w _ { j i } ^ { \ell} ) = \frac { 1 } { M _ { \ell - 1 } } ,\tag{2.44} Var(wji)=M11,(2.44)
这意味着 w j i ℓ w^ℓ_{ji} wji 的方差与 ℓ−1 层的宽度成反比.

现在,只有在 M ℓ = M ℓ − 1 M_ℓ = M_{ℓ−1} M=M1 的情况下 (即当任意两个连续层的宽度相同时),(2.43)和(2.44)同时满足。 由于这个条件限制太多,一个有利可图的折衷方案是取两者的调和平均值,在这种情况下有 Var ( w j i ℓ ) = 2 M ℓ + M ℓ − 1 . \text{Var} ( w _ { j i } ^ { \ell } ) = \frac { 2 } { M _ { \ell } + M _ { \ell - 1 } } . Var(wji)=M+M12.

再次, 我们得到两个具有实际意义的结论:

  1. 如果 w j i ℓ w^{\ell}_{ji} wji是从正态分布中得出的, 那么 w j i ℓ ∼ N ( 0 , 2 M ℓ + M ℓ − 1 ) w _ { j i } ^ { \ell } \sim \mathcal{N} ( 0 , \frac { 2 } { M _ { \ell } + M _ { \ell - 1 } } ) wjiN(0,M+M12)
  2. 如果 w j i ℓ w^{\ell}_{ji} wji是从均匀分布中得出的, 因为 U [ − a , a ] U[-a, a] U[a,a]的方差是 a 2 3 \frac{a^2}{3} 3a2, 所以有 w j i ℓ ∼ U [ − 6 M ℓ + M ℓ − 1 , 6 M ℓ + M ℓ − 1 ] w _ { j i } ^ { \ell } \sim U \left[ - \frac { \sqrt { 6 } } { \sqrt { M _ { \ell} + M _ { \ell - 1 } } } , \frac { \sqrt { 6 } } { \sqrt { M _ { \ell}+ M _ { \ell- 1 } } } \right] wjiU[M+M1 6 ,M+M1 6 ]

http://www.ppmy.cn/server/16810.html

相关文章

git忽略文件.gitignore如何使用?

创建 .gitignore 文件 首先&#xff0c;在你的项目根目录下创建一个名为 .gitignore 的文件。可以通过命令行或者你的编辑器来创建这个文件。 打开 .gitignore 文件&#xff0c;你可以将以下内容粘贴到文件中&#xff1a; 忽略编译生成的文件 *.class *.jar *.war忽略系统文件…

L2-052 吉利矩阵

题目描述 题解思路 这个道题就是很简单&#xff0c;就跟n皇后问题一样&#xff0c;给矩阵填数&#xff0c;使得矩阵满足一个什么条件&#xff0c;最后求方案数或者方案。很容易想到回溯法&#xff0c;根据数据范围&#xff0c;应该能够确定回溯法是没有问题的。 我们只需要枚举…

(九)Pandas表格样式 学习简要笔记 #Python #CDA学习打卡

目录 一. Pandas表格样式 1&#xff09;举例数据 2&#xff09;字体颜色 3&#xff09;背景高亮 4&#xff09;极值背景高亮 &#xff08;a&#xff09;高亮最大值 highlight_max() &#xff08;b&#xff09;高亮最小值 highlight_min() &#xff08;c&#xff09;同时…

ubuntu22.04 CH340/CH34x 驱动安装

CH34x驱动地址&#xff1a;CH341SER_LINUX.ZIP - 南京沁恒微电子股份有限公司 1、卸载旧驱动&#xff08;如果存在&#xff09; sudo rmmod ch341.ko 2、解压进入 driver 目录 unzip CH341SER_LINUX.ZIP cd CH341SER_LINUX/driver 3、编译 make 可能错误&#xff1a; make[1]…

npm包管理器

npm&#xff08;Node Package Manager&#xff09;是Node.js的包管理器&#xff0c;用于安、发布和管理JavaScript模块。它是世界上最大的开源软件注册表&#xff0c;拥有超过100万个包供开发者使用。 使用npm可以轻松地安装和管理项目所需的各种模块。下面是npm包管理器的一些…

Mybatis入门(入门案例,IDEA配置SQL提示,JDBC介绍,lombok介绍)

目录 一、Mybatis入门案例介绍整体步骤创建SpringBoot项目pom依赖准备测试数据新建实体类配置Mybatis数据库连接信息新建接口类,编写SQL代码单元测试 二、IDEA配置SQL提示三、JDBC是什么案例JDBC和Mybatis对比 四、数据库连接池介绍如何实现一个数据库连接池切换数据库连接池 五…

CentOS 7虚拟机配置过程中所需组件的安装(二)

1.安装net-tools组件&#xff08;解决无 ifconfig&#xff09; # yum install net-tools 2.安装gcc、c编译器以及内核文件 # yum -y install gcc gcc-c kernel-devel 验证安装成功 3.安装nano&#xff08;文本编辑器&#xff09; # yum install nano

英特尔数据中心渠道业务部总经理蒋健一行到访Gooxi

4月16日&#xff0c;英特尔数据中心渠道业务部总经理蒋健一行到访Gooxi&#xff0c;在Gooxi公司董事长兼总裁赵士亮等领导陪同下参观了深圳研发总部并进行深入交流&#xff0c;详细了解Gooxi在Intel产品线的业务布局、产品研发、市场营销等领域的合作成果。 Gooxi公司董事长兼总…