深度学习记录--mini-batch gradient descent

batch vs mini-batch gradient descent

batch:段,块

与传统的batch梯度下降不同,mini-batch gradient descent将数据分成多个子集,分别进行处理,在数据量非常巨大的情况下,这样处理可以及时进行梯度下降,大大加快训练速度

mini-batch gradient descent的原理

两种方法的梯度下降图如下图所示

batch gradient descent是一条正常的递减的曲线

mini-batch gradient descent是一条噪声很大的曲线,分成许多小段时,每个小段是一条batch gradient descent曲线,总体看这条曲线还是递减的趋势

为什么会有区别呢?

mini-batch gradient descent中的x^{\left \{ i \right \}},y^{\left \{ i \right \}}可能容易计算,也可能很难计算,这就导致cost时高时低,出现摆动,其实主要是mini-batch的大小的原因

mini-batch size

当size=m,mini-batch gradient descent变为batch gradient descent

梯度下降的噪声更小步长更大,最终会收敛于最小值(如下图蓝色曲线)

弊端:如果数据量很大时,单次迭代时间过长

当size=1,变为随机梯度下降(stochastic gradient descent),每个样本都是独立的

每个样本都是随机的,可能靠近最小值,也可能远离最小值,噪声很大无法收敛,最终在最小值附近波动(如下图紫色曲线)

弊端:由于每次只处理一个训练样本,失去了向量化的加速效果,训练效率过低

合适的size-->between1 and m

既可以获得向量化的加速效果,又可以及时进行后续操作(减少单次迭代时间)

梯度下降图如下图绿色曲线(噪声相对随机梯度下降较小,最终不会收敛,在最小值附近波动

相关推荐

  1. 深度学习踩坑记录

    2024-01-20 10:20:01       58 阅读
  2. 深度学习相关记录《一》

    2024-01-20 10:20:01       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-20 10:20:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-20 10:20:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-20 10:20:01       82 阅读
  4. Python语言-面向对象

    2024-01-20 10:20:01       91 阅读

热门阅读

  1. js中的prototype

    2024-01-20 10:20:01       47 阅读
  2. vue3中reactive和ref函数及对比

    2024-01-20 10:20:01       43 阅读
  3. 有效的括号

    2024-01-20 10:20:01       58 阅读
  4. 网络与系统安全期末复习

    2024-01-20 10:20:01       47 阅读
  5. CentOS系统rsync文件同步 安装配置

    2024-01-20 10:20:01       55 阅读