浅谈神经网络之链式法则与反向传播算法

article/2025/9/20 3:37:56

反向传播是训练神经网络最重要的算法,可以这么说,没有反向传播算法就没有深度学习的今天。但是反向传播算法涉及一大堆数据公式概念。所以我们了解导数计算过程以及要介绍的新的复合函数多层求导计算过程。

链式法则

简单的说链式法则就是原本y对x求偏导,但是由于过程较为复杂,我们需要将函数进行拆分,通过链式进行分别求导,这样会使整个计算更为简单。

假设 f = k ( a + b c ) f = k(a + bc) f=k(a+bc)
在这里插入图片描述
接下来我们用链式法则(将这些梯度表达式链接起来相乘。)分别对变量a、b、c进行求导:
d f d a = d f d v d v d a = k ∗ 1 = k \frac{d f}{d a}=\frac{d f}{d v} \frac{d v}{d a} = k * 1 = k dadf=dvdfdadv=k1=k

d f d b = d f d u d u d b = k ∗ c = k c \frac{d f}{d b}=\frac{d f}{d u} \frac{d u}{d b} = k * c = kc dbdf=dudfdbdu=kc=kc

d f d c = d f d u d u d c = k ∗ b = k b \frac{d f}{d c}=\frac{d f}{d u} \frac{d u}{d c} = k * b = kb dcdf=dudfdcdu=kb=kb

通俗都说,链式法则表明,知道z相对于y的瞬时变化率和y相对于x的瞬时变化率,就可以计算z相对于x的瞬时变化率作为这两个变化率的乘积。其实就是求复合函数都导数过程。
请添加图片描述

前向传播

前向传播(forward propagation或forward pass) 指的是:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。

对于中间变量:
z = W x + b \mathbf{z}=\mathbf{W}^{} \mathbf{x}+b z=Wx+b
W为参数权重,b为函数偏置,函数结果经过激活函数C(常见都激活函数Sigmoid、tanh、ReLU)
y = C ( z ) \mathbf{y}=C(z) y=C(z)
假设损失函数为l,真实值为h,我们可以计算单个数据样本的损失项,
L = l ( h , y ) L = l(h,y) L=lhy
在不考虑优化函数,单个神经元从输出到输出的过程结束,后面需要对误差进行反向传播,更新权值,重新计算输出。

反向传播

反向传播(backward propagation或backpropagation)指的是计算神经网络参数梯度的方法。 简言之,该方法根据微积分中的链式规则,按相反的顺序从输出层到输入层遍历网络。 该算法存储了计算某些参数梯度时所需的任何中间变量(偏导数)。

梯度下降

在说反向传播算法前,先简单了解一些梯度下降,对于损失函数(这里假设损失是MSE,即均方误差损失)
L ( w , b ) = 1 N ∑ i = 1 N ( y i − f ( w x i + b ) ) 2 L(w, b)=\frac{1}{N} \sum_{i=1}^{N}\left(y_{i}-f\left(w x_{i}+b\right)\right)^{2} L(w,b)=N1i=1N(yif(wxi+b))2
w i w_{i} wi权重在某点的梯度为 d L d w i \frac{d L}{d w_{i}} dwidL,设学习率为 α \alpha α(即步长,学习率为超参数,自己定义的),有梯度更新公式:
w i + 1 = w i − α ∗ d L d w i w_{i+1}=w_{i}-\alpha * \frac{d L}{d w_{i}} wi+1=wiαdwidL
除此以为还有一些再次基础上优化都其他梯度下降方法: 小批量样本梯度下降(Mini Batch GD)、随机梯度下降(Stochastic GD)等

反向传播

反向传播计算损失函数相对于单个输入-输出示例的网络权重的梯度,为了说明这个过程,使用了具有2个输入和1个输出的2层神经网络,如下图所示:
在这里插入图片描述
不考虑优化算法,单个神经结构如下图所示,第一个单元将权重系数和输入信号的乘积相加。第二单元为神经元激活函数(反向传播需要在网络设计时激活函数可微的),如下图所示:
在这里插入图片描述
在反向传播的过程中,单个神经元将最终获得整个网络的最终输出值在自己的输出值上的梯度。链式法则指出,单个神经元应该将回传的梯度乘以它对其的输入的局部梯度,从而得到整个网络的输出对该门单元的每个输入值的梯度 ∂ l ∂ w i j \frac{\partial l}{\partial w_{ij}} wijl请添加图片描述

请添加图片描述

在这里插入图片描述

