Mini-batch梯度下降法

文章目录

      • 其与传统batch gradient descent的比较
      • 选择mini-batch的size

Mini-batch梯度下降法_第1张图片

在大数据时代,数据量很大,如果我们每次都进行基于整个训练集的batch gradient descent 也就是批梯度下降会使得计算时间变得很长

所以 我们研究出了一种新的算法 mini-batch algorithm 其简单来说,就是将训练集拆分成n个mini-batch再进行分别处理,而不再是同时处理X和Y集

对训练集的拆分用 X { t } X^{\{t\}} X{t} 表示
Mini-batch梯度下降法_第2张图片

经过拆分后,一次遍历训练集可以做t次梯度下降.

其与传统batch gradient descent的比较

Mini-batch梯度下降法_第3张图片

可以看到,mini-batch的迭代会出现更多的noisy
后面博客会讲到可以使用动量梯度下降优化这个问题

选择mini-batch的size

Mini-batch梯度下降法_第4张图片

极端情况

  1. 若将size设为m 那么就是 batch gradient descent

  2. 若将size设为1 那么就是随机梯度下降

    将mini-batch size的值设在两者的中间会使优化速度达到最快,因为既利用了向量化的优势,训练集也相对来说没有那么大,能够在一个训练集中实现 m/size 次梯度下降

Mini-batch梯度下降法_第5张图片

一般来说,我们的选择都是2的n次方作为mini-batch 的size ,根据实验证明,这样的选择会更加具有普适性,但一般来说,size的选择需要匹配cpu/Gpu的内存,否则算法性能也会表现的很差.

你可能感兴趣的:(AI,深度学习,算法,机器学习,人工智能,随机梯度下降)