龙空技术网

一文看懂BP传播算法

Jession67 211

前言:

目前看官们对“bp算法的原理”都比较注重,你们都需要了解一些“bp算法的原理”的相关资讯。那么小编同时在网上网罗了一些对于“bp算法的原理””的相关内容,希望大家能喜欢,兄弟们一起来学习一下吧!

最近在看反向传播算法原理,之前看的时候只是懂得个大概过程,现在将其中蕴含的各种细节进行了整理,分享给大家。有何不对之处,希望得到建议。

假设有如下5层的神经网络:第一层为输入层,第五层为输出层。

L为损失函数

每两层之间就是个梯度矩阵,我们也是按照这样进行计算的。而并不是对单个参数进行逐一计算的,因为这样在程序实现的时候需要大量的循环,而在程序的算法实现中,是有很多针对矩阵代数运算函数库的,这样可以加快运算速度。

废话不多说,直接上公式。为了避免直接的矩阵运算会容易造成迷惑,我们先从单个神经元着手

设输入为

通过对单个神经元的结果表述,我们可以得到矩阵形式

也就说

那么损失函数对每两层之间权重矩阵的偏导数为损失函数对加权输出z的偏导数乘以输入的转置。虽然上面举的例子只是第一层与第二层之间的权重矩阵,但是对第二层与第三层,第三层与第四层…都是成立的。对于输入的矩阵,这里的输入指的是每一层的输出作为后面一层输入的,比如

第三层的一个输入

所以每一层的输入矩阵我们可以通过前向传播直接计算出来(因为在程序实现中,我们先随机初始化权重和偏置,也就是说我们先有了w和b,那么根据输入层的输入,就可以计算出每一层的输出a矩阵)。

标签: #bp算法的原理