梯度公式, α \alpha α为学习率, α > 0 \alpha>0 α>0:
w : = w − α d J ( w , b ) d w , b : = b − α d J ( w , b ) d b w:=w-\alpha \frac{d J(w, b)}{d w}, \quad b:=b-\alpha \frac{d J(w, b)}{d b} w:=wαdwdJ(w,b),b:=bαdbdJ(w,b)
对该例中权重梯度进行更新:
w ( x 1 ) 2 ′ = w ( x 1 ) 2 − α ∂ l ∂ w x 1 1 w_{(x 1) 2}^{\prime}=w_{(x 1) 2}-\alpha\frac{\partial l}{\partial w_{x_{1}1}} w(x1)2=w(x1)2αwx11l
w 21 ′ = w 21 − α ∂ l ∂ w 21 w_{21}^{\prime}=w_{21}-\alpha\frac{\partial l}{\partial w_{21}} w21=w21αw21l
. . . . . . ...... ......
根据链式法则求出所有的更新后的权重 W W W梯度,偏值使用同样的方法。通过反向传播,计算损失函数与当前神经元权重的最陡下降方向。然后,可以沿最陡下降方向修改权重,并以有效的方式降低损失。

反向传播代码实现:

def optimize(w, b, X, Y, num_iterations, learning_rate):costs = []for i in range(num_iterations):# 梯度更新计算函数grads, cost = propagate(w, b, X, Y)# 取出两个部分参数的梯度dw = grads['dw']db = grads['db']# 按照梯度下降公式去计算w = w - learning_rate * dwb = b - learning_rate * dbif i % 100 == 0:costs.append(cost)if i % 100 == 0:print("损失结果 %i: %f" % (i, cost))print(b)params = {"w": w,"b": b}grads = {"dw": dw,"db": db}return params, grads, costsdef propagate(w, b, X, Y):m = X.shape[1]# 前向传播A = basic_sigmoid(np.dot(w.T, X) + b)cost = -1 / m * np.sum(Y * np.log(A) + (1 - Y) * np.log(1 - A))# 反向传播dz = A - Ydw = 1 / m * np.dot(X, dz.T)db = 1 / m * np.sum(dz)grads = {"dw": dw,"db": db}return grads, cost

代码中的参数参数:
w:权重,b:偏置,X特征,Y目标值,num_iterations总迭代次数,learning_rate学习率
basic_sigmoid: sigmoid激活函数
params: 更新后的参数字典
grads: 梯度
costs: 损失结果

参考文献 :

反向传播
前向传播、反向传播和计算图
Backpropagation


http://chatgpt.dhexx.cn/article/EMAF6uGa.shtml

相关文章

链式法则-梯度更新公式推导(手写笔记)

虽然以前学过导数、偏导、梯度之类的相关知识,但时间久远导致总感觉晕晕乎乎的,于是自己推导一下具有一个隐藏层的神经网络的梯度反向传播公式,希望对大家有帮助。 笔记中指出了为什么会存在梯度消失以及梯度爆炸现象。 梯度消失 主要是由…

微积分拾遗——链式法则

链式法则(chain rule)微积分中求导法则,用于求复合函数的导数; 链式法则应用广泛,比如神经网络中的反向传播算法就是已链式法则为基础演变的;接下来先说说链式法则的概念然后通过链式法则的两种形式学习链式…

概率论 中的 链式法则

