梯度下降及反向传递公式推导

本文深入探讨了梯度下降算法及其在神经网络训练中的应用——反向传播。详细解析了梯度下降和反向传播的数学原理,通过公式推导帮助读者理解其背后的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

梯度下降及反向传递公式推导


之前发布在作业部落了,可以通过这个链接访问,其中的数学公式转过来比较麻烦,先看作业部落的链接吧: https://www.zybuluo.com/JackMeGo/note/1052246

### 关于深度学习中反向传播公式推导过程解释 #### 神经网络基本概念 神经网络由多个层次构成,每一层包含若干个神经元。这些层次通常分为输入层、隐藏层以及输出层。对于给定的一个三层神经网络结构而言,在输入层有\(i\)个节点接收数据;中间存在一层或多层作为隐藏层,每层含有\(j\)个处理单元;最终到达拥有\(k\)个节点的输出层用于给出预测结果[^2]。 #### 前向传播与损失计算 当一组特征值被送入到这样的模型当中时,会依次经过各层之间的权重矩阵相乘加上偏置项的操作完成一次前馈运算得到估计的结果\[y\hat{}=f(Wx+b)\]。这里的\(W\)代表权重量子化的集合而\(b\)则是对应的偏差向量。\(\sigma(z)= \frac{1}{1+e^{-z}}\)可以作为一个激活函数的例子应用于上述表达式之中用来引入非线性因素使得整个体系具备更强的学习能力。随后依据实际标签\(t\)同所获得的预估值对比得出误差程度即所谓的损失函数\(E=\sum_{n}(t_n-\hat y_n)^2/2\)【均方差形式】[^4]。 #### 应用链式法则进行梯度求解 为了调整那些连接着不同结点间的参数从而减小整体失误率,则需依赖于BP算法实现自动微分机制。具体来说就是利用复合函数求导性质——链式法则去追踪每一个参与影响最终得分变化的因素并量化其贡献大小。以最末端也就是靠近输出端的部分开始回溯: - **输出层** 对于第\(k\)类别的输出单元,根据交叉熵损失函数定义可知:\[\delta_k^{(l)}=(a_k^{(l)}-y_k)*g'(z_k^{(l)})\],其中\(a_k^{(l)}\)表示该位置处的实际响应强度,\(y_k\)为目标真值指示器, \(g'\)为激活函数的一阶导数值。 - **隐藏层** 当涉及到内部更深层次的时候则要继续沿路径传递敏感度信息直至抵达起点为止:\[\delta_j^{(l-1)}=\left (\sum_{k}w_{kj}\delta_k^{(l)}\right )*g'(z_j^{(l-1)})\] 此处涉及到了当前层向前一层反馈调节信号的过程,通过累加来自后续所有关联节点的影响因子并与局部斜率相结合形成新的更新指令以便指导上游部分做出相应改变[^3]。 #### 参数修正策略 有了前面几步准备好的各个位置上关于成本变动情况的具体描述之后就可以着手实施具体的改进措施了。一般情况下采用批量随机梯度下降法(SGD),按照如下方式刷新待估系数集: \[ w_{ij}=w_{ij}-\eta*\delta_i*a_j \] \[ b_i=b_i-\eta*\delta_i \] 这里\(\eta\)指的是步长或者说学习速率控制变量决定了每次迭代过程中前进的步伐幅度多大合适。 ```python def backpropagation(X, Y, weights, biases, learning_rate): # Forward pass to compute activations and outputs... # Compute deltas starting from the output layer moving backward # Update parameters using computed gradients with respect to each parameter. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值