gpt4 book ai didi

machine-learning - 小批量的时间反向传播

转载 作者:行者123 更新时间:2023-11-30 09:52:17 24 4
gpt4 key购买 nike

我想通过人与计算机之间的对话数据来预测计算机操作。我有 1000 个对话用于训练。每个对话都有不同的回合数。

在我的引用论文( https://arxiv.org/abs/1702.03274 )中解释了如下训练。它使用基本的 LSTM。

In training, each dialog formed one minibatch, and updates were done on full rollouts (i.e., non-truncated back propagation through time).

那么我有两个问题。

  1. 每个对话框形成一个小批量是否意味着 1000 个小批量?
  2. 更新是在全面推出时完成的吗是否意味着更新是在所有对话数据之后完成的?或者每次对话后都进行更新?

我的母语不是英语,也不是机器学习专家。任何帮助将不胜感激。谢谢。

更新

我添加了更多详细信息。用户输入被转换为特征,系统操作被转换为一位向量。所以这个任务是一个多分类问题的任务。在本文中,这一任务是通过一个 LSTM 模型来解决的。每个对话都有不同的回合数。

dialog 1
t1: hello ([1,0,1,0,]) -> hi ([0,0,1,0])
t2: how are you ([0,1,1,0,]) -> fine ([0,1,0,0])
dialog 2
t1: hey ([1,0,1,0,]) -> hi ([0,0,1,0])
...
dialog 1000
...

所以这个问题是通过x预测y

dialog_list = [ {(x1,y1), (x2,y2)}, {(x1,y1)}, ..  ] # length is 1000

最佳答案

让我解释一下你的报价。首先我们对数据做一个假设。我假设 4 轮对话意味着 A 说了些什么,然后 B 做出回应,然后是 A,然后是 B。然后您可以将数据格式化如下:

  • A 讲序列 1。B 讲序列 2。
  • B 讲序列 2。A 讲序列 3。
  • A 讲序列 3。B 讲序列 4。

请注意,此对话框有重复项,我们应该这样做,以便“响应”(即第二句话)链接到前一个句子。这种数据格式化方式对于编码器/解码器 LSTM 非常有用。第一个序列进入编码器,第二个序列进入解码器。这里,每一对都是一个数据样本。所以这个对话框有 3 个示例。

In training, each dialog formed one minibatch,

上一个对话框可以是一批 3 个样本。我们可以对所有对话框执行此操作。所以每个对话框都是一个批处理。通过小批量训练,一批会通过网络,即前向传播,然后立即执行反向传播(更新参数)。所以是的,1000 个小批量。

and updates were done on full rollouts (i.e., non-truncated back propagation through time).

正如我上面所解释的,更新是在批处理前向传递后立即完成的。这意味着一个 epoch(即遍历所有数据一次)有 1000 次更新。

使用 RNN 时,如果序列太长,我们可以将它们分解。我们可以将样本 [A 讲序列 1. B 讲序列 2.] 分成 3 个样本:[A 讲序列]、[1. B 发言],[顺序 2]。我们将第一个样本输入网络,反向传播,然后将第二个样本输入网络,反向传播,然后是第三个样本。但是,我们需要保存样本 1 的最后一个隐藏状态以提供给样本 2 的开头,并保存 2 的最后一个状态以提供给 3。这称为随时间截断的反向传播 (TBPTT)。如果你在反向传播之前“完全展开”,那么你就不会进行 TBPTT。因此,对于每个批处理,您只需更新网络一次,而不是在我的示例中更新网络 3 次。

希望有帮助。

关于machine-learning - 小批量的时间反向传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43017761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com