浅析深度学习mini_batch的BP反传算法

       在深度学习中,如果我们已经定义了网络,输入,以及输出,那么接下来就是损失函数,优化策略,以及一般由框架完成的BP反传。这篇博文我们主要探讨一下深度的BP反传算法(以梯度下降为例),尤其是mini_batch的BP反传,目标是如何更新网络的参数:权重和偏置。

       首先,我们来看网络中基本参数的一些定义。


浅析深度学习mini_batch的BP反传算法_第1张图片


       使用梯度下降法,一般计算所有样本的损失函数的平均值,进而计算梯度方向。但是,当样本n特别多的时候,计算会比较困难。因此,提出了随机梯度下降的方法,即我们从样本集中随机抽取m个样本,其计算的平均梯度近似于通过全部样本计算的平均梯度。


浅析深度学习mini_batch的BP反传算法_第2张图片


        当m=1时,SGD算法如下:


浅析深度学习mini_batch的BP反传算法_第3张图片


       当m=k时,mini_batch算法如下:


浅析深度学习mini_batch的BP反传算法_第4张图片


       通过对比m=1和m=k算法流程,我们发现,mini_batch方法的梯度是由mini_batch里的样本共同决定(平均值),计算出来的梯度一般比k=1的时候准确。

       关于算法中的公式,我们通过以下方法进行推导:


浅析深度学习mini_batch的BP反传算法_第5张图片


参考资料:http://neuralnetworksanddeeplearning.com/index.html

你可能感兴趣的:(DNN,机器学习中的优化方法,BP,mini,batch)