深度学习中的优化算法(待更)

    优化算法可以使得神经网络运行的速度大大加快,机器学习的应用是一个高度依赖经验的过程,伴随着大量迭代的过程,需要训练诸多的模型来找到最合适的那一个。其中的一个难点在于,深度学习没有在大数据领域发挥最大的效果,我们可以利用一个巨大的数据集来训练神经网络,而大数据下其训练的速度非常慢,此时通过好用的优化算法就可以大大提高团队的效率。

1、Mini-batch梯度下降

    在训练过程中,把训练集分割为小一点的子集进行训练,这些子集被称为mini-batch,x(i)表示第i个训练样本,z(L)表示神经网络中第L层的z值,X{t}表示第t个mini-batch。这样在实际训练过程中,每次可以同时处理单个的X{t}和Y{t},而不用同时处理全部的X和Y训练集。

    当mini-batch大小设置为m时可以得到batch算法,设置为1时即为随机梯度下降算法。Batch梯度下降从某处开始,相对噪声低一些,幅度也大一些,可以继续寻找最小值。随机梯度下降噪声相对较大,平均来看,它最终会靠近最小值,不过有时候也会方向错误,因为随机梯度下降永远不会收敛,而是一直会在最小值附近波动,但它并不会达到最小值并停留在此。

    mini-batch大小的确定原则:

  • 如果训练集小于2000个样本,直接进行batch梯度下降,没必要使用mini-batch;
  • 使用mini-batch要确保X{t}和Y{t}符合CPU/GPU。

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/PyDarren/article/details/83715809