手推反向传播算法-全连接网络
以全连接网络为例,推导反向传播修改参数的过程。
·
以下图的全连接网络为例,推导反向传播修改参数的过程。

假设神经元中不考虑偏置和激活函数的影响。
假设训练集的某个输入和预期输出为x1=40, x2=80, y=60,第一层参数初始时为0.5,第二层参数初始时是1,学习率为1e-5,并且损失函数:
step1:前向传播
从x1和x2输入开始前向计算中间神经元z和输出神经元y的值:
step2:计算损失值
通过定义好的损失函数计算损失值:
step3:反向传播
3.1 计算梯度
因为我们的目标是让损失函数计算出的结果慢慢减小,方法是让每个参数对损失函数求导计算梯度,首先计算对的导数:
计算第二层w参数的梯度:
计算第一层x1节点w参数的梯度:
计算第一层x2节点w参数的梯度:
3.2 更新梯度
梯度更新的公式:
反向更新第二层的梯度:
反向更新第一层的梯度:
step4:重新进行前向传播
step5:重新计算误差
可以看到,误差比之前小,之后只要重复上述步骤直到模型收敛为止。
更多推荐

所有评论(0)