numpy反向神经网络学习mnist

本文介绍了如何构建反向神经网络,详细阐述了链式法则在神经网络中的应用,以及如何利用节点值偏导数求权重和偏置的偏导数。在MNIST数据集上进行实验,训练一小时后的准确率达到了训练数据94%,测试数据93%。
摘要由CSDN通过智能技术生成

numpy实现最简单的前馈神经网络——反向网络建立篇

前一篇文章中,已经初略的建立了前向神经网络,但是前向神经网络大量的前馈计算使其只有较低的速度,因此我们来建立反向神经网络。

本篇主要是公式

链式法则

在学习偏导数的反向传递之前,需要有对链式法则有一定的了解
provide that  y = y ( x )  and  z = z ( y ) , then  z ′ ( x ) = d z d x = d z d y d y d x = z ′ ( y ) ⋅ y ′ ( x ) . \text{provide that }y = y(x) \text{ and } z = z(y), \\ \text{then } z'(x) = \frac{ {\rm d} z}{ {\rm d}x} = \frac{ {\rm d}z}{ {\rm d}y} \frac{ {\rm d}y}{ {\rm d}x} = z'(y) \cdot y'(x). provide that y=y(x) and z=z(y),then z(x)=dxdz=dydzdxdy=z(y)y(x).

provide that  u = u ( x , y ) , v = v ( x , y ) , w = w ( u , v ) , then  w ′ ( x ) = ∂ w ∂ u ∂ u ∂ x + ∂ w ∂ v ∂ v ∂ x = w ′ ( u ) ⋅ u ′ ( x ) + w ′ ( v ) ⋅ v ′ ( x ) , w ′ ( y ) = ∂ w ∂ u ∂ u ∂ y + ∂ w ∂ v ∂ v ∂ y = w ′ ( u ) ⋅ u ′ ( y ) + w ′ ( v ) ⋅ v ′ ( y ) . \text{provide that }u = u(x,y),v = v(x,y),w = w(u,v), \\ \text{then } w'(x) = \frac{\partial w}{\partial u} \frac{\partial u}{\partial x} + \frac{\partial w}{\partial v} \frac{\partial v}{\partial x} = w'(u) \cdot u'(x) + w'(v) \cdot v'(x), \\ w'(y) = \frac{\partial w}{\partial u} \frac{\partial u}{\partial y} + \frac{\partial w}{\partial v} \frac{\partial v}{\partial y} = w'(u) \cdot u'(y) + w'(v) \cdot v'(y). \\ provide that u=u(x,y),v=v(x,y),w=w(u,v),then w(x)=uwxu+vwxv=w(u)u(x)+w(v)v(x),w(y)=uwyu+vwyv=w(u)u(y)+w(v)v(y).

对于前馈神经网络来说,链式法则可以这么用

在这里插入图片描述

B 1 = F 1 ( A 1 , A 2 , A 3 ) , B 2 = F 2 ( A 1 , A 2 , A 3 ) , B 3 = F 3 ( A 1 , A 2 , A 3 ) , B 4 = F 4 ( A 1 , A 2 , A 3 ) . B_1 = F_1(A_1,A_2,A_3), \\ B_2 = F_2(A_1,A_2,A_3), \\ B_3 = F_3(A_1,A_2,A_3), \\ B_4 = F_4(A_1,A_2,A_3). \\ B1=F1(A1,A2,A3),B2=F2(A1,A2,A3),B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值