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

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

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

BP(Back Propagation,反向传播算法是深度学习中最常用的神经网络训练算法之一,用于调整网络中权重和偏置以最小化预测误差。Python语言通常结合科学计算库如NumPy和深度学习框架如TensorFlow或PyTorch来实现。 在Python中,你可以按以下步骤大致实现BP算法: 1. **导入必要的库**: ```python import numpy as np ``` 2. **定义神经网络模型**: - 定义激活函数(如sigmoid、ReLU等),以及前向传播函数(propagate)。 ```python def sigmoid(x): return 1 / (1 + np.exp(-x)) def propagate(X, weights, biases): # 前向传播计算过程... ``` 3. **初始化权重和偏置**: ```python def initialize_weights(layer_sizes): # 创建随机权重矩阵 ``` 4. **反向传播**: - 计算误差梯度(通过链式法则) - 更新权重(weights)和偏置(biases)。 ```python def backpropagation(X, y, weights, biases, learning_rate): # 梯度下降更新过程... ``` 5. **训练循环**: 循环遍历数据集,每次迭代都运行前向传播和反向传播,并更新权重。 ```python for _ in range(num_iterations): gradients = backpropagation(X, y, weights, biases) # 使用梯度下降或其他优化方法更新权重和偏置 ``` 6. **评估模型**: 测试阶段,使用训练好的模型对新的输入进行预测。 注意:这只是一个简化的例子,实际应用中会涉及到更多的细节,例如批量处理、dropout、正则化等技术,以及优化算法的选择。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值