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

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

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

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

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

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

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

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

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

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

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

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

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

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

上一篇:iconv编码转换指令


下一篇:vi的常用命令