目录
导语
说到神经网络的实现,其实就是调整各个神经元之间的参数(w,b),但是介于各层神经元之间的连接,所以推出反向传播来实现各个参数的调整,接下来,我们看一下如何进行反向传播。
什么是反向传播?
BP算法(即反向传播算法)适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。BP网络的输入输出关系实质上是一种映射关系:一个n输入m输出的BP神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。这是BP算法得以应用的基础。
计算反向传播基本步骤
1. 计算参数维度(方便计算矩阵相乘关系)
2. 梳理前向传播的步骤及维度(更好推导反向传播)
3. 进行反向传播计算(利用链式编程)
传播案例图解析
这是一个简单的神经网络结构图,输入两个维度的数据,最后通过两次sigmoid激活预测二分类结果。
具体步骤
1.计算参数维度

2.前向传播步骤及维度

3.进行反向传播计算
利用反向传播,进行梯度下降,求出dw1,dw2,db1,db2的值,然后使用公式计算
第一步,求da2的偏导数
(这里的da2只是一个符号,不要误会!!!以下符号相同)
第二步,求dz2的偏导数(利用链式推导):
先求 的偏导
通过上式求:
第三步,通过得到dz2可以继续求偏导得到dw2,db2
在此之前,首先需要求得
根据上面的偏导,可得:
下列公式涉及矩阵乘法,为了对应维度,计算结果如下
第四步,继续求da1
在此之前,先求
下列公式涉及矩阵乘法,为了对应维度,计算结果如下
第五步,通过da1求dz1
在此之前,先求
根据此公式得到:
第六步,通过dz1求dw1,db1
在此之前,求和
下列公式涉及矩阵乘法,为了对应维度,计算结果如下
结论公式
由于以上公式都是在多样本的前提下计算的结果,为了保证计算参数的均值,对w,b等项进行平均值计算:
以上就是反向传播推导算法