当前位置: 首页 > news >正文

机器学习--神经网络

神经网络

计算

  神经网络非常简单,举个例子就理解了(最后一层的那个写错了,应该是 a 1 ( 3 ) a^{(3)}_1 a1(3)):

在这里插入图片描述

n o t a t i o n notation notation a j ( i ) a^{(i)}_j aj(i) 表示第 i i i 层的第 j j j 个单元。 w ( j ) w^{(j)} w(j) 表示权重矩阵,控制从 j j j 层到 j + 1 j + 1 j+1 层的映射。

  其中:

a 1 ( 2 ) = g ( w 10 ( 1 ) x 0 + w 11 ( 1 ) x 1 + w 12 ( 1 ) x 2 + w 13 ( 1 ) x 3 ) a 2 ( 2 ) = g ( w 20 ( 1 ) x 0 + w 21 ( 1 ) x 1 + w 22 ( 1 ) x 2 + w 23 ( 1 ) x 3 ) a 3 ( 2 ) = g ( w 30 ( 1 ) x 0 + w 31 ( 1 ) x 1 + w 32 ( 1 ) x 2 + w 33 ( 1 ) x 3 ) h ( x ) = a 1 ( 3 ) = g ( w 10 ( 2 ) a 0 ( 2 ) + w 11 ( 2 ) a 1 ( 2 ) + w 12 ( 2 ) a 2 ( 2 ) + w 13 ( 2 ) a 3 ( 2 ) ) \begin{aligned} a^{(2)}_1 = & g\bigg( w^{(1)}_{10} x_0 + w^{(1)}_{11} x_1 + w^{(1)}_{12} x_2 + w^{(1)}_{13} x_3 \bigg)\\ a^{(2)}_2 = & g\bigg( w^{(1)}_{20} x_0 + w^{(1)}_{21} x_1 + w^{(1)}_{22} x_2 + w^{(1)}_{23} x_3 \bigg)\\ a^{(2)}_3 = & g\bigg( w^{(1)}_{30} x_0 + w^{(1)}_{31} x_1 + w^{(1)}_{32} x_2 + w^{(1)}_{33} x_3 \bigg)\\ h(x) = a^{(3)}_1 = &g\bigg( w^{(2)}_{10}a^{(2)}_0 + w^{(2)}_{11}a^{(2)}_1 + w^{(2)}_{12}a^{(2)}_2 + w^{(2)}_{13}a^{(2)}_3 \bigg) \end{aligned} a1(2)=a2(2)=a3(2)=h(x)=a1(3)=g(w10(1)x0+w11(1)x1+w12(1)x2+w13(1)x3)g(w20(1)x0+w21(1)x1+w22(1)x2+w23(1)x3)g(w30(1)x0+w31(1)x1+w32(1)x2+w33(1)x3)g(w10(2)a0(2)+w11(2)a1(2)+w12(2)a2(2)+w13(2)a3(2))

  如果向量化一下,那就是:

x = [ x 0 x 1 x 2 x 3 ] , w ( 1 ) = [ w 10 ( 1 ) w 11 ( 1 ) w 12 ( 1 ) w 13 ( 1 ) w 20 ( 1 ) w 21 ( 1 ) w 22 ( 1 ) w 23 ( 1 ) w 30 ( 1 ) w 31 ( 1 ) w 32 ( 1 ) w 33 ( 1 ) ] x = \begin{bmatrix} x_0 \\ x_1 \\ x_2 \\ x_3 \end{bmatrix}, \;\;\;\; w^{(1)} = \begin{bmatrix} w^{(1)}_{10} & w^{(1)}_{11} & w^{(1)}_{12} & w^{(1)}_{13} \\ w^{(1)}_{20} & w^{(1)}_{21} & w^{(1)}_{22} & w^{(1)}_{23} \\ w^{(1)}_{30} & w^{(1)}_{31} & w^{(1)}_{32} & w^{(1)}_{33} \end{bmatrix} x= x0x1x2x3 ,w(1)= w10(1)w20(1)w30(1)w11(1)w21(1)w31(1)w12(1)w22(1)w32(1)w13(1)w23(1)w33(1)

  然后有:

