正向传播和反向传播演示示例

神经网路正向传播需要输入的值乘以权重,并且加上偏执值,再通过激活函数的值得到输出结果,反向传播过程,则是通过链式求导法则,通过与损失函数值比较进行权值更新。

正向传播

如图 ,计算图通过节点和箭头来表示。这里,“+”表示加法,变量 和 写在各自的箭头上。像这样,在计算图中,用节点表示计算,处理结果有序(本例中是从左到右)流动。这就是计算图的正向传播。
总结:
正向传播是:上层输入的值乘以权重,并且加上偏执值,再通过激活函数的值得到输出结果。
使用计算图,可以直观地把握计算过程。另外,这样也可以直观地求梯度。这里重要的是,梯度沿与正向传播相反的方向传播,这个反方向的传播称为反向传播。
在这里插入图片描述
在这里插入图片描述

链式求导法则

理解误差反向传播法的关键是链式法则。链式法则是复合函数的求导法则,其中复合函数是由多个函数构成的函数。

反向传播计算以此图为例:
在这里插入图片描述
前向传播过程为,输入层---->隐藏层----->输出层,
1.输入层---->隐藏层:
(1)隐藏层的输入(h1,h2):
在这里插入图片描述
(2)隐含层(h1,h2)的输出(使用sigmoid激活函数为例)
在这里插入图片描述
2.隐含层------>输出层:

(1)输出层(o1,o2)的输入:
在这里插入图片描述
(2)输出层(o1,o2)的输出:
在这里插入图片描述
反向传播:
计算总误差:
在这里插入图片描述
此例子有o1和o2两个输出,所以总误差是这两个输出误差之和:
在这里插入图片描述
隐含层---->输出层的权值(w5,w6,w7,w8)更新:
想知道w5,w6,w7,w8对整体误差产生了多少影响,可以用整体误差对w5,w6,w7,w8求偏导求出:

在这里插入图片描述
下图直观展示了误差如何进行反向传播:
在这里插入图片描述
w5:
在这里插入图片描述
w6:
在这里插入图片描述
w7:

在这里插入图片描述
w8:
在这里插入图片描述

向前每一层传播是相同的计算方法

输入层------>隐含层的权值(w1,w2,w3,w4)更新:
方法其实与隐含层------>输出层的差不多,但是隐含层---->输出层计算总误差对w5的偏导时,是从out(o1)------->net(o1)-------->w5。而在隐含层之间的权值更新时,是out(h1)------>net(h1)------>w1。
在这里插入图片描述
偏差计算公式:

在这里插入图片描述
w1:
在这里插入图片描述
w2:
在这里插入图片描述
w3:

在这里插入图片描述
w4:
在这里插入图片描述

引用:链接: link

### 关于正向传播反向传播的解释 在神经网络中,正向传播是指输入信号从输入层经过隐藏层逐层传递到输出层的过程,在此期间每一层中的节点会计算加权输入并通过激活函数得到该层的输出[^1]。 ```python def forward_propagation(X, parameters): W1 = parameters['W1'] b1 = parameters['b1'] W2 = parameters['W2'] b2 = parameters['b2'] Z1 = np.dot(W1, X) + b1 A1 = np.tanh(Z1) Z2 = np.dot(W2, A1) + b2 A2 = sigmoid(Z2) cache = {"Z1": Z1, "A1": A1, "Z2": Z2, "A2": A2} return A2, cache ``` 而反向传播则是指按照链式法则计算损失相对于各权重偏导数的过程,以便更新这些权重来最小化预测误差。这一阶段是从输出层逆序回溯至输入层完成梯度下降优化操作[^2]。 ```python def backward_propagation(parameters, cache, X, Y): m = X.shape[1] W1 = parameters["W1"] W2 = parameters["W2"] A1 = cache['A1'] A2 = cache['A2'] dZ2= A2 - Y dW2 = (1 / m) * np.dot(dZ2, A1.T) db2 = (1 / m) * np.sum(dZ2, axis=1, keepdims=True) dZ1 = np.multiply(np.dot(W2.T, dZ2), 1 - np.power(A1, 2)) dW1 = (1 / m) * np.dot(dZ1, X.T) db1 = (1 / m) * np.sum(dZ1, axis=1, keepdims=True) grads = {"dW1": dW1, "db1": db1, "dW2": dW2, "db2": db2} return grads ``` 对于演示图而言,通常情况下: - **正向传播** 的图形表示为由左至右的数据流动路径,其中每一步都包含了矩阵乘法以及非线性的变换; - **反向传播** 则相反,是由右往左展示如何依据最终输出端产生的错误信息逐步修正各个连接上的权重值; 由于当前环境不支持直接绘制图像,建议查阅相关书籍或在线资源获取具体的可视化图表以辅助理解这两个重要概念之间的关系及其运作机制[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值