什么是神经网络中的批量/批量大小?

人工智能 Python 机器学习 神经网络
2021-11-12 12:48:42

我在理解批次概念和批次大小方面存在一些问题。我把事情搞砸了。首先我开始考虑基于卷积神经网络我听到了两个版本:

  1. 当批量大小设置为 50 时,第一个网络输入 50 张图像,然后学习/重新计算(这对我来说没有意义,因为在这种情况下,网络会学习 50 张图像中的一张)。
  2. 当批量大小设置为 50 时,在单个图像的学习过程中重新计算 50 个神经元中的一个。

这两种解释对我来说似乎都是错误的,所以我假设我完全不明白这一点。RNN 中的批/批大小是多少?你能举个例子吗?

我可以告诉你我将如何教授循环神经网络。假设我想教一个神经网络预测第二天的天气:

  1. 我会从过去 30,000 天的预期区域获取天气数据。
  2. 我会假设我的预测将基于过去 365 天的测量结果。
  3. 我会从第 1 天到第 365 天获取数据——用它喂给 RNN 并学习。
  4. 然后我会从第 2 天到第 366 天获取数据 => 饲料 + 学习
  5. 然后第 3 天到 367 => 喂 + 学习
  6. 等等。

这个 365 度测量概念是批量大小吗?

1个回答

您混淆了两个概念,批量大小和窗口大小。

批量大小

批次的概念与您的数据有关,而不是与神经元的数量有关。批次只是训练数据的一个子集。批次的大小会影响计算速度、质量和准确性。大批量将比小批量训练得更快,但模型的准确性可能会受到影响。

有一条经验法则,批量大小应该是 2 的幂(例如 32、64、128 等)。

一般来说,较大的批量大小不能像较小的批量大小那样泛化。您将需要尝试批量大小以实现最佳性能。批量大小被认为是一个超参数。

下面的视频,神经网络中的批量大小解释应该有助于澄清事情。

窗口大小

使用循环样式网络时,窗口大小适用于时间序列和序列。对于您的情况,365 是窗口大小。你没有提到你试图预测的未来有多远。如果我们假设您预测未来的某一天,您的输出将是第 366 次测量。

你的申请

对您来说,一批将是一些训练集。例如,如果我们使用 32 作为批量大小,您将有 32 组输入窗口和输出。前两个批次可能如下所示:

Batch 1, size 32
1 Data from days 1 to 365 as the input, day 366 as the output
2 Data from days 2 to 366 as the input, day 367 as the output
...
32 Data from days 32 to 396 as the input, day 397 as the output

Batch 2, size 32
1 Data from days 33 to 397 as the input, day 398 as the output
2 Data from days 34 to 398 as the input, day 399 as the output
...