z ( 2 ) = w ( 1 ) x = [ z 1 ( 2 ) z 2 ( 2 ) z 3 ( 2 ) ] , a ( 2 ) = g ( z ( 2 ) ) = [ a 1 ( 2 ) a 2 ( 2 ) a 3 ( 2 ) ] z^{(2)} = w^{(1)}x = \begin{bmatrix} z^{(2)}_1 \\ z^{(2)}_2 \\ z^{(2)}_3 \end{bmatrix}, \;\;\;\;a^{(2)} = g(z^{(2)}) = \begin{bmatrix} a^{(2)}_1 \\ a^{(2)}_2 \\ a^{(2)}_3 \end{bmatrix} z(2)=w(1)x= z1(2)z2(2)z3(2) ,a(2)=g(z(2))= a1(2)a2(2)a3(2)

  下一层是:

a ( 2 ) = [ a 0 ( 2 ) a 1 ( 2 ) a 2 ( 2 ) a 3 ( 2 ) ] , w ( 2 ) = [ w 20 ( 2 ) w 21 ( 2 ) w 22 ( 2 ) w 23 ( 2 ) ] a^{(2)} = \begin{bmatrix} a^{(2)}_{0} \\ a^{(2)}_{1} \\ a^{(2)}_{2} \\ a^{(2)}_{3} \end{bmatrix}, \;\;\;\;w^{(2)} = \begin{bmatrix} w^{(2)}_{20} & w^{(2)}_{21} & w^{(2)}_{22} & w^{(2)}_{23} \end{bmatrix} a(2)= a0(2)a1(2)a2(2)a3(2) ,w(2)=[w20(2)w21(2)w22(2)w23(2)]

z ( 3 ) = w ( 2 ) a ( 2 ) = [ z 1 ( 3 ) ] , a ( 3 ) = g ( z ( 3 ) ) = [ a 1 ( 3 ) ] z^{(3)} = w^{(2)}a^{(2)} = \begin{bmatrix} z^{(3)}_1 \end{bmatrix}, \;\;\;\; a^{(3)} = g(z^{(3)}) = \begin{bmatrix} a^{(3)}_1 \end{bmatrix} z(3)=w(2)a(2)=[z1(3)],a(3)=g(z(3))=[a1(3)]

  以上就是神经网络的计算方式,其实还是很好理解也很好实现的qwq

后向传播 B a c k P r o p a g a t i o n Back \; Propagation BackPropagation

  现在就是考虑如何计算出 w ( i ) w^{(i)} w(i) 这么多矩阵了。( n o t a t i o n notation notation L L L 表示神经网络的层数, S l S_l Sl 表示 l l l 层的节点数, k k k 表示输出层的节点数)

  我们仍然考虑用类似 G D GD GD 的方法,于是我们考虑 min ⁡ w J ( w ) \min\limits_wJ(w) wminJ(w),其中:

J ( w ) = 1 m ∑ i = 1 m ∑ k = 1 S L 1 2 [ ( h ( x i ) ) k − y i k ] 2 J(w) = \frac 1m \sum_{i = 1}^m\sum_{k = 1}^{S_L}\frac 12 \bigg[ (h(x_i))_k - y_{ik} \bigg]^2 J(w)=m1i=1mk=1SL21[(h(xi))kyik]2

  然后我们就是要求解 ∂ J ( w ) ∂ w i j ( l ) \frac{\partial J(w)}{\partial w^{(l)}_{ij}} wij(l)J(w)

  我们考虑将所有的训练数据分开求解,对于其中一个训练数据 ( x i , y i ) (x_i, y_i) (xi,yi) 来说:

J i = ∑ k = 1 S L 1 2 [ ( h ( x i ) ) k − y i k ] 2 J_i = \sum_{k = 1}^{S_L}\frac 12 \bigg[ (h(x_i))_k - y_{ik} \bigg]^2 Ji=k=1SL21[(h(xi))kyik]2

  我们定义 δ i ( l ) \delta^{(l)}_i δi(l) 表示 a i ( l ) a^{(l)}_i ai(l) 对真实值的差值,也就是:

