反向传播算法(Back propagate)隐藏层误差计算

反向传播算法隐藏层误差计算

反向传播算法(Back propagate)隐藏层误差计算

关于反向传播的推导已经很多了,理解起来也很简单就是 链式法则
大部分推导主要是输出层隐藏层的计算,这时的误差Error就是简单的输出output标签target的差可以简单记为:E = O - T
至于中间层的Error大多一语带过,
在这里插入图片描述
这里输出结果有两个,可以得到eo1 和 eo2
设hidden 层 误差为eh1和eh2 ,则:
在这里插入图片描述
在这里插入图片描述
用矩阵表示为:
在这里插入图片描述
我们在计算hidden 层误差时,重要的在于各节点误差所占最终误差eo1和eo2的比例,所以可以将误差记为:
在这里插入图片描述
这种理解有问题的话希望大家指教。

### 关于反向传播算法公式的图解说明 #### 一、BP算法概述 反向传播算法(Backpropagation, BP算法),作为“误差反向传播”的简称,是一种适用于多层神经元网络的学习方法,其理论根基在于梯度下降法的应用[^1]。 #### 二、BP算法中的关键概念与符号定义 为了更好地理解BP算法的工作原理及其公式表达,在此先介绍一些必要的术语和记号。假设有一个简单的三层前馈神经网络(输入层、隐藏层以及输出层),其中涉及的主要变量有: - 输入信号 \(x_i\) 和目标输出 \(t_j\) - 权重矩阵 \(\mathbf{W}\) 连接各层节点之间的权重值 - 偏置项 \(b_k\) 加入到每一层计算之中用于调整激活水平 - 激活函数 \(f(z)\), 如Sigmoid函数等非线性变换操作应用于加权求和后的净输入\(z=\sum w_{ij}x_i+b_j\) 这些基本要素构成了后续讨论的基础框架[^3]。 #### 三、损失函数的选择 对于给定的数据集而言,通常会采用均方差(Mean Squared Error,MSE)来衡量预测结果与实际标签间的差异程度: \[E(w)=\frac{1}{2n}\sum^n_{i=1}(y^{(i)}-\hat y^{(i)})^2\] 这里引入因子\(\frac{1}{2}\)是为了简化之后求导过程中产生的系数项;而分母处除以样本总数\(n\)则是为了让整体能量更具有统计意义[^4]。 #### 四、链式法则下的梯度计算流程 当明确了上述各项设定后,则可以利用微积分里的链式法则(chain rule)来进行逐层传递并更新参数的过程描述如下所示: 设第l层的局部敏感度为δ_l,则有: \[ δ_L=(y-t)f'(net_L)\] \[ δ_h=f'(net_h)(w_{hL})^Tδ_L\] 这里的下标分别代表不同层次的位置关系,即从最后一层向前回溯直至首层完成整个反馈路径上的信息流动[^2]。 ```python def back_propagate(W, b, X, Y, lr): # 正向传播阶段省略... delta_output = (output_layer - target_values) * sigmoid_derivative(output_net) deltas_hidden = np.dot(delta_output.T, W[-1].T).T * sigmoid_derivative(hidden_nets) # 更新权重和偏置... ``` 通过这种方式实现了基于当前估计错误对内部连接强度作出相应修正的目的,从而使得模型能够逐渐逼近最优解空间内的位置分布情况。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值