2个事件同时发生的概率: P(a, b) P(a | b) * P(b) 其中:P(a, b)表示 a和b事件同时发生的概率, P(a | b)是一个条件概率,表示在b事件发生的条件下,a发生的概率 3个事件的概率链式调用: P(a, b, c) P(a …

链式法则---微积分链式法则和概率链式法则

本篇介绍了微积分链式法则和概率链式法则。 一、概率链式法则 这里首先给出概率链式法则的公式:N个事件的概率链式法则如下, P(X1, X2, ... Xn) P(X1 | X2, X3 ... Xn) * P(X2 | X3, X4 ... Xn) ... P(Xn-1 | Xn) * P(Xn)。 概率链式法则的作用特别…

链式法则(chain rule)

链式法则 链式法则:两个函数组合起来的复合函数,导数等于里面函数代入外函数值的导乘以里面函数之导数; Quotient Rule Chain rule 代码实现

华硕路由器无线打印服务器怎么开启,华硕ASUS路由器无线中继模式设置教程

宽带路由器在一个紧凑的箱子中集成了路由器、防火墙、带宽控制和管理等功能,具备快速转发能力,灵活的网络管理和丰富的网络状态等特点。最近有用户想知道华硕(ASUS)路由器无线中继模式怎么设置,小编整理了详细教程,跟着步骤大家一定都能成功 具体介绍 一、确定主路由器参数…

华硕路由器配置虚拟服务器,华硕ASUS路由器无线中继模式设置步骤图解

原标题:"华硕ASUS路由器无线中继模式设置教程"相关路由器设置经验分享。 - 来源:191路由网 宽带路由器在一个紧凑的箱子中集成了路由器、防火墙、带宽控制和管理等功能,具备快速转发能力,灵活的网络管理和丰富的网络状态等特点。最近有用户想知道华硕(ASUS)路由器…

tplink迷你路由器中继模式_TP-Link无线路由器中继模式设置教程

在生活中,小伙伴们多多少少都会遇到在上洗手间、阳台上、或者信号比较差的地方,用手机上网,发现网络很差,通讯信号弱,WIFI信号强度几近于无,上网等加载条等半天,那种心如刀割的心情,确实让人恼火!今天呢,A君在这给大家科普一下中继模式(Repeater),教大家怎么让WIFI信…

华硕路由搭建php网站,华硕路由器操作模式

*无线路由器 在无线路由器模式中,RT-AC88U 透过 PPPoE、DHCP、PPTP、L2TP 或静态 IP 连接至网络,并且将无线网络分享至 LAN 客户端或设备。 在此模式中,NAT、防火墙与 DHCP 服务器默认为开启。支持 UPnP 与动态 DNS 适用于 SOHO 与家庭使用者…

android 路由模式设置,安卓手机设置路由器的方法教程步骤图

现在很多人使用的智能手机都是安卓系统的,很多时候我们在使用安卓手机连接路由器之后直接就可以对路由器进行设置,不需要通过电脑了,下面是学习啦小编整理的安卓手机设置路由器的方法,供您参考。 安卓手机设置路由器的方法 首先&a…

路由器的桥接方式

如果你家恰好比较大,又恰好有多台路由器,那么该如何将它们桥接起来,实现全屋的WIFI全覆盖呢?下面我们以两台路由器为例,简单介绍一下常用的几种桥接方式。 一、无线桥接 所谓无线桥接,即是把两台不同物理位…

asus路由器无线桥接模式设置

在客厅加了一个华硕路由器增强一下无线信号,记录一下。 固件版本:3.0.0.4.380 型号:RT-AC1200G 参考网址:https://www.asus.com.cn/support/FAQ/1036082 按照教程设置完成后发现依旧不能上网,又重新设置了一遍&…

路由模式和桥接模式的区别

目录 路由器和交换机的区别一、指代不同二、功能不同三、特点不同四、总结 路由模式桥接模式运营商为啥现在都是路由模式光猫去拨号?一、作用二、原因 最佳组网方案---改光猫为桥接方法一、二层模式二、优点三、缺点 VLAN模式一、transparent二、tag/untag 路由器和…

路由器的模式之间有什么区别

现在的路由器根据网络用户群的不同需求,提供了很多种连接模式,只有选对了合适的模式,才能充分发挥路由器的功能。但与此同时,这种多模式的选择,往往也让新手用户无所适从,在众多专业名词中,不知…

华硕(ASUS)路由器AP模式设置教程

华硕(ASUS)路由器AP模式设置教程 总结就是 1.AP路由设置LANIP跟一级路由同一个网段,例如,一级的是192.168.1.1,AP:192.168.1.X。 2.把一级路由的网关和DNS填上AP那里 问:华硕路由器AP模式怎么设置? 原来网…

小米路由器设置无线中继模式

小米路由器 设置无线中继模式 一、什么是无线中继?二、路由器无线中继模式配置步骤1.准备工作2.操作步骤3.无线中继模式重回路由模式 三、无线中继缺点 一、什么是无线中继? 无线中继模式,即是无线AP在网络连接中起到中继的作用&#xff0c…

路由器的设置(路由模式)

1、准备 路由器,网络 2、查看路由器说明 路由器上的铭牌一般会包含路由器的访问地址,默认用户名和密码。 如果是一台全新的路由器,通电后,通过笔记本或者手机找到默认分享的未加密wifi,通过浏览器输入访问地址就可…

无线路由器的五种工作模式

无线路由器的五种工作模式 Router,即无线路由模式,这也是我们最常用的一种工作方式,一般家里宽带连接,将宽带猫连接在无线路由的WAN口上,然后做拨号帐号设置,就用这个模式即可。 AP,即无线交换机…

路由器的几种工作模式

路由器现在已经很普及,我们的手机电脑每天都在通过路由器上网,我们可以稍微了解了解路由器!比如路由器的几种工作模式:AP模式(接入点模式)、Router模式(路由模式)、Repeater模式&…

项目:电子词典

电子词典 项目要求: 登录注册功能,不能重复登录,重复注册 单词查询功能 历史记录功能,存储单词,意思,以及查询时间 基于TCP,支持多客户端连接 采用数据库保存用户信息与历史记录 将dict.t…