δ j ( l ) = ∂ J i ∂ z j ( l ) \delta^{(l)}_j = \frac{\partial J_i}{\partial z^{(l)}_j} δj(l)=zj(l)Ji

  而对于最后一层来说:

δ j ( L ) = ∂ J i ∂ z j ( L ) = ∂ J i ∂ a j ( L ) ⋅ ∂ a j ( L ) ∂ z j ( L ) = ∂ ∑ k = 1 S L 1 2 [ ( h ( x i ) ) k − y i k ] 2 ∂ a j ( L ) ⋅ ∂ g ( z j ( L ) ) ∂ z j ( L ) = ∂ ∑ k = 1 S L 1 2 [ a k ( L ) − y i k ] 2 ∂ a j ( L ) ⋅ g ′ ( z j ( L ) ) = ( a j ( L ) − y i k ) ⋅ g ′ ( z j ( L ) ) \begin{aligned} \delta^{(L)}_j = \frac{\partial J_i}{\partial z^{(L)}_j} = \frac{\partial J_i}{\partial a^{(L)}_j} \cdot \frac{\partial a^{(L)}_j}{\partial z^{(L)}_j} = &\frac{\partial \sum\limits_{k = 1}^{S_L}\frac 12 [(h(x_i))_k - y_{ik}]^2}{\partial a^{(L)}_j} \cdot \frac{\partial g(z^{(L)}_j)}{\partial z^{(L)}_j} \\ = & \frac{\partial \sum\limits_{k = 1}^{S_L}\frac 12 [a^{(L)}_k - y_{ik}]^2}{\partial a^{(L)}_j} \cdot g'(z^{(L)}_j) = (a^{(L)}_j - y_{ik}) \cdot g'(z^{(L)}_j) \end{aligned} δj(L)=zj(L)Ji=aj(L)Jizj(L)aj(L)==aj(L)k=1SL21[(h(xi))kyik]2zj(L)g(zj(L))aj(L)k=1SL21[ak(L)yik]2g(zj(L))=(aj(L)yik)g(zj(L))

  而我们要算的是:

∂ J i ∂ w j k ( L − 1 ) = ∂ J i ∂ a j ( L ) ⋅ ∂ a j ( L ) ∂ z j ( L ) ⋅ ∂ z j ( L ) ∂ w j k ( L − 1 ) = δ j ( L ) ⋅ ∂ z j ( L ) ∂ w j k ( L − 1 ) \begin{aligned} \frac{\partial J_i}{\partial w^{(L-1)}_{jk}} = \frac{\partial J_i}{\partial a^{(L)}_j} \cdot \frac{\partial a^{(L)}_j}{\partial z^{(L)}_j} \cdot \frac{\partial z^{(L)}_j}{\partial w^{(L-1)}_{jk}} = \delta^{(L)}_j \cdot \frac{\partial z^{(L)}_j}{\partial w^{(L-1)}_{jk}} \end{aligned} wjk(L1)Ji=aj(L)Jizj(L)aj(L)wjk(L1)zj(L)=δj(L)wjk(L1)zj(L)

  所以我们只需要计算 ∂ z j ( L ) ∂ w j k ( L − 1 ) \frac{\partial z^{(L)}_j}{\partial w^{(L-1)}_{jk}} wjk(L1)zj(L) 就可以了

  我们又知道:

z j ( L ) = ∑ i = 1 S L − 1 w j i ( L − 1 ) a i ( L − 1 ) z^{(L)}_j = \sum_{i = 1}^{S_{L - 1}}w^{(L - 1)}_{ji}a^{(L-1)}_i zj(L)=i=1SL1wji(L1)ai(L1)

  所以:

∂ z j ( L ) ∂ w j k ( L − 1 ) = ∑ i = 1 S L − 1 ∂ w j i ( L − 1 ) a i ( L − 1 ) ∂ w j k ( L − 1 ) = a k ( L − 1 ) \frac{\partial z^{(L)}_j}{\partial w^{(L-1)}_{jk}} = \frac{\sum\limits_{i = 1}^{S_{L - 1}}\partial w^{(L-1)}_{ji}a^{(L-1)}_i }{\partial w^{(L-1)}_{jk}} = a^{(L-1)}_k wjk(L1)zj(L)=wjk(L1)i=1SL1wji(L1)ai(L1)=ak(L1)

  于是:

