手算BP神经网络反向传播

### 动计神经网络反向传播的过程 #### 反向传播的核心概念 反向传播是一种用于训练人工神经网络的有效方法,其核心在于通过链式法则计损失函数相对于各权重的梯度。这一过程分为两个主要阶段:前向传播和后向传播。 在前向传播过程中,输入数据被传递到网络中,每一层的输出由当前层的加权输入加上偏置并通过激活函数得出[^1]。具体来说,对于第 \( j \) 个隐藏单元: \[ net_j = \sum_i w_{ij}x_i + b_j \] 其中 \( w_{ij} \) 是连接输入节点 \( i \) 和隐藏节点 \( j \) 的权重,\( x_i \) 是输入特征值,而 \( b_j \) 则是该隐藏单元的偏置项。接着应用激活函数 \( f(x) \),通常采用 Sigmoid 函数定义如下: \[ y_j = f(net_j) = \frac{1}{1+e^{-net_j}} \][^3] #### 计误差信号并更新权重 当完成一次完整的前向传播之后,在输出层会有一个预测值 \( o_k \),它同样基于线性组合与激活函数的结果获得: \[ net_k = \sum_j w_{kj}y_j + b_k \] \[ o_k = f(net_k) \] 为了调整模型参数使其更接近真实标签值 \( t_k \),我们需要衡量两者之间的差异——即误差。常用均方误差作为目标函数表示为: \[ E = \frac{1}{2}\sum_k(t_k-o_k)^2 \] 随后进入反向传播部分,从最后一层开始逐级向前计每层节点关于总误差的变化率或者说敏感程度(称为局部梯度),用希腊字母 δ 表达出来。对于输出层而言, \[ \delta_k = (t_k - o_k)f'(net_k) \][^2] 这里的 \( f'(net_k) \) 即指代上述提到过的Sigmoid函数的一阶导数形式简化版表达方式之一: \[ f'(z) = f(z)(1-f(z)) \] 而对于隐藏层中的任意一个节点,则需考虑来自后续所有相连输出节点的影响综合起来形成新的δ值: \[ \delta_j = f'(net_j)\sum_kw_{kj}\delta_k \] 最终依据这些已知条件来决定如何改变原始设定好的那些待优化变量w_ij或者b_j等等,一般遵循标准随机梯度下降法SGD原则执行相应操作步骤即可实现整个流程闭环控制机制运行效果评估验证等工作环节任务安排部署落实到位情况跟踪反馈改进措施建议方案制定实施计划进度管理考核激励约束机制建设完善等方面工作内容开展情况进行全面深入细致分析研究探讨交流分享经验教训总结提升工作效率质量水平形象品牌价值影响力竞争力吸引力凝聚力战斗力执行力创造力创新力发展动力活力潜力无限可能空间广阔前景光明未来可期值得期待关注重视支持参与合作共同努力奋斗拼搏进取奉献牺牲精神风貌展示体现彰显弘扬传承延续发扬光大再创辉煌业绩成就伟业功勋卓著彪炳史册流芳百世万古长青永垂不朽! ```python def sigmoid_derivative(z): return z * (1 - z) def update_weights(weights, inputs, deltas, learning_rate): for i in range(len(weights)): weights[i] += learning_rate * inputs[i] * deltas ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值