∂ J i ∂ w j k ( L − 1 ) = δ j ( L ) ⋅ a k ( L − 1 ) \frac{\partial J_i}{\partial w^{(L-1)}_{jk}} = \delta^{(L)}_j \cdot a^{(L-1)}_k wjk(L1)Ji=δj(L)ak(L1)

  现在我们有了最后一层,我们考虑能不能往前推回去,这里我们以一个简单的例子来更直观的计算(这里我画图时把 w w w 写成 φ \varphi φ 了qwq):

在这里插入图片描述

  我们假设我们要计算 J J J w 11 ( 3 ) w^{(3)}_{11} w11(3) 求偏导:

∂ J i ∂ w 11 ( 3 ) = ∂ ( J i 1 + J i 2 ) ∂ w 11 ( 3 ) = ∂ J i 1 ∂ w 11 ( 3 ) + ∂ J i 2 ∂ w 11 ( 3 ) \frac{\partial J_i}{\partial w^{(3)}_{11}} = \frac{\partial (J_{i1} + J_{i2})}{\partial w^{(3)}_{11}} = \frac{\partial J_{i1}}{\partial w^{(3)}_{11}} + \frac{\partial J_{i2}}{\partial w^{(3)}_{11}} w11(3)Ji=w11(3)(Ji1+Ji2)=w11(3)Ji1+w11(3)Ji2

  我们考虑分开求 ∂ J i 1 ∂ w 11 ( 3 ) \frac{\partial J_{i1}}{\partial w^{(3)}_{11}} w11(3)Ji1 ∂ J i 2 ∂ w 11 ( 3 ) \frac{\partial J_{i2}}{\partial w^{(3)}_{11}} w11(3)Ji2

  先算前一项,沿着神经网络做分布求导:

∂ J i 1 ∂ w 11 ( 3 ) = ∂ J i 1 ∂ a 1 ( 5 ) ⋅ ∂ a 1 ( 5 ) ∂ z 1 ( 5 ) ⋅ ∂ z 1 ( 5 ) ∂ a 1 ( 4 ) ⋅ ∂ a 1 ( 4 ) ∂ z 1 ( 4 ) ⋅ ∂ z 1 ( 4 ) w 11 ( 3 ) = δ 1 ( 5 ) ⋅ ∂ z 1 ( 5 ) ∂ a 1 ( 4 ) ⋅ ∂ a 1 ( 4 ) ∂ z 1 ( 4 ) ⋅ ∂ z 1 ( 4 ) w 11 ( 3 ) \begin{aligned} \frac{\partial J_{i1}}{\partial w^{(3)}_{11}} = & \frac{\partial J_{i1}}{\partial a^{(5)}_1} \cdot \frac{\partial a^{(5)}_1}{\partial z^{(5)}_1} \cdot \frac{\partial z^{(5)}_1}{\partial a^{(4)}_1} \cdot \frac{\partial a^{(4)}_1}{\partial z^{(4)}_1} \cdot \frac{\partial z^{(4)}_1}{w^{(3)}_{11}} \\ = & \delta^{(5)}_1 \cdot \frac{\partial z^{(5)}_1}{\partial a^{(4)}_1} \cdot \frac{\partial a^{(4)}_1}{\partial z^{(4)}_1} \cdot \frac{\partial z^{(4)}_1}{w^{(3)}_{11}} \end{aligned} w11(3)Ji1==a1(5)Ji1z1(5)a1(5)a1(4)z1(5)z1(4)a1(4)w11(3)z1(4)δ1(5)a1(4)z1(5)z1(4)a1(4)w11(3)z1(4)

  我们又有:

z 1 ( 5 ) = w 11 ( 4 ) a 1 ( 4 ) + w 12 ( 4 ) a 2 ( 4 ) → ∂ z 1 ( 5 ) ∂ a 1 ( 4 ) = w 11 ( 4 ) a 1 ( 4 ) = g ( z 1 ( 4 ) ) → ∂ a 1 ( 4 ) ∂ z 1 ( 4 ) = g ′ ( z 1 ( 4 ) ) z 1 ( 4 ) = w 11 ( 3 ) a 1 ( 3 ) + w 12 ( 3 ) a 2 ( 3 ) → ∂ z 1 ( 4 ) ∂ w 11 ( 3 ) = a 1 ( 3 ) \begin{aligned} z^{(5)}_1 = w^{(4)}_{11}a^{(4)}_1 + w^{(4)}_{12}a^{(4)}_2 \rightarrow & \frac{\partial z^{(5)}_1}{\partial a^{(4)}_1} = w^{(4)}_{11} \\ a^{(4)}_1 = g(z^{(4)}_1) \rightarrow & \frac{\partial a^{(4)}_1}{\partial z^{(4)}_1} = g'(z^{(4)}_1) \\ z^{(4)}_1 = w^{(3)}_{11}a^{(3)}_1 + w^{(3)}_{12}a^{(3)}_2 \rightarrow & \frac{\partial z^{(4)}_1}{\partial w^{(3)}_{11}} = a^{(3)}_1 \end{aligned} z1(5)=w11(4)a1(4)+w12(4)a2(4)a1(4)=g(z1(4))z1(4)=w11(3)a1(3)+w12(3)a2(3)a1(4)z1(5)=w11(4)z1(4)a1(4)=g(z1(4))w11(3)z1(4)=a1(3)

  所以:

∂ J i 1 ∂ w 11 ( 3 ) = δ 1 ( 5 ) ⋅ w 11 ( 4 ) ⋅ g ′ ( z 1 ( 4 ) ) ⋅ a 1 ( 3 ) \frac{\partial J_{i1}}{\partial w^{(3)}_{11}} = \delta^{(5)}_1 \cdot w^{(4)}_{11} \cdot g'(z^{(4)}_1) \cdot a^{(3)}_1 w11(3)Ji1=δ1(5)w11(4)g(z1(4))a1(3)

  同样的,我们也可以推出(这里因为和前面几乎一样所以过程就省略了 (绝对不是因为公式打起来太麻烦了qwq):

∂ J i 2 ∂ w 11 ( 3 ) = δ 2 ( 5 ) ⋅ w 21 ( 4 ) ⋅ g ′ ( z 1 ( 4 ) ) ⋅ a 1 ( 3 ) \frac{\partial J_{i2}}{\partial w^{(3)}_{11}} = \delta^{(5)}_2 \cdot w^{(4)}_{21} \cdot g'(z^{(4)}_1) \cdot a^{(3)}_1 w11(3)Ji2=δ2(5)w21(4)g(z1(4))a1(3)

  所以把这俩玩意儿加起来就能得到:

∂ J i ∂ w 11 ( 3 ) = δ 1 ( 5 ) ⋅ w 11 ( 4 ) ⋅ g ′ ( z 1 ( 4 ) ) ⋅ a 1 ( 3 ) + δ 2 ( 5 ) ⋅ w 21 ( 4 ) ⋅ g ′ ( z 1 ( 4 ) ) ⋅ a 1 ( 3 ) = ( δ 1 ( 5 ) ⋅ w 11 ( 4 ) + δ 2 ( 5 ) ⋅ w 21 ( 4 ) ) ⋅ g ′ ( z 1 ( 4 ) ) ⋅ a 1 ( 3 ) \begin{aligned} \frac{\partial J_i}{\partial w^{(3)}_{11}} = & \delta^{(5)}_1 \cdot w^{(4)}_{11} \cdot g'(z^{(4)}_1) \cdot a^{(3)}_1 + \delta^{(5)}_2 \cdot w^{(4)}_{21} \cdot g'(z^{(4)}_1) \cdot a^{(3)}_1\\ = & (\delta^{(5)}_1 \cdot w^{(4)}_{11} + \delta^{(5)}_2 \cdot w^{(4)}_{21})\cdot g'(z^{(4)}_1) \cdot a^{(3)}_1 \end{aligned} w11(3)Ji==δ1(5)w11(4)g(z1(4))a1(3)+δ2(5)w21(4)g(z1(4))a1(3)(δ1(5)w11(4)+δ2(5)w21(4))g(z1(4))a1(3)

  然后我们令:

δ 1 ( 4 ) = ( δ 1 ( 5 ) ⋅ w 11 ( 4 ) + δ 2 ( 5 ) ⋅ w 21 ( 4 ) ) ⋅ g ′ ( z 1 ( 4 ) ) \delta^{(4)}_1 = (\delta^{(5)}_1 \cdot w^{(4)}_{11} + \delta^{(5)}_2 \cdot w^{(4)}_{21}) \cdot g'(z^{(4)}_1) δ1(4)=(δ1(5)w11(4)+δ2(5)w21(4))g(z1(4))

  于是我们就有:

∂ J i ∂ w 11 ( 3 ) = δ 1 ( 4 ) ⋅ a 1 ( 3 ) \frac{\partial J_i}{\partial w^{(3)}_{11}} = \delta^{(4)}_1 \cdot a^{(3)}_1 w11(3)Ji=δ1(4)a1(3)

  我们发现,这个式子跟我们上面的

∂ J i ∂ w j k ( L − 1 ) = δ j ( L ) ⋅ a k ( L − 1 ) \frac{\partial J_i}{\partial w^{(L-1)}_{jk}} = \delta^{(L)}_j \cdot a^{(L-1)}_k wjk(L1)Ji=δj(L)ak(L1)

  这个的结构完全一致。

  所以我们得到了一个递推式:

δ 1 ( 4 ) = ( δ 1 ( 5 ) ⋅ w 11 ( 4 ) + δ 2 ( 5 ) ⋅ w 21 ( 4 ) ) ⋅ g ′ ( z 1 ( 4 ) ) \delta^{(4)}_1 = (\delta^{(5)}_1 \cdot w^{(4)}_{11} + \delta^{(5)}_2 \cdot w^{(4)}_{21}) \cdot g'(z^{(4)}_1) δ1(4)=(δ1(5)w11(4)+δ2(5)w21(4))g(z1(4))

  同样的,我们也能得到:

δ 2 ( 4 ) = ( δ 1 ( 5 ) ⋅ w 12 ( 4 ) + δ 2 ( 5 ) ⋅ w 22 ( 4 ) ) ⋅ g ′ ( z 2 ( 4 ) ) \delta^{(4)}_2 = (\delta^{(5)}_1 \cdot w^{(4)}_{12} + \delta^{(5)}_2 \cdot w^{(4)}_{22}) \cdot g'(z^{(4)}_2) δ2(4)=(δ1(5)w12(4)+δ2(5)w22(4))g(z2(4))

  也可以写成向量的形式:

[ δ 1 ( 4 ) δ 2 ( 4 ) ] = ( [ w 11 ( 4 ) w 12 ( 4 ) w 21 ( 4 ) w 22 ( 4 ) ] [ δ 1 ( 5 ) δ 2 ( 5 ) ] ) ⋅ ∗ [ g ′ ( z 1 ( 4 ) ) g ′ ( z 2 ( 4 ) ) ] \begin{bmatrix} \delta^{(4)}_1 \\ \delta^{(4)}_2 \end{bmatrix} = \left(\begin{bmatrix} w^{(4)}_{11} & w^{(4)}_{12} \\ w^{(4)}_{21} & w^{(4)}_{22} \end{bmatrix} \begin{bmatrix} \delta^{(5)}_1 \\ \delta^{(5)}_2 \end{bmatrix}\right) \cdot* \begin{bmatrix} g'(z^{(4)}_1) \\ g'(z^{(4)}_2) \end{bmatrix} [δ1(4)δ2(4)]=([w11(4)w21(4)w12(4)w22(4)][δ1(5)δ2(5)])[g(z1(4))g(z2(4))]

  也就是:

δ ( 4 ) = [ ( w ( 4 ) ) T δ ( 5 ) ] ⋅ ∗ g ′ ( z ( 4 ) ) \delta^{(4)} = \bigg[(w^{(4)})^T\delta^{(5)}\bigg] \cdot* g'(z^{(4)}) δ(4)=[(w(4))Tδ(5)]g(z(4))

  同样的,我们也能将这个式子推广到其他层:

δ ( l ) = [ ( w ( l ) ) T δ ( l + 1 ) ] ⋅ ∗ g ′ ( z ( l ) ) \delta^{(l)} = \bigg[ (w^{(l)})^T\delta^{(l+1)} \bigg] \cdot* g'(z^{(l)}) δ(l)=[(w(l))Tδ(l+1)]g(z(l))

  这个式子就是我们 b a c k p r o p a g a t i o n back \; propagation backpropagation 的关键了。

  然后我们对于每个训练数据 i i i 都跑一遍 B P BP BP 计算出 ∂ J i ∂ w j k ( L − 1 ) \frac{\partial J_i}{\partial w^{(L-1)}_{jk}} wjk(L1)Ji,然后令 Δ j k ( l ) \Delta^{(l)}_{jk} Δjk(l) 存储 ∂ J i ∂ w j k ( L − 1 ) \frac{\partial J_i}{\partial w^{(L-1)}_{jk}} wjk(L1)Ji 的和。最后跑完 m m m 个训练数据后令 D j k ( l ) = 1 m Δ j k ( l ) D^{(l)}_{jk} = \frac 1m\Delta^{(l)}_{jk} Djk(l)=m1Δjk(l),我们就得到了:

∂ ∂ w j k ( l ) J ( w ) = D j k ( l ) \frac{\partial}{\partial w^{(l)}_{jk}}J(w) = D^{(l)}_{jk} wjk(l)J(w)=Djk(l)

  然后再进行 G D GD GD 就可以了。

相关文章:

机器学习--神经网络

神经网络 计算 神经网络非常简单,举个例子就理解了(最后一层的那个写错了,应该是 a 1 ( 3 ) a^{(3)}_1 a1(3)​): n o t a t i o n notation notation: a j ( i ) a^{(i)}_j aj(i)​ 表示第 i i i 层的…...

post请求中有[]报400异常

序言 在和前端同学联调的时候,发现只要post请求参数里面有[],就会报400的错误 可以看到日志中: The valid characters are defined in RFC 7230 and RFC 3986 解决办法: 参考了博客: spring boot 中解决post请求中有…...

ad22 如何在pcb 的keepout layout 上画线 然后裁出想要的黑色画布大小

选择下面的keepout layout,然后右键打开,然后按照这个图进行选择 然后看这个界面我收藏的第三个,就可以了...

SparkSQL SET和RESET

前言 我们在用代码写spark程序的时候,如果要设置一些配置参数,可以通过: SparkConf val conf = new SparkConf().setMaster("local[2]").setAppName("CountingSheep") val sc = new SparkContext(conf)spark-submit ./bin/spark-submit --name "M…...

java 中线程的等待和唤醒

java.lang.Object#wait() java.lang.Object#wait(long) java.lang.Object#wait(long, int) java.lang.Object#notify() java.lang.Object#notifyAll() 这几个方法属于Object,在使用 synchronized 实现同步的时候,需要使用当前监视器的以上方法&#xff…...

windows下自启springboot项目(jar+nginx)

1、将springboot项目打包为jar 2、新建文本文档 test.txt,并输入 java -jar D:\test\test.jar(修改为自己的jar包位置) 保存 然后修将后缀名改为 .bat 3、在同一目录再新建 文本文档test.txt,输入以下内容,&…...

解锁SAP数据的潜力:SNP Glue与SAP Datasphere的协同作用

在各种文章中,我们研究了客户如何利用SNP Glue与基于云的数据仓库和数据湖相结合,以充分利用其SAP数据。SNP Glue 通过高性能集成解决方案帮助客户解锁 SAP 数据孤岛。例如,可以使用SNP Glue先进的增量捕获(CDC)近乎实…...

Missing package to enable rendering OpenAI Gym in Colab

题意:“缺少用于在 Colab 中渲染 OpenAI Gym 的软件包。” 问题背景: Im attempting to render OpenAI Gym environments in Colab via a Mac using the StarAI code referenced in previous questions on this topic. However, it fails. The key erro…...

通过打包 Flash Attention 来提升 Hugging Face 训练效率

简单概述 现在,在 Hugging Face 中,使用打包的指令调整示例 (无需填充) 进行训练已与 Flash Attention 2 兼容,这要归功于一个最近的 PR以及新的DataCollatorWithFlattening。 最近的 PRhttps://github.com/huggingface/transformers/pull/3…...

用hiredis连接redis

hiredis 什么是 Hiredis Hiredis 是一个用于与 Redis 服务器进行通信的 C 语言库。它提供了一组 API,方便开发者在各种应用场景中实现与 Redis 服务器的数据交互操作。 在服务器端的应用中,比如构建 Web 服务或者后端处理程序时,如果需要频…...

第G8周:ACGAN任务

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 本周任务: 根据GAN、CGAN、SGAN及它们的框架图,写出ACGAN代码。 框架图 从图中可以看到,ACGAN的前半部分类似于CGAN&#…...

nvm拉取安装node包时报错的解决办法

问题一:用nvm安装某个版本node包时,node正确安装了,但是对应的npm无法安装 原因:原系统中node.js没有卸载干净, 解决办法:先把原系统中node.js卸载干净。再安装nvm和node包 问题二:nvm无法拉取…...

PyTorch 和 TensorFlow

PyTorch 和 TensorFlow 是目前最流行的两个深度学习框架。它们各自有不同的特点和优势,适合不同的使用场景。以下是对这两个框架的详细比较和介绍。 1. PyTorch 简介 PyTorch 是由 Facebook AI Research (FAIR) 开发的开源深度学习框架,以其易用性和灵…...

数据库视图和索引

参考链接: 数据库的视图和索引的概念和区别_索引和视图的区别-CSDN博客 MySQL 数据库--索引(理论详解及实例演示)_数据库索引-CSDN博客 1.视图 视图是从一个或多个表中导出来的表,是一种不是一种真正存在的概念。这样&#xf…...

哈希表的底层实现(1)---C++版

目录 哈希表的基本原理 哈希表的优点 哈希表的缺点 应用场景 闭散列法 开散列法 开放定值法Open Addressing——线性探测的模拟实现 超大重点部分评析 链地址法Separate Chaining——哈希桶的模拟实现 哈希表(Hash Table)是一种数据结构&#x…...

如何使用PTK一键安装opengaussdb 5.0

1、关于PTK工具 MogDB数据库是云和恩墨基于openGauss开源数据库打造,安稳易用的企业级关系型数据库。 PTK是云和恩墨出品的一款工具,帮助用户更便捷地部署管理MogDB数据库。 1.1 使用场景 开发人员快速启动多个本地 MogDB 环境用户通过 PTK 快速安装…...

跟李沐学AI:长短期记忆网络LSTM

输入们、遗忘门和输出门 LSTM引入输入门、忘记门和输出门 输入门计算公式为:。 遗忘门计算公式为:。 输出门计算公式为:。 它们由三个具有sigmoid激活函数的全连接层处理, 以计算输入门、遗忘门和输出门的值。 因此&#xff0c…...

【BIM模型数据】BIM模型的数据如何存储,BIM大模型数据云端存储,需要考虑哪些因素,BIM模型数据存储和获取

【BIM模型数据】BIM模型的数据如何存储,BIM大模型数据云端存储,需要考虑哪些因素,BIM模型数据存储和获取 BIM文件的结构化数据和非结构化数据的存储方式,需要根据数据的特性和使用需求来选择。以下是一些推荐的存储策略&#xff1…...

【LLM大模型】大模型架构:layer\_normalization

2.layer_normalization 1.Normalization 1.1 Batch Norm 为什么要进行BN呢? 在深度神经网络训练的过程中,通常以输入网络的每一个mini-batch进行训练,这样每个batch具有不同的分布,使模型训练起来特别困难。Internal Covariat…...

PON光模块的独特类型和特性

在当前互联网需求快速增长的背景下,PON光模块已成为实现光纤网络高速数据传输的重要组成部分。从住宅宽带到各种企业应用程序解决方案,PON光模块始终致力于实现高质量的数据传输与无缝通信。了解PON光模块的类型和特性对于深入理解现代网络基础设施至关重…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

基于服务器使用 apt 安装、配置 Nginx

🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...